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 }