github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/sdk/auth/params.go (about)

     1  package auth
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"github.com/gnolang/gno/tm2/pkg/amino"
     8  )
     9  
    10  type AuthParamsContextKey struct{}
    11  
    12  // Default parameter values
    13  const (
    14  	DefaultMaxMemoBytes           int64 = 65536
    15  	DefaultTxSigLimit             int64 = 7
    16  	DefaultTxSizeCostPerByte      int64 = 10
    17  	DefaultSigVerifyCostED25519   int64 = 590
    18  	DefaultSigVerifyCostSecp256k1 int64 = 1000
    19  )
    20  
    21  // Params defines the parameters for the auth module.
    22  type Params struct {
    23  	MaxMemoBytes           int64 `json:"max_memo_bytes" yaml:"max_memo_bytes"`
    24  	TxSigLimit             int64 `json:"tx_sig_limit" yaml:"tx_sig_limit"`
    25  	TxSizeCostPerByte      int64 `json:"tx_size_cost_per_byte" yaml:"tx_size_cost_per_byte"`
    26  	SigVerifyCostED25519   int64 `json:"sig_verify_cost_ed25519" yaml:"sig_verify_cost_ed25519"`
    27  	SigVerifyCostSecp256k1 int64 `json:"sig_verify_cost_secp256k1" yaml:"sig_verify_cost_secp256k1"`
    28  }
    29  
    30  // NewParams creates a new Params object
    31  func NewParams(maxMemoBytes, txSigLimit, txSizeCostPerByte,
    32  	sigVerifyCostED25519, sigVerifyCostSecp256k1 int64,
    33  ) Params {
    34  	return Params{
    35  		MaxMemoBytes:           maxMemoBytes,
    36  		TxSigLimit:             txSigLimit,
    37  		TxSizeCostPerByte:      txSizeCostPerByte,
    38  		SigVerifyCostED25519:   sigVerifyCostED25519,
    39  		SigVerifyCostSecp256k1: sigVerifyCostSecp256k1,
    40  	}
    41  }
    42  
    43  // Equals returns a boolean determining if two Params types are identical.
    44  func (p Params) Equals(p2 Params) bool {
    45  	return amino.DeepEqual(p, p2)
    46  }
    47  
    48  // DefaultParams returns a default set of parameters.
    49  func DefaultParams() Params {
    50  	return Params{
    51  		MaxMemoBytes:           DefaultMaxMemoBytes,
    52  		TxSigLimit:             DefaultTxSigLimit,
    53  		TxSizeCostPerByte:      DefaultTxSizeCostPerByte,
    54  		SigVerifyCostED25519:   DefaultSigVerifyCostED25519,
    55  		SigVerifyCostSecp256k1: DefaultSigVerifyCostSecp256k1,
    56  	}
    57  }
    58  
    59  // String implements the stringer interface.
    60  func (p Params) String() string {
    61  	var sb strings.Builder
    62  	sb.WriteString("Params: \n")
    63  	sb.WriteString(fmt.Sprintf("MaxMemoBytes: %d\n", p.MaxMemoBytes))
    64  	sb.WriteString(fmt.Sprintf("TxSigLimit: %d\n", p.TxSigLimit))
    65  	sb.WriteString(fmt.Sprintf("TxSizeCostPerByte: %d\n", p.TxSizeCostPerByte))
    66  	sb.WriteString(fmt.Sprintf("SigVerifyCostED25519: %d\n", p.SigVerifyCostED25519))
    67  	sb.WriteString(fmt.Sprintf("SigVerifyCostSecp256k1: %d\n", p.SigVerifyCostSecp256k1))
    68  	return sb.String()
    69  }