diff --git a/api/gen/csharp/Gnonativetypes.cs b/api/gen/csharp/Gnonativetypes.cs index c96f7ba..bcd657d 100644 --- a/api/gen/csharp/Gnonativetypes.cs +++ b/api/gen/csharp/Gnonativetypes.cs @@ -129,36 +129,42 @@ static GnonativetypesReflection() { "c29uEhgKB2FkZHJlc3MYAiABKAxSB2FkZHJlc3MSJQoOYWNjb3VudF9udW1i", "ZXIYAyABKARSDWFjY291bnROdW1iZXISJwoPc2VxdWVuY2VfbnVtYmVyGAQg", "ASgEUg5zZXF1ZW5jZU51bWJlciIxCg5TaWduVHhSZXNwb25zZRIfCg5zaWdu", - "ZWRfdHhfanNvbhgBIAEoCVIHdHhfanNvbiLdAQoSRXN0aW1hdGVHYXNSZXF1", + "ZWRfdHhfanNvbhgBIAEoCVIHdHhfanNvbiKNAQoSRXN0aW1hdGVHYXNSZXF1", "ZXN0EhcKB3R4X2pzb24YASABKAlSBnR4SnNvbhIYCgdhZGRyZXNzGAIgASgM", "UgdhZGRyZXNzEicKD3NlY3VyaXR5X21hcmdpbhgDIAEoDVIOc2VjdXJpdHlN", - "YXJnaW4SGwoJdXBkYXRlX3R4GAQgASgIUgh1cGRhdGVUeBIlCg5hY2NvdW50", - "X251bWJlchgFIAEoBFINYWNjb3VudE51bWJlchInCg9zZXF1ZW5jZV9udW1i", - "ZXIYBiABKARSDnNlcXVlbmNlTnVtYmVyIk0KE0VzdGltYXRlR2FzUmVzcG9u", - "c2USFwoHdHhfanNvbhgBIAEoCVIGdHhKc29uEh0KCmdhc193YW50ZWQYAiAB", - "KBJSCWdhc1dhbnRlZCI7ChhCcm9hZGNhc3RUeENvbW1pdFJlcXVlc3QSHwoO", - "c2lnbmVkX3R4X2pzb24YASABKAlSB3R4X2pzb24iXwoZQnJvYWRjYXN0VHhD", - "b21taXRSZXNwb25zZRIWCgZyZXN1bHQYASABKAxSBnJlc3VsdBISCgRoYXNo", - "GAIgASgMUgRoYXNoEhYKBmhlaWdodBgDIAEoElIGaGVpZ2h0IjIKFkFkZHJl", - "c3NUb0JlY2gzMlJlcXVlc3QSGAoHYWRkcmVzcxgBIAEoDFIHYWRkcmVzcyJA", - "ChdBZGRyZXNzVG9CZWNoMzJSZXNwb25zZRIlCg5iZWNoMzJfYWRkcmVzcxgB", - "IAEoCVINYmVjaDMyQWRkcmVzcyJBChhBZGRyZXNzRnJvbUJlY2gzMlJlcXVl", - "c3QSJQoOYmVjaDMyX2FkZHJlc3MYASABKAlSDWJlY2gzMkFkZHJlc3MiNQoZ", - "QWRkcmVzc0Zyb21CZWNoMzJSZXNwb25zZRIYCgdhZGRyZXNzGAEgASgMUgdh", - "ZGRyZXNzIjgKGkFkZHJlc3NGcm9tTW5lbW9uaWNSZXF1ZXN0EhoKCG1uZW1v", - "bmljGAEgASgJUghtbmVtb25pYyI3ChtBZGRyZXNzRnJvbU1uZW1vbmljUmVz", - "cG9uc2USGAoHYWRkcmVzcxgBIAEoDFIHYWRkcmVzcyIxChtWYWxpZGF0ZU1u", - "ZW1vbmljV29yZFJlcXVlc3QSEgoEd29yZBgBIAEoCVIEd29yZCI0ChxWYWxp", - "ZGF0ZU1uZW1vbmljV29yZFJlc3BvbnNlEhQKBXZhbGlkGAEgASgIUgV2YWxp", - "ZCI3Ch1WYWxpZGF0ZU1uZW1vbmljUGhyYXNlUmVxdWVzdBIWCgZwaHJhc2UY", - "ASABKAlSBnBocmFzZSI2Ch5WYWxpZGF0ZU1uZW1vbmljUGhyYXNlUmVzcG9u", - "c2USFAoFdmFsaWQYASABKAhSBXZhbGlkIiIKDEhlbGxvUmVxdWVzdBISCgRu", - "YW1lGAEgASgJUgROYW1lIisKDUhlbGxvUmVzcG9uc2USGgoIZ3JlZXRpbmcY", - "ASABKAlSCEdyZWV0aW5nIigKEkhlbGxvU3RyZWFtUmVxdWVzdBISCgRuYW1l", - "GAEgASgJUgROYW1lIjEKE0hlbGxvU3RyZWFtUmVzcG9uc2USGgoIZ3JlZXRp", - "bmcYASABKAlSCEdyZWV0aW5nIjAKGEdOT05BVElWRVRZUEVTX0J5dGVzTGlz", - "dBIUCgVWYWx1ZRgBIAMoDFIFVmFsdWVCLFoqZ2l0aHViLmNvbS9nbm9sYW5n", - "L2dub25hdGl2ZS92NC9hcGkvZ2VuL2dvYgZwcm90bzM=")); + "YXJnaW4SGwoJdXBkYXRlX3R4GAQgASgIUgh1cGRhdGVUeCJNChNFc3RpbWF0", + "ZUdhc1Jlc3BvbnNlEhcKB3R4X2pzb24YASABKAlSBnR4SnNvbhIdCgpnYXNf", + "d2FudGVkGAIgASgSUglnYXNXYW50ZWQiywEKFUVzdGltYXRlR2FzRmVlUmVx", + "dWVzdBIXCgd0eF9qc29uGAEgASgJUgZ0eEpzb24SGAoHYWRkcmVzcxgCIAEo", + "DFIHYWRkcmVzcxIuChNnYXNfc2VjdXJpdHlfbWFyZ2luGAMgASgNUhFnYXNT", + "ZWN1cml0eU1hcmdpbhIyChVwcmljZV9zZWN1cml0eV9tYXJnaW4YBCABKA1S", + "E3ByaWNlU2VjdXJpdHlNYXJnaW4SGwoJdXBkYXRlX3R4GAUgASgIUgh1cGRh", + "dGVUeCJ/ChZFc3RpbWF0ZUdhc0ZlZVJlc3BvbnNlEhcKB3R4X2pzb24YASAB", + "KAlSBnR4SnNvbhIdCgpnYXNfd2FudGVkGAIgASgSUglnYXNXYW50ZWQSLQoD", + "ZmVlGAMgASgLMhsubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNvaW5SA2ZlZSI7", + "ChhCcm9hZGNhc3RUeENvbW1pdFJlcXVlc3QSHwoOc2lnbmVkX3R4X2pzb24Y", + "ASABKAlSB3R4X2pzb24iXwoZQnJvYWRjYXN0VHhDb21taXRSZXNwb25zZRIW", + "CgZyZXN1bHQYASABKAxSBnJlc3VsdBISCgRoYXNoGAIgASgMUgRoYXNoEhYK", + "BmhlaWdodBgDIAEoElIGaGVpZ2h0IjIKFkFkZHJlc3NUb0JlY2gzMlJlcXVl", + "c3QSGAoHYWRkcmVzcxgBIAEoDFIHYWRkcmVzcyJAChdBZGRyZXNzVG9CZWNo", + "MzJSZXNwb25zZRIlCg5iZWNoMzJfYWRkcmVzcxgBIAEoCVINYmVjaDMyQWRk", + "cmVzcyJBChhBZGRyZXNzRnJvbUJlY2gzMlJlcXVlc3QSJQoOYmVjaDMyX2Fk", + "ZHJlc3MYASABKAlSDWJlY2gzMkFkZHJlc3MiNQoZQWRkcmVzc0Zyb21CZWNo", + "MzJSZXNwb25zZRIYCgdhZGRyZXNzGAEgASgMUgdhZGRyZXNzIjgKGkFkZHJl", + "c3NGcm9tTW5lbW9uaWNSZXF1ZXN0EhoKCG1uZW1vbmljGAEgASgJUghtbmVt", + "b25pYyI3ChtBZGRyZXNzRnJvbU1uZW1vbmljUmVzcG9uc2USGAoHYWRkcmVz", + "cxgBIAEoDFIHYWRkcmVzcyIxChtWYWxpZGF0ZU1uZW1vbmljV29yZFJlcXVl", + "c3QSEgoEd29yZBgBIAEoCVIEd29yZCI0ChxWYWxpZGF0ZU1uZW1vbmljV29y", + "ZFJlc3BvbnNlEhQKBXZhbGlkGAEgASgIUgV2YWxpZCI3Ch1WYWxpZGF0ZU1u", + "ZW1vbmljUGhyYXNlUmVxdWVzdBIWCgZwaHJhc2UYASABKAlSBnBocmFzZSI2", + "Ch5WYWxpZGF0ZU1uZW1vbmljUGhyYXNlUmVzcG9uc2USFAoFdmFsaWQYASAB", + "KAhSBXZhbGlkIiIKDEhlbGxvUmVxdWVzdBISCgRuYW1lGAEgASgJUgROYW1l", + "IisKDUhlbGxvUmVzcG9uc2USGgoIZ3JlZXRpbmcYASABKAlSCEdyZWV0aW5n", + "IigKEkhlbGxvU3RyZWFtUmVxdWVzdBISCgRuYW1lGAEgASgJUgROYW1lIjEK", + "E0hlbGxvU3RyZWFtUmVzcG9uc2USGgoIZ3JlZXRpbmcYASABKAlSCEdyZWV0", + "aW5nIjAKGEdOT05BVElWRVRZUEVTX0J5dGVzTGlzdBIUCgVWYWx1ZRgBIAMo", + "DFIFVmFsdWVCLFoqZ2l0aHViLmNvbS9nbm9sYW5nL2dub25hdGl2ZS92NC9h", + "cGkvZ2VuL2dvYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { @@ -223,8 +229,10 @@ static GnonativetypesReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.MakeTxResponse), global::Land.Gno.Gnonative.V1.MakeTxResponse.Parser, new[]{ "TxJson" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.SignTxRequest), global::Land.Gno.Gnonative.V1.SignTxRequest.Parser, new[]{ "TxJson", "Address", "AccountNumber", "SequenceNumber" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.SignTxResponse), global::Land.Gno.Gnonative.V1.SignTxResponse.Parser, new[]{ "SignedTxJson" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.EstimateGasRequest), global::Land.Gno.Gnonative.V1.EstimateGasRequest.Parser, new[]{ "TxJson", "Address", "SecurityMargin", "UpdateTx", "AccountNumber", "SequenceNumber" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.EstimateGasRequest), global::Land.Gno.Gnonative.V1.EstimateGasRequest.Parser, new[]{ "TxJson", "Address", "SecurityMargin", "UpdateTx" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.EstimateGasResponse), global::Land.Gno.Gnonative.V1.EstimateGasResponse.Parser, new[]{ "TxJson", "GasWanted" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest), global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest.Parser, new[]{ "TxJson", "Address", "GasSecurityMargin", "PriceSecurityMargin", "UpdateTx" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.EstimateGasFeeResponse), global::Land.Gno.Gnonative.V1.EstimateGasFeeResponse.Parser, new[]{ "TxJson", "GasWanted", "Fee" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.BroadcastTxCommitRequest), global::Land.Gno.Gnonative.V1.BroadcastTxCommitRequest.Parser, new[]{ "SignedTxJson" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.BroadcastTxCommitResponse), global::Land.Gno.Gnonative.V1.BroadcastTxCommitResponse.Parser, new[]{ "Result", "Hash", "Height" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Land.Gno.Gnonative.V1.AddressToBech32Request), global::Land.Gno.Gnonative.V1.AddressToBech32Request.Parser, new[]{ "Address" }, null, null, null, null), @@ -14084,15 +14092,578 @@ public EstimateGasRequest(EstimateGasRequest other) : this() { address_ = other.address_; securityMargin_ = other.securityMargin_; updateTx_ = other.updateTx_; - accountNumber_ = other.accountNumber_; - sequenceNumber_ = other.sequenceNumber_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public EstimateGasRequest Clone() { - return new EstimateGasRequest(this); + public EstimateGasRequest Clone() { + return new EstimateGasRequest(this); + } + + /// Field number for the "tx_json" field. + public const int TxJsonFieldNumber = 1; + private string txJson_ = ""; + /// + /// The JSON encoding of the unsigned transaction (from MakeCallTx, etc.) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TxJson { + get { return txJson_; } + set { + txJson_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "address" field. + public const int AddressFieldNumber = 2; + private pb::ByteString address_ = pb::ByteString.Empty; + /// + /// The address of the account to sign the transaction + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pb::ByteString Address { + get { return address_; } + set { + address_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "security_margin" field. + public const int SecurityMarginFieldNumber = 3; + private uint securityMargin_; + /// + /// The security margin to apply to the estimated gas amount. + /// This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + /// It will be multiplied by the estimated gas amount. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint SecurityMargin { + get { return securityMargin_; } + set { + securityMargin_ = value; + } + } + + /// Field number for the "update_tx" field. + public const int UpdateTxFieldNumber = 4; + private bool updateTx_; + /// + /// The update boolean to update the gas wanted field in the transaction if true. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool UpdateTx { + get { return updateTx_; } + set { + updateTx_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as EstimateGasRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(EstimateGasRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TxJson != other.TxJson) return false; + if (Address != other.Address) return false; + if (SecurityMargin != other.SecurityMargin) return false; + if (UpdateTx != other.UpdateTx) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TxJson.Length != 0) hash ^= TxJson.GetHashCode(); + if (Address.Length != 0) hash ^= Address.GetHashCode(); + if (SecurityMargin != 0) hash ^= SecurityMargin.GetHashCode(); + if (UpdateTx != false) hash ^= UpdateTx.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TxJson.Length != 0) { + output.WriteRawTag(10); + output.WriteString(TxJson); + } + if (Address.Length != 0) { + output.WriteRawTag(18); + output.WriteBytes(Address); + } + if (SecurityMargin != 0) { + output.WriteRawTag(24); + output.WriteUInt32(SecurityMargin); + } + if (UpdateTx != false) { + output.WriteRawTag(32); + output.WriteBool(UpdateTx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TxJson.Length != 0) { + output.WriteRawTag(10); + output.WriteString(TxJson); + } + if (Address.Length != 0) { + output.WriteRawTag(18); + output.WriteBytes(Address); + } + if (SecurityMargin != 0) { + output.WriteRawTag(24); + output.WriteUInt32(SecurityMargin); + } + if (UpdateTx != false) { + output.WriteRawTag(32); + output.WriteBool(UpdateTx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TxJson.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TxJson); + } + if (Address.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Address); + } + if (SecurityMargin != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SecurityMargin); + } + if (UpdateTx != false) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(EstimateGasRequest other) { + if (other == null) { + return; + } + if (other.TxJson.Length != 0) { + TxJson = other.TxJson; + } + if (other.Address.Length != 0) { + Address = other.Address; + } + if (other.SecurityMargin != 0) { + SecurityMargin = other.SecurityMargin; + } + if (other.UpdateTx != false) { + UpdateTx = other.UpdateTx; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + TxJson = input.ReadString(); + break; + } + case 18: { + Address = input.ReadBytes(); + break; + } + case 24: { + SecurityMargin = input.ReadUInt32(); + break; + } + case 32: { + UpdateTx = input.ReadBool(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + TxJson = input.ReadString(); + break; + } + case 18: { + Address = input.ReadBytes(); + break; + } + case 24: { + SecurityMargin = input.ReadUInt32(); + break; + } + case 32: { + UpdateTx = input.ReadBool(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class EstimateGasResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EstimateGasResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[62]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EstimateGasResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EstimateGasResponse(EstimateGasResponse other) : this() { + txJson_ = other.txJson_; + gasWanted_ = other.gasWanted_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EstimateGasResponse Clone() { + return new EstimateGasResponse(this); + } + + /// Field number for the "tx_json" field. + public const int TxJsonFieldNumber = 1; + private string txJson_ = ""; + /// + /// The JSON encoding of the unsigned transaction + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TxJson { + get { return txJson_; } + set { + txJson_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "gas_wanted" field. + public const int GasWantedFieldNumber = 2; + private long gasWanted_; + /// + /// The estimated gas wanted for the transaction + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long GasWanted { + get { return gasWanted_; } + set { + gasWanted_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as EstimateGasResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(EstimateGasResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TxJson != other.TxJson) return false; + if (GasWanted != other.GasWanted) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TxJson.Length != 0) hash ^= TxJson.GetHashCode(); + if (GasWanted != 0L) hash ^= GasWanted.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TxJson.Length != 0) { + output.WriteRawTag(10); + output.WriteString(TxJson); + } + if (GasWanted != 0L) { + output.WriteRawTag(16); + output.WriteSInt64(GasWanted); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TxJson.Length != 0) { + output.WriteRawTag(10); + output.WriteString(TxJson); + } + if (GasWanted != 0L) { + output.WriteRawTag(16); + output.WriteSInt64(GasWanted); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TxJson.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TxJson); + } + if (GasWanted != 0L) { + size += 1 + pb::CodedOutputStream.ComputeSInt64Size(GasWanted); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(EstimateGasResponse other) { + if (other == null) { + return; + } + if (other.TxJson.Length != 0) { + TxJson = other.TxJson; + } + if (other.GasWanted != 0L) { + GasWanted = other.GasWanted; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + TxJson = input.ReadString(); + break; + } + case 16: { + GasWanted = input.ReadSInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + TxJson = input.ReadString(); + break; + } + case 16: { + GasWanted = input.ReadSInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class EstimateGasFeeRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EstimateGasFeeRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[63]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EstimateGasFeeRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EstimateGasFeeRequest(EstimateGasFeeRequest other) : this() { + txJson_ = other.txJson_; + address_ = other.address_; + gasSecurityMargin_ = other.gasSecurityMargin_; + priceSecurityMargin_ = other.priceSecurityMargin_; + updateTx_ = other.updateTx_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EstimateGasFeeRequest Clone() { + return new EstimateGasFeeRequest(this); } /// Field number for the "tx_json" field. @@ -14125,9 +14696,9 @@ public string TxJson { } } - /// Field number for the "security_margin" field. - public const int SecurityMarginFieldNumber = 3; - private uint securityMargin_; + /// Field number for the "gas_security_margin" field. + public const int GasSecurityMarginFieldNumber = 3; + private uint gasSecurityMargin_; /// /// The security margin to apply to the estimated gas amount. /// This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. @@ -14135,67 +14706,54 @@ public string TxJson { /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint SecurityMargin { - get { return securityMargin_; } - set { - securityMargin_ = value; - } - } - - /// Field number for the "update_tx" field. - public const int UpdateTxFieldNumber = 4; - private bool updateTx_; - /// - /// The update boolean to update the gas wanted field in the transaction if true. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool UpdateTx { - get { return updateTx_; } + public uint GasSecurityMargin { + get { return gasSecurityMargin_; } set { - updateTx_ = value; + gasSecurityMargin_ = value; } } - /// Field number for the "account_number" field. - public const int AccountNumberFieldNumber = 5; - private ulong accountNumber_; + /// Field number for the "price_security_margin" field. + public const int PriceSecurityMarginFieldNumber = 4; + private uint priceSecurityMargin_; /// - /// The signer's account number on the blockchain. If 0 then query the blockchain for the value. + /// The security margin to apply to the gas price. + /// This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + /// It will be multiplied by the fetched gas price. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong AccountNumber { - get { return accountNumber_; } + public uint PriceSecurityMargin { + get { return priceSecurityMargin_; } set { - accountNumber_ = value; + priceSecurityMargin_ = value; } } - /// Field number for the "sequence_number" field. - public const int SequenceNumberFieldNumber = 6; - private ulong sequenceNumber_; + /// Field number for the "update_tx" field. + public const int UpdateTxFieldNumber = 5; + private bool updateTx_; /// - /// The sequence number of the signer's transactions on the blockchain. If 0 then query the blockchain for the value. + /// The update boolean to update the gas wanted field in the transaction if true. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong SequenceNumber { - get { return sequenceNumber_; } + public bool UpdateTx { + get { return updateTx_; } set { - sequenceNumber_ = value; + updateTx_ = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as EstimateGasRequest); + return Equals(other as EstimateGasFeeRequest); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(EstimateGasRequest other) { + public bool Equals(EstimateGasFeeRequest other) { if (ReferenceEquals(other, null)) { return false; } @@ -14204,10 +14762,9 @@ public bool Equals(EstimateGasRequest other) { } if (TxJson != other.TxJson) return false; if (Address != other.Address) return false; - if (SecurityMargin != other.SecurityMargin) return false; + if (GasSecurityMargin != other.GasSecurityMargin) return false; + if (PriceSecurityMargin != other.PriceSecurityMargin) return false; if (UpdateTx != other.UpdateTx) return false; - if (AccountNumber != other.AccountNumber) return false; - if (SequenceNumber != other.SequenceNumber) return false; return Equals(_unknownFields, other._unknownFields); } @@ -14217,10 +14774,9 @@ public override int GetHashCode() { int hash = 1; if (TxJson.Length != 0) hash ^= TxJson.GetHashCode(); if (Address.Length != 0) hash ^= Address.GetHashCode(); - if (SecurityMargin != 0) hash ^= SecurityMargin.GetHashCode(); + if (GasSecurityMargin != 0) hash ^= GasSecurityMargin.GetHashCode(); + if (PriceSecurityMargin != 0) hash ^= PriceSecurityMargin.GetHashCode(); if (UpdateTx != false) hash ^= UpdateTx.GetHashCode(); - if (AccountNumber != 0UL) hash ^= AccountNumber.GetHashCode(); - if (SequenceNumber != 0UL) hash ^= SequenceNumber.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -14247,21 +14803,17 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteBytes(Address); } - if (SecurityMargin != 0) { + if (GasSecurityMargin != 0) { output.WriteRawTag(24); - output.WriteUInt32(SecurityMargin); + output.WriteUInt32(GasSecurityMargin); } - if (UpdateTx != false) { + if (PriceSecurityMargin != 0) { output.WriteRawTag(32); - output.WriteBool(UpdateTx); + output.WriteUInt32(PriceSecurityMargin); } - if (AccountNumber != 0UL) { + if (UpdateTx != false) { output.WriteRawTag(40); - output.WriteUInt64(AccountNumber); - } - if (SequenceNumber != 0UL) { - output.WriteRawTag(48); - output.WriteUInt64(SequenceNumber); + output.WriteBool(UpdateTx); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -14281,21 +14833,17 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteBytes(Address); } - if (SecurityMargin != 0) { + if (GasSecurityMargin != 0) { output.WriteRawTag(24); - output.WriteUInt32(SecurityMargin); + output.WriteUInt32(GasSecurityMargin); } - if (UpdateTx != false) { + if (PriceSecurityMargin != 0) { output.WriteRawTag(32); - output.WriteBool(UpdateTx); + output.WriteUInt32(PriceSecurityMargin); } - if (AccountNumber != 0UL) { + if (UpdateTx != false) { output.WriteRawTag(40); - output.WriteUInt64(AccountNumber); - } - if (SequenceNumber != 0UL) { - output.WriteRawTag(48); - output.WriteUInt64(SequenceNumber); + output.WriteBool(UpdateTx); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -14313,18 +14861,15 @@ public int CalculateSize() { if (Address.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(Address); } - if (SecurityMargin != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SecurityMargin); + if (GasSecurityMargin != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(GasSecurityMargin); + } + if (PriceSecurityMargin != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PriceSecurityMargin); } if (UpdateTx != false) { size += 1 + 1; } - if (AccountNumber != 0UL) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AccountNumber); - } - if (SequenceNumber != 0UL) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SequenceNumber); - } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -14333,7 +14878,7 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(EstimateGasRequest other) { + public void MergeFrom(EstimateGasFeeRequest other) { if (other == null) { return; } @@ -14343,18 +14888,15 @@ public void MergeFrom(EstimateGasRequest other) { if (other.Address.Length != 0) { Address = other.Address; } - if (other.SecurityMargin != 0) { - SecurityMargin = other.SecurityMargin; + if (other.GasSecurityMargin != 0) { + GasSecurityMargin = other.GasSecurityMargin; + } + if (other.PriceSecurityMargin != 0) { + PriceSecurityMargin = other.PriceSecurityMargin; } if (other.UpdateTx != false) { UpdateTx = other.UpdateTx; } - if (other.AccountNumber != 0UL) { - AccountNumber = other.AccountNumber; - } - if (other.SequenceNumber != 0UL) { - SequenceNumber = other.SequenceNumber; - } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -14383,19 +14925,15 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 24: { - SecurityMargin = input.ReadUInt32(); + GasSecurityMargin = input.ReadUInt32(); break; } case 32: { - UpdateTx = input.ReadBool(); + PriceSecurityMargin = input.ReadUInt32(); break; } case 40: { - AccountNumber = input.ReadUInt64(); - break; - } - case 48: { - SequenceNumber = input.ReadUInt64(); + UpdateTx = input.ReadBool(); break; } } @@ -14426,19 +14964,15 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 24: { - SecurityMargin = input.ReadUInt32(); + GasSecurityMargin = input.ReadUInt32(); break; } case 32: { - UpdateTx = input.ReadBool(); + PriceSecurityMargin = input.ReadUInt32(); break; } case 40: { - AccountNumber = input.ReadUInt64(); - break; - } - case 48: { - SequenceNumber = input.ReadUInt64(); + UpdateTx = input.ReadBool(); break; } } @@ -14449,21 +14983,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class EstimateGasResponse : pb::IMessage + public sealed partial class EstimateGasFeeResponse : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EstimateGasResponse()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EstimateGasFeeResponse()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[62]; } + get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[64]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -14474,7 +15008,7 @@ public sealed partial class EstimateGasResponse : pb::IMessageField number for the "tx_json" field. @@ -14524,15 +15059,30 @@ public long GasWanted { } } + /// Field number for the "fee" field. + public const int FeeFieldNumber = 3; + private global::Land.Gno.Gnonative.V1.Coin fee_; + /// + /// The estimated fee for the transaction + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Land.Gno.Gnonative.V1.Coin Fee { + get { return fee_; } + set { + fee_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as EstimateGasResponse); + return Equals(other as EstimateGasFeeResponse); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(EstimateGasResponse other) { + public bool Equals(EstimateGasFeeResponse other) { if (ReferenceEquals(other, null)) { return false; } @@ -14541,6 +15091,7 @@ public bool Equals(EstimateGasResponse other) { } if (TxJson != other.TxJson) return false; if (GasWanted != other.GasWanted) return false; + if (!object.Equals(Fee, other.Fee)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -14550,6 +15101,7 @@ public override int GetHashCode() { int hash = 1; if (TxJson.Length != 0) hash ^= TxJson.GetHashCode(); if (GasWanted != 0L) hash ^= GasWanted.GetHashCode(); + if (fee_ != null) hash ^= Fee.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -14576,6 +15128,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(16); output.WriteSInt64(GasWanted); } + if (fee_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Fee); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -14594,6 +15150,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(16); output.WriteSInt64(GasWanted); } + if (fee_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Fee); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -14610,6 +15170,9 @@ public int CalculateSize() { if (GasWanted != 0L) { size += 1 + pb::CodedOutputStream.ComputeSInt64Size(GasWanted); } + if (fee_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Fee); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -14618,7 +15181,7 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(EstimateGasResponse other) { + public void MergeFrom(EstimateGasFeeResponse other) { if (other == null) { return; } @@ -14628,6 +15191,12 @@ public void MergeFrom(EstimateGasResponse other) { if (other.GasWanted != 0L) { GasWanted = other.GasWanted; } + if (other.fee_ != null) { + if (fee_ == null) { + Fee = new global::Land.Gno.Gnonative.V1.Coin(); + } + Fee.MergeFrom(other.Fee); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -14655,6 +15224,13 @@ public void MergeFrom(pb::CodedInputStream input) { GasWanted = input.ReadSInt64(); break; } + case 26: { + if (fee_ == null) { + Fee = new global::Land.Gno.Gnonative.V1.Coin(); + } + input.ReadMessage(Fee); + break; + } } } #endif @@ -14682,6 +15258,13 @@ public void MergeFrom(pb::CodedInputStream input) { GasWanted = input.ReadSInt64(); break; } + case 26: { + if (fee_ == null) { + Fee = new global::Land.Gno.Gnonative.V1.Coin(); + } + input.ReadMessage(Fee); + break; + } } } } @@ -14704,7 +15287,7 @@ public sealed partial class BroadcastTxCommitRequest : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[75]; } + get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[77]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -17361,7 +17944,7 @@ public sealed partial class HelloResponse : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[76]; } + get { return global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor.MessageTypes[78]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -17559,7 +18142,7 @@ public sealed partial class HelloStreamRequest : pb::IMessage __Marshaller_land_gno_gnonative_v1_EstimateGasResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Land.Gno.Gnonative.V1.EstimateGasResponse.Parser)); [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + static readonly grpc::Marshaller __Marshaller_land_gno_gnonative_v1_EstimateGasFeeRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest.Parser)); + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + static readonly grpc::Marshaller __Marshaller_land_gno_gnonative_v1_EstimateGasFeeResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Land.Gno.Gnonative.V1.EstimateGasFeeResponse.Parser)); + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] static readonly grpc::Marshaller __Marshaller_land_gno_gnonative_v1_SignTxRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Land.Gno.Gnonative.V1.SignTxRequest.Parser)); [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] static readonly grpc::Marshaller __Marshaller_land_gno_gnonative_v1_SignTxResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Land.Gno.Gnonative.V1.SignTxResponse.Parser)); @@ -435,6 +439,14 @@ static T __Helper_DeserializeMessage(grpc::DeserializationContext context, gl __Marshaller_land_gno_gnonative_v1_EstimateGasRequest, __Marshaller_land_gno_gnonative_v1_EstimateGasResponse); + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + static readonly grpc::Method __Method_EstimateGasFee = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "EstimateGasFee", + __Marshaller_land_gno_gnonative_v1_EstimateGasFeeRequest, + __Marshaller_land_gno_gnonative_v1_EstimateGasFeeResponse); + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] static readonly grpc::Method __Method_SignTx = new grpc::Method( grpc::MethodType.Unary, @@ -927,6 +939,7 @@ public abstract partial class GnoNativeServiceBase /// /// EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. /// /// The request received from the client. /// The context of the server-side call handler being invoked. @@ -937,6 +950,21 @@ public abstract partial class GnoNativeServiceBase throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); } + /// + /// EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. + /// This is similar to EstimateGas but also fetches the gas price from the remote node. + /// + /// The request received from the client. + /// The context of the server-side call handler being invoked. + /// The response to send back to the client (wrapped by a task). + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual global::System.Threading.Tasks.Task EstimateGasFee(global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest request, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + /// /// Sign the transaction using the account with the given address. /// If there is no activated account with the given address, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrNoActiveAccount. @@ -2611,6 +2639,7 @@ protected GnoNativeServiceClient(ClientBaseConfiguration configuration) : base(c /// /// EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. /// /// The request to send to the server. /// The initial metadata to send with the call. This parameter is optional. @@ -2625,6 +2654,7 @@ protected GnoNativeServiceClient(ClientBaseConfiguration configuration) : base(c /// /// EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. /// /// The request to send to the server. /// The options for the call. @@ -2637,6 +2667,7 @@ protected GnoNativeServiceClient(ClientBaseConfiguration configuration) : base(c /// /// EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. /// /// The request to send to the server. /// The initial metadata to send with the call. This parameter is optional. @@ -2651,6 +2682,7 @@ protected GnoNativeServiceClient(ClientBaseConfiguration configuration) : base(c /// /// EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. /// /// The request to send to the server. /// The options for the call. @@ -2661,6 +2693,66 @@ protected GnoNativeServiceClient(ClientBaseConfiguration configuration) : base(c return CallInvoker.AsyncUnaryCall(__Method_EstimateGas, null, options, request); } /// + /// EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. + /// This is similar to EstimateGas but also fetches the gas price from the remote node. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The response received from the server. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual global::Land.Gno.Gnonative.V1.EstimateGasFeeResponse EstimateGasFee(global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return EstimateGasFee(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. + /// This is similar to EstimateGas but also fetches the gas price from the remote node. + /// + /// The request to send to the server. + /// The options for the call. + /// The response received from the server. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual global::Land.Gno.Gnonative.V1.EstimateGasFeeResponse EstimateGasFee(global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_EstimateGasFee, null, options, request); + } + /// + /// EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. + /// This is similar to EstimateGas but also fetches the gas price from the remote node. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual grpc::AsyncUnaryCall EstimateGasFeeAsync(global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return EstimateGasFeeAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + /// If UpdateTx is true, then update the transaction with the gasWanted amount. + /// This uses the remote node determined by SetRemote. + /// This is similar to EstimateGas but also fetches the gas price from the remote node. + /// + /// The request to send to the server. + /// The options for the call. + /// The call object. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual grpc::AsyncUnaryCall EstimateGasFeeAsync(global::Land.Gno.Gnonative.V1.EstimateGasFeeRequest request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_EstimateGasFee, null, options, request); + } + /// /// Sign the transaction using the account with the given address. /// If there is no activated account with the given address, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrNoActiveAccount. /// If the password is wrong, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrDecryptionFailed. @@ -3104,6 +3196,7 @@ protected override GnoNativeServiceClient NewInstance(ClientBaseConfiguration co .AddMethod(__Method_MakeSendTx, serviceImpl.MakeSendTx) .AddMethod(__Method_MakeRunTx, serviceImpl.MakeRunTx) .AddMethod(__Method_EstimateGas, serviceImpl.EstimateGas) + .AddMethod(__Method_EstimateGasFee, serviceImpl.EstimateGasFee) .AddMethod(__Method_SignTx, serviceImpl.SignTx) .AddMethod(__Method_BroadcastTxCommit, serviceImpl.BroadcastTxCommit) .AddMethod(__Method_AddressToBech32, serviceImpl.AddressToBech32) @@ -3152,6 +3245,7 @@ public static void BindService(grpc::ServiceBinderBase serviceBinder, GnoNativeS serviceBinder.AddMethod(__Method_MakeSendTx, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.MakeSendTx)); serviceBinder.AddMethod(__Method_MakeRunTx, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.MakeRunTx)); serviceBinder.AddMethod(__Method_EstimateGas, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.EstimateGas)); + serviceBinder.AddMethod(__Method_EstimateGasFee, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.EstimateGasFee)); serviceBinder.AddMethod(__Method_SignTx, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.SignTx)); serviceBinder.AddMethod(__Method_BroadcastTxCommit, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod(serviceImpl.BroadcastTxCommit)); serviceBinder.AddMethod(__Method_AddressToBech32, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.AddressToBech32)); diff --git a/api/gen/es/gnonativetypes_pb.ts b/api/gen/es/gnonativetypes_pb.ts index e54c26b..1e003ac 100644 --- a/api/gen/es/gnonativetypes_pb.ts +++ b/api/gen/es/gnonativetypes_pb.ts @@ -10,7 +10,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file gnonativetypes.proto. */ export const file_gnonativetypes: GenFile = /*@__PURE__*/ - fileDesc("ChRnbm9uYXRpdmV0eXBlcy5wcm90bxIVbGFuZC5nbm8uZ25vbmF0aXZlLnYxIiIKEFNldFJlbW90ZVJlcXVlc3QSDgoGcmVtb3RlGAEgASgJIhMKEVNldFJlbW90ZVJlc3BvbnNlIhIKEEdldFJlbW90ZVJlcXVlc3QiIwoRR2V0UmVtb3RlUmVzcG9uc2USDgoGcmVtb3RlGAEgASgJIiUKEVNldENoYWluSURSZXF1ZXN0EhAKCGNoYWluX2lkGAEgASgJIhQKElNldENoYWluSURSZXNwb25zZSITChFHZXRDaGFpbklEUmVxdWVzdCImChJHZXRDaGFpbklEUmVzcG9uc2USEAoIY2hhaW5faWQYASABKAkiNwoSU2V0UGFzc3dvcmRSZXF1ZXN0EhAKCHBhc3N3b3JkGAEgASgJEg8KB2FkZHJlc3MYAiABKAwiFQoTU2V0UGFzc3dvcmRSZXNwb25zZSJAChVSb3RhdGVQYXNzd29yZFJlcXVlc3QSFAoMbmV3X3Bhc3N3b3JkGAEgASgJEhEKCWFkZHJlc3NlcxgCIAMoDCIYChZSb3RhdGVQYXNzd29yZFJlc3BvbnNlIh8KHUdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXF1ZXN0IjAKHkdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXNwb25zZRIOCgZwaHJhc2UYASABKAkiRwoHS2V5SW5mbxIMCgR0eXBlGAEgASgNEgwKBG5hbWUYAiABKAkSDwoHcHViX2tleRgDIAEoDBIPCgdhZGRyZXNzGAQgASgMIiUKBENvaW4SDQoFZGVub20YASABKAkSDgoGYW1vdW50GAIgASgSIoUBCgtCYXNlQWNjb3VudBIPCgdhZGRyZXNzGAEgASgMEioKBWNvaW5zGAIgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNvaW4SDwoHcHViX2tleRgDIAEoDBIWCg5hY2NvdW50X251bWJlchgEIAEoBBIQCghzZXF1ZW5jZRgFIAEoBCIUChJMaXN0S2V5SW5mb1JlcXVlc3QiTQoTTGlzdEtleUluZm9SZXNwb25zZRI2CgRrZXlzGAEgAygLMh4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLktleUluZm9SCGtleV9pbmZvIiMKE0hhc0tleUJ5TmFtZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSIjChRIYXNLZXlCeU5hbWVSZXNwb25zZRILCgNoYXMYASABKAgiKQoWSGFzS2V5QnlBZGRyZXNzUmVxdWVzdBIPCgdhZGRyZXNzGAEgASgMIiYKF0hhc0tleUJ5QWRkcmVzc1Jlc3BvbnNlEgsKA2hhcxgBIAEoCCI2ChxIYXNLZXlCeU5hbWVPckFkZHJlc3NSZXF1ZXN0EhYKDm5hbWVfb3JfYmVjaDMyGAEgASgJIiwKHUhhc0tleUJ5TmFtZU9yQWRkcmVzc1Jlc3BvbnNlEgsKA2hhcxgBIAEoCCInChdHZXRLZXlJbmZvQnlOYW1lUmVxdWVzdBIMCgRuYW1lGAEgASgJIlEKGEdldEtleUluZm9CeU5hbWVSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iLQoaR2V0S2V5SW5mb0J5QWRkcmVzc1JlcXVlc3QSDwoHYWRkcmVzcxgBIAEoDCJUChtHZXRLZXlJbmZvQnlBZGRyZXNzUmVzcG9uc2USNQoDa2V5GAEgASgLMh4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLktleUluZm9SCGtleV9pbmZvIjoKIEdldEtleUluZm9CeU5hbWVPckFkZHJlc3NSZXF1ZXN0EhYKDm5hbWVfb3JfYmVjaDMyGAEgASgJIloKIUdldEtleUluZm9CeU5hbWVPckFkZHJlc3NSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iiAEKFENyZWF0ZUFjY291bnRSZXF1ZXN0EhYKDm5hbWVfb3JfYmVjaDMyGAEgASgJEhAKCG1uZW1vbmljGAIgASgJEhQKDGJpcDM5X3Bhc3N3ZBgDIAEoCRIQCghwYXNzd29yZBgEIAEoCRIPCgdhY2NvdW50GAUgASgNEg0KBWluZGV4GAYgASgNIk4KFUNyZWF0ZUFjY291bnRSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iYwoTQ3JlYXRlTGVkZ2VyUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCWFsZ29yaXRobRgCIAEoCRILCgNocnAYAyABKAkSDwoHYWNjb3VudBgEIAEoDRINCgVpbmRleBgFIAEoDSJNChRDcmVhdGVMZWRnZXJSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iMAoWQWN0aXZhdGVBY2NvdW50UmVxdWVzdBIWCg5uYW1lX29yX2JlY2gzMhgBIAEoCSJmChdBY3RpdmF0ZUFjY291bnRSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8SFAoMaGFzX3Bhc3N3b3JkGAIgASgIIi0KGkdldEFjdGl2YXRlZEFjY291bnRSZXF1ZXN0Eg8KB2FkZHJlc3MYASABKAwiagobR2V0QWN0aXZhdGVkQWNjb3VudFJlc3BvbnNlEjUKA2tleRgBIAEoCzIeLmxhbmQuZ25vLmdub25hdGl2ZS52MS5LZXlJbmZvUghrZXlfaW5mbxIUCgxoYXNfcGFzc3dvcmQYAiABKAgiJgoTUXVlcnlBY2NvdW50UmVxdWVzdBIPCgdhZGRyZXNzGAEgASgMIlAKFFF1ZXJ5QWNjb3VudFJlc3BvbnNlEjgKDGFjY291bnRfaW5mbxgBIAEoCzIiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5CYXNlQWNjb3VudCJXChREZWxldGVBY2NvdW50UmVxdWVzdBIWCg5uYW1lX29yX2JlY2gzMhgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIVCg1za2lwX3Bhc3N3b3JkGAMgASgIIhcKFURlbGV0ZUFjY291bnRSZXNwb25zZSIqCgxRdWVyeVJlcXVlc3QSDAoEcGF0aBgBIAEoCRIMCgRkYXRhGAIgASgMIh8KDVF1ZXJ5UmVzcG9uc2USDgoGcmVzdWx0GAEgASgMIjMKDVJlbmRlclJlcXVlc3QSFAoMcGFja2FnZV9wYXRoGAEgASgJEgwKBGFyZ3MYAiABKAkiIAoOUmVuZGVyUmVzcG9uc2USDgoGcmVzdWx0GAEgASgJIjgKDFFFdmFsUmVxdWVzdBIUCgxwYWNrYWdlX3BhdGgYASABKAkSEgoKZXhwcmVzc2lvbhgCIAEoCSIfCg1RRXZhbFJlc3BvbnNlEg4KBnJlc3VsdBgBIAEoCSKXAQoHTXNnQ2FsbBIUCgxwYWNrYWdlX3BhdGgYASABKAkSCwoDZm5jGAIgASgJEgwKBGFyZ3MYAyADKAkSKQoEc2VuZBgEIAMoCzIbLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Db2luEjAKC21heF9kZXBvc2l0GAUgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNvaW4ijAEKC0NhbGxSZXF1ZXN0Eg8KB2dhc19mZWUYASABKAkSEgoKZ2FzX3dhbnRlZBgCIAEoEhIMCgRtZW1vGAMgASgJEhYKDmNhbGxlcl9hZGRyZXNzGAQgASgMEjIKBG1zZ3MYBSADKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuTXNnQ2FsbFIETXNncyI8CgxDYWxsUmVzcG9uc2USDgoGcmVzdWx0GAEgASgMEgwKBGhhc2gYAiABKAwSDgoGaGVpZ2h0GAMgASgSIkoKB01zZ1NlbmQSEgoKdG9fYWRkcmVzcxgBIAEoDBIrCgZhbW91bnQYAiADKAsyGy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ29pbiKMAQoLU2VuZFJlcXVlc3QSDwoHZ2FzX2ZlZRgBIAEoCRISCgpnYXNfd2FudGVkGAIgASgSEgwKBG1lbW8YAyABKAkSFgoOY2FsbGVyX2FkZHJlc3MYBCABKAwSMgoEbXNncxgFIAMoCzIeLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Nc2dTZW5kUgRNc2dzIiwKDFNlbmRSZXNwb25zZRIMCgRoYXNoGAEgASgMEg4KBmhlaWdodBgCIAEoEiJ2CgZNc2dSdW4SDwoHcGFja2FnZRgBIAEoCRIpCgRzZW5kGAIgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNvaW4SMAoLbWF4X2RlcG9zaXQYAyADKAsyGy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ29pbiKKAQoKUnVuUmVxdWVzdBIPCgdnYXNfZmVlGAEgASgJEhIKCmdhc193YW50ZWQYAiABKBISDAoEbWVtbxgDIAEoCRIWCg5jYWxsZXJfYWRkcmVzcxgEIAEoDBIxCgRtc2dzGAUgAygLMh0ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLk1zZ1J1blIETXNncyI7CgtSdW5SZXNwb25zZRIOCgZyZXN1bHQYASABKAkSDAoEaGFzaBgCIAEoDBIOCgZoZWlnaHQYAyABKBIiIQoOTWFrZVR4UmVzcG9uc2USDwoHdHhfanNvbhgBIAEoCSJiCg1TaWduVHhSZXF1ZXN0Eg8KB3R4X2pzb24YASABKAkSDwoHYWRkcmVzcxgCIAEoDBIWCg5hY2NvdW50X251bWJlchgDIAEoBBIXCg9zZXF1ZW5jZV9udW1iZXIYBCABKAQiMQoOU2lnblR4UmVzcG9uc2USHwoOc2lnbmVkX3R4X2pzb24YASABKAlSB3R4X2pzb24ikwEKEkVzdGltYXRlR2FzUmVxdWVzdBIPCgd0eF9qc29uGAEgASgJEg8KB2FkZHJlc3MYAiABKAwSFwoPc2VjdXJpdHlfbWFyZ2luGAMgASgNEhEKCXVwZGF0ZV90eBgEIAEoCBIWCg5hY2NvdW50X251bWJlchgFIAEoBBIXCg9zZXF1ZW5jZV9udW1iZXIYBiABKAQiOgoTRXN0aW1hdGVHYXNSZXNwb25zZRIPCgd0eF9qc29uGAEgASgJEhIKCmdhc193YW50ZWQYAiABKBIiOwoYQnJvYWRjYXN0VHhDb21taXRSZXF1ZXN0Eh8KDnNpZ25lZF90eF9qc29uGAEgASgJUgd0eF9qc29uIkkKGUJyb2FkY2FzdFR4Q29tbWl0UmVzcG9uc2USDgoGcmVzdWx0GAEgASgMEgwKBGhhc2gYAiABKAwSDgoGaGVpZ2h0GAMgASgSIikKFkFkZHJlc3NUb0JlY2gzMlJlcXVlc3QSDwoHYWRkcmVzcxgBIAEoDCIxChdBZGRyZXNzVG9CZWNoMzJSZXNwb25zZRIWCg5iZWNoMzJfYWRkcmVzcxgBIAEoCSIyChhBZGRyZXNzRnJvbUJlY2gzMlJlcXVlc3QSFgoOYmVjaDMyX2FkZHJlc3MYASABKAkiLAoZQWRkcmVzc0Zyb21CZWNoMzJSZXNwb25zZRIPCgdhZGRyZXNzGAEgASgMIi4KGkFkZHJlc3NGcm9tTW5lbW9uaWNSZXF1ZXN0EhAKCG1uZW1vbmljGAEgASgJIi4KG0FkZHJlc3NGcm9tTW5lbW9uaWNSZXNwb25zZRIPCgdhZGRyZXNzGAEgASgMIisKG1ZhbGlkYXRlTW5lbW9uaWNXb3JkUmVxdWVzdBIMCgR3b3JkGAEgASgJIi0KHFZhbGlkYXRlTW5lbW9uaWNXb3JkUmVzcG9uc2USDQoFdmFsaWQYASABKAgiLwodVmFsaWRhdGVNbmVtb25pY1BocmFzZVJlcXVlc3QSDgoGcGhyYXNlGAEgASgJIi8KHlZhbGlkYXRlTW5lbW9uaWNQaHJhc2VSZXNwb25zZRINCgV2YWxpZBgBIAEoCCIiCgxIZWxsb1JlcXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIrCg1IZWxsb1Jlc3BvbnNlEhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIoChJIZWxsb1N0cmVhbVJlcXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIxChNIZWxsb1N0cmVhbVJlc3BvbnNlEhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIpChhHTk9OQVRJVkVUWVBFU19CeXRlc0xpc3QSDQoFVmFsdWUYASADKAxCLFoqZ2l0aHViLmNvbS9nbm9sYW5nL2dub25hdGl2ZS92NC9hcGkvZ2VuL2dvYgZwcm90bzM"); + fileDesc("ChRnbm9uYXRpdmV0eXBlcy5wcm90bxIVbGFuZC5nbm8uZ25vbmF0aXZlLnYxIiIKEFNldFJlbW90ZVJlcXVlc3QSDgoGcmVtb3RlGAEgASgJIhMKEVNldFJlbW90ZVJlc3BvbnNlIhIKEEdldFJlbW90ZVJlcXVlc3QiIwoRR2V0UmVtb3RlUmVzcG9uc2USDgoGcmVtb3RlGAEgASgJIiUKEVNldENoYWluSURSZXF1ZXN0EhAKCGNoYWluX2lkGAEgASgJIhQKElNldENoYWluSURSZXNwb25zZSITChFHZXRDaGFpbklEUmVxdWVzdCImChJHZXRDaGFpbklEUmVzcG9uc2USEAoIY2hhaW5faWQYASABKAkiNwoSU2V0UGFzc3dvcmRSZXF1ZXN0EhAKCHBhc3N3b3JkGAEgASgJEg8KB2FkZHJlc3MYAiABKAwiFQoTU2V0UGFzc3dvcmRSZXNwb25zZSJAChVSb3RhdGVQYXNzd29yZFJlcXVlc3QSFAoMbmV3X3Bhc3N3b3JkGAEgASgJEhEKCWFkZHJlc3NlcxgCIAMoDCIYChZSb3RhdGVQYXNzd29yZFJlc3BvbnNlIh8KHUdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXF1ZXN0IjAKHkdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXNwb25zZRIOCgZwaHJhc2UYASABKAkiRwoHS2V5SW5mbxIMCgR0eXBlGAEgASgNEgwKBG5hbWUYAiABKAkSDwoHcHViX2tleRgDIAEoDBIPCgdhZGRyZXNzGAQgASgMIiUKBENvaW4SDQoFZGVub20YASABKAkSDgoGYW1vdW50GAIgASgSIoUBCgtCYXNlQWNjb3VudBIPCgdhZGRyZXNzGAEgASgMEioKBWNvaW5zGAIgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNvaW4SDwoHcHViX2tleRgDIAEoDBIWCg5hY2NvdW50X251bWJlchgEIAEoBBIQCghzZXF1ZW5jZRgFIAEoBCIUChJMaXN0S2V5SW5mb1JlcXVlc3QiTQoTTGlzdEtleUluZm9SZXNwb25zZRI2CgRrZXlzGAEgAygLMh4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLktleUluZm9SCGtleV9pbmZvIiMKE0hhc0tleUJ5TmFtZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSIjChRIYXNLZXlCeU5hbWVSZXNwb25zZRILCgNoYXMYASABKAgiKQoWSGFzS2V5QnlBZGRyZXNzUmVxdWVzdBIPCgdhZGRyZXNzGAEgASgMIiYKF0hhc0tleUJ5QWRkcmVzc1Jlc3BvbnNlEgsKA2hhcxgBIAEoCCI2ChxIYXNLZXlCeU5hbWVPckFkZHJlc3NSZXF1ZXN0EhYKDm5hbWVfb3JfYmVjaDMyGAEgASgJIiwKHUhhc0tleUJ5TmFtZU9yQWRkcmVzc1Jlc3BvbnNlEgsKA2hhcxgBIAEoCCInChdHZXRLZXlJbmZvQnlOYW1lUmVxdWVzdBIMCgRuYW1lGAEgASgJIlEKGEdldEtleUluZm9CeU5hbWVSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iLQoaR2V0S2V5SW5mb0J5QWRkcmVzc1JlcXVlc3QSDwoHYWRkcmVzcxgBIAEoDCJUChtHZXRLZXlJbmZvQnlBZGRyZXNzUmVzcG9uc2USNQoDa2V5GAEgASgLMh4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLktleUluZm9SCGtleV9pbmZvIjoKIEdldEtleUluZm9CeU5hbWVPckFkZHJlc3NSZXF1ZXN0EhYKDm5hbWVfb3JfYmVjaDMyGAEgASgJIloKIUdldEtleUluZm9CeU5hbWVPckFkZHJlc3NSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iiAEKFENyZWF0ZUFjY291bnRSZXF1ZXN0EhYKDm5hbWVfb3JfYmVjaDMyGAEgASgJEhAKCG1uZW1vbmljGAIgASgJEhQKDGJpcDM5X3Bhc3N3ZBgDIAEoCRIQCghwYXNzd29yZBgEIAEoCRIPCgdhY2NvdW50GAUgASgNEg0KBWluZGV4GAYgASgNIk4KFUNyZWF0ZUFjY291bnRSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iYwoTQ3JlYXRlTGVkZ2VyUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCWFsZ29yaXRobRgCIAEoCRILCgNocnAYAyABKAkSDwoHYWNjb3VudBgEIAEoDRINCgVpbmRleBgFIAEoDSJNChRDcmVhdGVMZWRnZXJSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8iMAoWQWN0aXZhdGVBY2NvdW50UmVxdWVzdBIWCg5uYW1lX29yX2JlY2gzMhgBIAEoCSJmChdBY3RpdmF0ZUFjY291bnRSZXNwb25zZRI1CgNrZXkYASABKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuS2V5SW5mb1IIa2V5X2luZm8SFAoMaGFzX3Bhc3N3b3JkGAIgASgIIi0KGkdldEFjdGl2YXRlZEFjY291bnRSZXF1ZXN0Eg8KB2FkZHJlc3MYASABKAwiagobR2V0QWN0aXZhdGVkQWNjb3VudFJlc3BvbnNlEjUKA2tleRgBIAEoCzIeLmxhbmQuZ25vLmdub25hdGl2ZS52MS5LZXlJbmZvUghrZXlfaW5mbxIUCgxoYXNfcGFzc3dvcmQYAiABKAgiJgoTUXVlcnlBY2NvdW50UmVxdWVzdBIPCgdhZGRyZXNzGAEgASgMIlAKFFF1ZXJ5QWNjb3VudFJlc3BvbnNlEjgKDGFjY291bnRfaW5mbxgBIAEoCzIiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5CYXNlQWNjb3VudCJXChREZWxldGVBY2NvdW50UmVxdWVzdBIWCg5uYW1lX29yX2JlY2gzMhgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIVCg1za2lwX3Bhc3N3b3JkGAMgASgIIhcKFURlbGV0ZUFjY291bnRSZXNwb25zZSIqCgxRdWVyeVJlcXVlc3QSDAoEcGF0aBgBIAEoCRIMCgRkYXRhGAIgASgMIh8KDVF1ZXJ5UmVzcG9uc2USDgoGcmVzdWx0GAEgASgMIjMKDVJlbmRlclJlcXVlc3QSFAoMcGFja2FnZV9wYXRoGAEgASgJEgwKBGFyZ3MYAiABKAkiIAoOUmVuZGVyUmVzcG9uc2USDgoGcmVzdWx0GAEgASgJIjgKDFFFdmFsUmVxdWVzdBIUCgxwYWNrYWdlX3BhdGgYASABKAkSEgoKZXhwcmVzc2lvbhgCIAEoCSIfCg1RRXZhbFJlc3BvbnNlEg4KBnJlc3VsdBgBIAEoCSKXAQoHTXNnQ2FsbBIUCgxwYWNrYWdlX3BhdGgYASABKAkSCwoDZm5jGAIgASgJEgwKBGFyZ3MYAyADKAkSKQoEc2VuZBgEIAMoCzIbLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Db2luEjAKC21heF9kZXBvc2l0GAUgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNvaW4ijAEKC0NhbGxSZXF1ZXN0Eg8KB2dhc19mZWUYASABKAkSEgoKZ2FzX3dhbnRlZBgCIAEoEhIMCgRtZW1vGAMgASgJEhYKDmNhbGxlcl9hZGRyZXNzGAQgASgMEjIKBG1zZ3MYBSADKAsyHi5sYW5kLmduby5nbm9uYXRpdmUudjEuTXNnQ2FsbFIETXNncyI8CgxDYWxsUmVzcG9uc2USDgoGcmVzdWx0GAEgASgMEgwKBGhhc2gYAiABKAwSDgoGaGVpZ2h0GAMgASgSIkoKB01zZ1NlbmQSEgoKdG9fYWRkcmVzcxgBIAEoDBIrCgZhbW91bnQYAiADKAsyGy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ29pbiKMAQoLU2VuZFJlcXVlc3QSDwoHZ2FzX2ZlZRgBIAEoCRISCgpnYXNfd2FudGVkGAIgASgSEgwKBG1lbW8YAyABKAkSFgoOY2FsbGVyX2FkZHJlc3MYBCABKAwSMgoEbXNncxgFIAMoCzIeLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Nc2dTZW5kUgRNc2dzIiwKDFNlbmRSZXNwb25zZRIMCgRoYXNoGAEgASgMEg4KBmhlaWdodBgCIAEoEiJ2CgZNc2dSdW4SDwoHcGFja2FnZRgBIAEoCRIpCgRzZW5kGAIgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNvaW4SMAoLbWF4X2RlcG9zaXQYAyADKAsyGy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ29pbiKKAQoKUnVuUmVxdWVzdBIPCgdnYXNfZmVlGAEgASgJEhIKCmdhc193YW50ZWQYAiABKBISDAoEbWVtbxgDIAEoCRIWCg5jYWxsZXJfYWRkcmVzcxgEIAEoDBIxCgRtc2dzGAUgAygLMh0ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLk1zZ1J1blIETXNncyI7CgtSdW5SZXNwb25zZRIOCgZyZXN1bHQYASABKAkSDAoEaGFzaBgCIAEoDBIOCgZoZWlnaHQYAyABKBIiIQoOTWFrZVR4UmVzcG9uc2USDwoHdHhfanNvbhgBIAEoCSJiCg1TaWduVHhSZXF1ZXN0Eg8KB3R4X2pzb24YASABKAkSDwoHYWRkcmVzcxgCIAEoDBIWCg5hY2NvdW50X251bWJlchgDIAEoBBIXCg9zZXF1ZW5jZV9udW1iZXIYBCABKAQiMQoOU2lnblR4UmVzcG9uc2USHwoOc2lnbmVkX3R4X2pzb24YASABKAlSB3R4X2pzb24iYgoSRXN0aW1hdGVHYXNSZXF1ZXN0Eg8KB3R4X2pzb24YASABKAkSDwoHYWRkcmVzcxgCIAEoDBIXCg9zZWN1cml0eV9tYXJnaW4YAyABKA0SEQoJdXBkYXRlX3R4GAQgASgIIjoKE0VzdGltYXRlR2FzUmVzcG9uc2USDwoHdHhfanNvbhgBIAEoCRISCgpnYXNfd2FudGVkGAIgASgSIogBChVFc3RpbWF0ZUdhc0ZlZVJlcXVlc3QSDwoHdHhfanNvbhgBIAEoCRIPCgdhZGRyZXNzGAIgASgMEhsKE2dhc19zZWN1cml0eV9tYXJnaW4YAyABKA0SHQoVcHJpY2Vfc2VjdXJpdHlfbWFyZ2luGAQgASgNEhEKCXVwZGF0ZV90eBgFIAEoCCJnChZFc3RpbWF0ZUdhc0ZlZVJlc3BvbnNlEg8KB3R4X2pzb24YASABKAkSEgoKZ2FzX3dhbnRlZBgCIAEoEhIoCgNmZWUYAyABKAsyGy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ29pbiI7ChhCcm9hZGNhc3RUeENvbW1pdFJlcXVlc3QSHwoOc2lnbmVkX3R4X2pzb24YASABKAlSB3R4X2pzb24iSQoZQnJvYWRjYXN0VHhDb21taXRSZXNwb25zZRIOCgZyZXN1bHQYASABKAwSDAoEaGFzaBgCIAEoDBIOCgZoZWlnaHQYAyABKBIiKQoWQWRkcmVzc1RvQmVjaDMyUmVxdWVzdBIPCgdhZGRyZXNzGAEgASgMIjEKF0FkZHJlc3NUb0JlY2gzMlJlc3BvbnNlEhYKDmJlY2gzMl9hZGRyZXNzGAEgASgJIjIKGEFkZHJlc3NGcm9tQmVjaDMyUmVxdWVzdBIWCg5iZWNoMzJfYWRkcmVzcxgBIAEoCSIsChlBZGRyZXNzRnJvbUJlY2gzMlJlc3BvbnNlEg8KB2FkZHJlc3MYASABKAwiLgoaQWRkcmVzc0Zyb21NbmVtb25pY1JlcXVlc3QSEAoIbW5lbW9uaWMYASABKAkiLgobQWRkcmVzc0Zyb21NbmVtb25pY1Jlc3BvbnNlEg8KB2FkZHJlc3MYASABKAwiKwobVmFsaWRhdGVNbmVtb25pY1dvcmRSZXF1ZXN0EgwKBHdvcmQYASABKAkiLQocVmFsaWRhdGVNbmVtb25pY1dvcmRSZXNwb25zZRINCgV2YWxpZBgBIAEoCCIvCh1WYWxpZGF0ZU1uZW1vbmljUGhyYXNlUmVxdWVzdBIOCgZwaHJhc2UYASABKAkiLwoeVmFsaWRhdGVNbmVtb25pY1BocmFzZVJlc3BvbnNlEg0KBXZhbGlkGAEgASgIIiIKDEhlbGxvUmVxdWVzdBISCgRuYW1lGAEgASgJUgROYW1lIisKDUhlbGxvUmVzcG9uc2USGgoIZ3JlZXRpbmcYASABKAlSCEdyZWV0aW5nIigKEkhlbGxvU3RyZWFtUmVxdWVzdBISCgRuYW1lGAEgASgJUgROYW1lIjEKE0hlbGxvU3RyZWFtUmVzcG9uc2USGgoIZ3JlZXRpbmcYASABKAlSCEdyZWV0aW5nIikKGEdOT05BVElWRVRZUEVTX0J5dGVzTGlzdBINCgVWYWx1ZRgBIAMoDEIsWipnaXRodWIuY29tL2dub2xhbmcvZ25vbmF0aXZlL3Y0L2FwaS9nZW4vZ29iBnByb3RvMw"); /** * messages @@ -1413,20 +1413,6 @@ export type EstimateGasRequest = Message<"land.gno.gnonative.v1.EstimateGasReque * @generated from field: bool update_tx = 4; */ updateTx: boolean; - - /** - * The signer's account number on the blockchain. If 0 then query the blockchain for the value. - * - * @generated from field: uint64 account_number = 5; - */ - accountNumber: bigint; - - /** - * The sequence number of the signer's transactions on the blockchain. If 0 then query the blockchain for the value. - * - * @generated from field: uint64 sequence_number = 6; - */ - sequenceNumber: bigint; }; /** @@ -1462,6 +1448,90 @@ export type EstimateGasResponse = Message<"land.gno.gnonative.v1.EstimateGasResp export const EstimateGasResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_gnonativetypes, 62); +/** + * @generated from message land.gno.gnonative.v1.EstimateGasFeeRequest + */ +export type EstimateGasFeeRequest = Message<"land.gno.gnonative.v1.EstimateGasFeeRequest"> & { + /** + * The JSON encoding of the unsigned transaction (from MakeCallTx, etc.) + * + * @generated from field: string tx_json = 1; + */ + txJson: string; + + /** + * The address of the account to sign the transaction + * + * @generated from field: bytes address = 2; + */ + address: Uint8Array; + + /** + * The security margin to apply to the estimated gas amount. + * This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + * It will be multiplied by the estimated gas amount. + * + * @generated from field: uint32 gas_security_margin = 3; + */ + gasSecurityMargin: number; + + /** + * The security margin to apply to the gas price. + * This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + * It will be multiplied by the fetched gas price. + * + * @generated from field: uint32 price_security_margin = 4; + */ + priceSecurityMargin: number; + + /** + * The update boolean to update the gas wanted field in the transaction if true. + * + * @generated from field: bool update_tx = 5; + */ + updateTx: boolean; +}; + +/** + * Describes the message land.gno.gnonative.v1.EstimateGasFeeRequest. + * Use `create(EstimateGasFeeRequestSchema)` to create a new message. + */ +export const EstimateGasFeeRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_gnonativetypes, 63); + +/** + * @generated from message land.gno.gnonative.v1.EstimateGasFeeResponse + */ +export type EstimateGasFeeResponse = Message<"land.gno.gnonative.v1.EstimateGasFeeResponse"> & { + /** + * The JSON encoding of the unsigned transaction + * + * @generated from field: string tx_json = 1; + */ + txJson: string; + + /** + * The estimated gas wanted for the transaction + * + * @generated from field: sint64 gas_wanted = 2; + */ + gasWanted: bigint; + + /** + * The estimated fee for the transaction + * + * @generated from field: land.gno.gnonative.v1.Coin fee = 3; + */ + fee?: Coin; +}; + +/** + * Describes the message land.gno.gnonative.v1.EstimateGasFeeResponse. + * Use `create(EstimateGasFeeResponseSchema)` to create a new message. + */ +export const EstimateGasFeeResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_gnonativetypes, 64); + /** * @generated from message land.gno.gnonative.v1.BroadcastTxCommitRequest */ @@ -1479,7 +1549,7 @@ export type BroadcastTxCommitRequest = Message<"land.gno.gnonative.v1.BroadcastT * Use `create(BroadcastTxCommitRequestSchema)` to create a new message. */ export const BroadcastTxCommitRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 63); + messageDesc(file_gnonativetypes, 65); /** * @generated from message land.gno.gnonative.v1.BroadcastTxCommitResponse @@ -1510,7 +1580,7 @@ export type BroadcastTxCommitResponse = Message<"land.gno.gnonative.v1.Broadcast * Use `create(BroadcastTxCommitResponseSchema)` to create a new message. */ export const BroadcastTxCommitResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 64); + messageDesc(file_gnonativetypes, 66); /** * @generated from message land.gno.gnonative.v1.AddressToBech32Request @@ -1527,7 +1597,7 @@ export type AddressToBech32Request = Message<"land.gno.gnonative.v1.AddressToBec * Use `create(AddressToBech32RequestSchema)` to create a new message. */ export const AddressToBech32RequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 65); + messageDesc(file_gnonativetypes, 67); /** * @generated from message land.gno.gnonative.v1.AddressToBech32Response @@ -1544,7 +1614,7 @@ export type AddressToBech32Response = Message<"land.gno.gnonative.v1.AddressToBe * Use `create(AddressToBech32ResponseSchema)` to create a new message. */ export const AddressToBech32ResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 66); + messageDesc(file_gnonativetypes, 68); /** * @generated from message land.gno.gnonative.v1.AddressFromBech32Request @@ -1561,7 +1631,7 @@ export type AddressFromBech32Request = Message<"land.gno.gnonative.v1.AddressFro * Use `create(AddressFromBech32RequestSchema)` to create a new message. */ export const AddressFromBech32RequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 67); + messageDesc(file_gnonativetypes, 69); /** * @generated from message land.gno.gnonative.v1.AddressFromBech32Response @@ -1578,7 +1648,7 @@ export type AddressFromBech32Response = Message<"land.gno.gnonative.v1.AddressFr * Use `create(AddressFromBech32ResponseSchema)` to create a new message. */ export const AddressFromBech32ResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 68); + messageDesc(file_gnonativetypes, 70); /** * @generated from message land.gno.gnonative.v1.AddressFromMnemonicRequest @@ -1595,7 +1665,7 @@ export type AddressFromMnemonicRequest = Message<"land.gno.gnonative.v1.AddressF * Use `create(AddressFromMnemonicRequestSchema)` to create a new message. */ export const AddressFromMnemonicRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 69); + messageDesc(file_gnonativetypes, 71); /** * @generated from message land.gno.gnonative.v1.AddressFromMnemonicResponse @@ -1612,7 +1682,7 @@ export type AddressFromMnemonicResponse = Message<"land.gno.gnonative.v1.Address * Use `create(AddressFromMnemonicResponseSchema)` to create a new message. */ export const AddressFromMnemonicResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 70); + messageDesc(file_gnonativetypes, 72); /** * @generated from message land.gno.gnonative.v1.ValidateMnemonicWordRequest @@ -1629,7 +1699,7 @@ export type ValidateMnemonicWordRequest = Message<"land.gno.gnonative.v1.Validat * Use `create(ValidateMnemonicWordRequestSchema)` to create a new message. */ export const ValidateMnemonicWordRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 71); + messageDesc(file_gnonativetypes, 73); /** * @generated from message land.gno.gnonative.v1.ValidateMnemonicWordResponse @@ -1646,7 +1716,7 @@ export type ValidateMnemonicWordResponse = Message<"land.gno.gnonative.v1.Valida * Use `create(ValidateMnemonicWordResponseSchema)` to create a new message. */ export const ValidateMnemonicWordResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 72); + messageDesc(file_gnonativetypes, 74); /** * @generated from message land.gno.gnonative.v1.ValidateMnemonicPhraseRequest @@ -1663,7 +1733,7 @@ export type ValidateMnemonicPhraseRequest = Message<"land.gno.gnonative.v1.Valid * Use `create(ValidateMnemonicPhraseRequestSchema)` to create a new message. */ export const ValidateMnemonicPhraseRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 73); + messageDesc(file_gnonativetypes, 75); /** * @generated from message land.gno.gnonative.v1.ValidateMnemonicPhraseResponse @@ -1680,7 +1750,7 @@ export type ValidateMnemonicPhraseResponse = Message<"land.gno.gnonative.v1.Vali * Use `create(ValidateMnemonicPhraseResponseSchema)` to create a new message. */ export const ValidateMnemonicPhraseResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 74); + messageDesc(file_gnonativetypes, 76); /** * @generated from message land.gno.gnonative.v1.HelloRequest @@ -1697,7 +1767,7 @@ export type HelloRequest = Message<"land.gno.gnonative.v1.HelloRequest"> & { * Use `create(HelloRequestSchema)` to create a new message. */ export const HelloRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 75); + messageDesc(file_gnonativetypes, 77); /** * @generated from message land.gno.gnonative.v1.HelloResponse @@ -1714,7 +1784,7 @@ export type HelloResponse = Message<"land.gno.gnonative.v1.HelloResponse"> & { * Use `create(HelloResponseSchema)` to create a new message. */ export const HelloResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 76); + messageDesc(file_gnonativetypes, 78); /** * @generated from message land.gno.gnonative.v1.HelloStreamRequest @@ -1731,7 +1801,7 @@ export type HelloStreamRequest = Message<"land.gno.gnonative.v1.HelloStreamReque * Use `create(HelloStreamRequestSchema)` to create a new message. */ export const HelloStreamRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 77); + messageDesc(file_gnonativetypes, 79); /** * @generated from message land.gno.gnonative.v1.HelloStreamResponse @@ -1748,7 +1818,7 @@ export type HelloStreamResponse = Message<"land.gno.gnonative.v1.HelloStreamResp * Use `create(HelloStreamResponseSchema)` to create a new message. */ export const HelloStreamResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 78); + messageDesc(file_gnonativetypes, 80); /** * @generated from message land.gno.gnonative.v1.GNONATIVETYPES_BytesList @@ -1765,5 +1835,5 @@ export type GNONATIVETYPES_BytesList = Message<"land.gno.gnonative.v1.GNONATIVET * Use `create(GNONATIVETYPES_BytesListSchema)` to create a new message. */ export const GNONATIVETYPES_BytesListSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_gnonativetypes, 79); + messageDesc(file_gnonativetypes, 81); diff --git a/api/gen/es/rpc_pb.ts b/api/gen/es/rpc_pb.ts index 8f15f15..e91a29a 100644 --- a/api/gen/es/rpc_pb.ts +++ b/api/gen/es/rpc_pb.ts @@ -4,7 +4,7 @@ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2"; -import type { ActivateAccountRequestSchema, ActivateAccountResponseSchema, AddressFromBech32RequestSchema, AddressFromBech32ResponseSchema, AddressFromMnemonicRequestSchema, AddressFromMnemonicResponseSchema, AddressToBech32RequestSchema, AddressToBech32ResponseSchema, BroadcastTxCommitRequestSchema, BroadcastTxCommitResponseSchema, CallRequestSchema, CallResponseSchema, CreateAccountRequestSchema, CreateAccountResponseSchema, CreateLedgerRequestSchema, CreateLedgerResponseSchema, DeleteAccountRequestSchema, DeleteAccountResponseSchema, EstimateGasRequestSchema, EstimateGasResponseSchema, GenerateRecoveryPhraseRequestSchema, GenerateRecoveryPhraseResponseSchema, GetActivatedAccountRequestSchema, GetActivatedAccountResponseSchema, GetChainIDRequestSchema, GetChainIDResponseSchema, GetKeyInfoByAddressRequestSchema, GetKeyInfoByAddressResponseSchema, GetKeyInfoByNameOrAddressRequestSchema, GetKeyInfoByNameOrAddressResponseSchema, GetKeyInfoByNameRequestSchema, GetKeyInfoByNameResponseSchema, GetRemoteRequestSchema, GetRemoteResponseSchema, HasKeyByAddressRequestSchema, HasKeyByAddressResponseSchema, HasKeyByNameOrAddressRequestSchema, HasKeyByNameOrAddressResponseSchema, HasKeyByNameRequestSchema, HasKeyByNameResponseSchema, HelloRequestSchema, HelloResponseSchema, HelloStreamRequestSchema, HelloStreamResponseSchema, ListKeyInfoRequestSchema, ListKeyInfoResponseSchema, MakeTxResponseSchema, QEvalRequestSchema, QEvalResponseSchema, QueryAccountRequestSchema, QueryAccountResponseSchema, QueryRequestSchema, QueryResponseSchema, RenderRequestSchema, RenderResponseSchema, RotatePasswordRequestSchema, RotatePasswordResponseSchema, RunRequestSchema, RunResponseSchema, SendRequestSchema, SendResponseSchema, SetChainIDRequestSchema, SetChainIDResponseSchema, SetPasswordRequestSchema, SetPasswordResponseSchema, SetRemoteRequestSchema, SetRemoteResponseSchema, SignTxRequestSchema, SignTxResponseSchema, ValidateMnemonicPhraseRequestSchema, ValidateMnemonicPhraseResponseSchema, ValidateMnemonicWordRequestSchema, ValidateMnemonicWordResponseSchema } from "./gnonativetypes_pb"; +import type { ActivateAccountRequestSchema, ActivateAccountResponseSchema, AddressFromBech32RequestSchema, AddressFromBech32ResponseSchema, AddressFromMnemonicRequestSchema, AddressFromMnemonicResponseSchema, AddressToBech32RequestSchema, AddressToBech32ResponseSchema, BroadcastTxCommitRequestSchema, BroadcastTxCommitResponseSchema, CallRequestSchema, CallResponseSchema, CreateAccountRequestSchema, CreateAccountResponseSchema, CreateLedgerRequestSchema, CreateLedgerResponseSchema, DeleteAccountRequestSchema, DeleteAccountResponseSchema, EstimateGasFeeRequestSchema, EstimateGasFeeResponseSchema, EstimateGasRequestSchema, EstimateGasResponseSchema, GenerateRecoveryPhraseRequestSchema, GenerateRecoveryPhraseResponseSchema, GetActivatedAccountRequestSchema, GetActivatedAccountResponseSchema, GetChainIDRequestSchema, GetChainIDResponseSchema, GetKeyInfoByAddressRequestSchema, GetKeyInfoByAddressResponseSchema, GetKeyInfoByNameOrAddressRequestSchema, GetKeyInfoByNameOrAddressResponseSchema, GetKeyInfoByNameRequestSchema, GetKeyInfoByNameResponseSchema, GetRemoteRequestSchema, GetRemoteResponseSchema, HasKeyByAddressRequestSchema, HasKeyByAddressResponseSchema, HasKeyByNameOrAddressRequestSchema, HasKeyByNameOrAddressResponseSchema, HasKeyByNameRequestSchema, HasKeyByNameResponseSchema, HelloRequestSchema, HelloResponseSchema, HelloStreamRequestSchema, HelloStreamResponseSchema, ListKeyInfoRequestSchema, ListKeyInfoResponseSchema, MakeTxResponseSchema, QEvalRequestSchema, QEvalResponseSchema, QueryAccountRequestSchema, QueryAccountResponseSchema, QueryRequestSchema, QueryResponseSchema, RenderRequestSchema, RenderResponseSchema, RotatePasswordRequestSchema, RotatePasswordResponseSchema, RunRequestSchema, RunResponseSchema, SendRequestSchema, SendResponseSchema, SetChainIDRequestSchema, SetChainIDResponseSchema, SetPasswordRequestSchema, SetPasswordResponseSchema, SetRemoteRequestSchema, SetRemoteResponseSchema, SignTxRequestSchema, SignTxResponseSchema, ValidateMnemonicPhraseRequestSchema, ValidateMnemonicPhraseResponseSchema, ValidateMnemonicWordRequestSchema, ValidateMnemonicWordResponseSchema } from "./gnonativetypes_pb"; import { file_gnonativetypes } from "./gnonativetypes_pb"; import type { Message } from "@bufbuild/protobuf"; @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file rpc.proto. */ export const file_rpc: GenFile = /*@__PURE__*/ - fileDesc("CglycGMucHJvdG8SFWxhbmQuZ25vLmdub25hdGl2ZS52MSI7CgpFcnJEZXRhaWxzEi0KBWNvZGVzGAEgAygOMh4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkVyckNvZGUqtAYKB0VyckNvZGUSDQoJVW5kZWZpbmVkEAASCAoEVE9ETxABEhUKEUVyck5vdEltcGxlbWVudGVkEAISDwoLRXJySW50ZXJuYWwQAxITCg9FcnJJbnZhbGlkSW5wdXQQZBIYChRFcnJCcmlkZ2VJbnRlcnJ1cHRlZBBlEhMKD0Vyck1pc3NpbmdJbnB1dBBmEhQKEEVyclNlcmlhbGl6YXRpb24QZxIWChJFcnJEZXNlcmlhbGl6YXRpb24QaBISCg5FcnJJbml0U2VydmljZRBpEhAKDEVyclNldFJlbW90ZRBqEhwKF0VyckNyeXB0b0tleVR5cGVVbmtub3duEJYBEhkKFEVyckNyeXB0b0tleU5vdEZvdW5kEJcBEhcKEkVyck5vQWN0aXZlQWNjb3VudBCYARIVChBFcnJSdW5HUlBDU2VydmVyEJkBEhgKE0VyckRlY3J5cHRpb25GYWlsZWQQmgESEAoLRXJyVHhEZWNvZGUQyAESFwoSRXJySW52YWxpZFNlcXVlbmNlEMkBEhQKD0VyclVuYXV0aG9yaXplZBDKARIZChRFcnJJbnN1ZmZpY2llbnRGdW5kcxDLARIWChFFcnJVbmtub3duUmVxdWVzdBDMARIWChFFcnJJbnZhbGlkQWRkcmVzcxDNARIWChFFcnJVbmtub3duQWRkcmVzcxDOARIVChBFcnJJbnZhbGlkUHViS2V5EM8BEhkKFEVyckluc3VmZmljaWVudENvaW5zENABEhQKD0VyckludmFsaWRDb2lucxDRARIYChNFcnJJbnZhbGlkR2FzV2FudGVkENIBEhAKC0Vyck91dE9mR2FzENMBEhQKD0Vyck1lbW9Ub29MYXJnZRDUARIXChJFcnJJbnN1ZmZpY2llbnRGZWUQ1QESGQoURXJyVG9vTWFueVNpZ25hdHVyZXMQ1gESFAoPRXJyTm9TaWduYXR1cmVzENcBEhMKDkVyckdhc092ZXJmbG93ENgBEhYKEUVyckludmFsaWRQa2dQYXRoENkBEhMKDkVyckludmFsaWRTdG10ENoBEhMKDkVyckludmFsaWRFeHByENsBMrsgChBHbm9OYXRpdmVTZXJ2aWNlEl4KCVNldFJlbW90ZRInLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZXRSZW1vdGVSZXF1ZXN0GigubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlNldFJlbW90ZVJlc3BvbnNlEl4KCUdldFJlbW90ZRInLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRSZW1vdGVSZXF1ZXN0GigubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkdldFJlbW90ZVJlc3BvbnNlEmEKClNldENoYWluSUQSKC5sYW5kLmduby5nbm9uYXRpdmUudjEuU2V0Q2hhaW5JRFJlcXVlc3QaKS5sYW5kLmduby5nbm9uYXRpdmUudjEuU2V0Q2hhaW5JRFJlc3BvbnNlEmEKCkdldENoYWluSUQSKC5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0Q2hhaW5JRFJlcXVlc3QaKS5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0Q2hhaW5JRFJlc3BvbnNlEoUBChZHZW5lcmF0ZVJlY292ZXJ5UGhyYXNlEjQubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXF1ZXN0GjUubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXNwb25zZRJkCgtMaXN0S2V5SW5mbxIpLmxhbmQuZ25vLmdub25hdGl2ZS52MS5MaXN0S2V5SW5mb1JlcXVlc3QaKi5sYW5kLmduby5nbm9uYXRpdmUudjEuTGlzdEtleUluZm9SZXNwb25zZRJnCgxIYXNLZXlCeU5hbWUSKi5sYW5kLmduby5nbm9uYXRpdmUudjEuSGFzS2V5QnlOYW1lUmVxdWVzdBorLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IYXNLZXlCeU5hbWVSZXNwb25zZRJwCg9IYXNLZXlCeUFkZHJlc3MSLS5sYW5kLmduby5nbm9uYXRpdmUudjEuSGFzS2V5QnlBZGRyZXNzUmVxdWVzdBouLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IYXNLZXlCeUFkZHJlc3NSZXNwb25zZRKCAQoVSGFzS2V5QnlOYW1lT3JBZGRyZXNzEjMubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkhhc0tleUJ5TmFtZU9yQWRkcmVzc1JlcXVlc3QaNC5sYW5kLmduby5nbm9uYXRpdmUudjEuSGFzS2V5QnlOYW1lT3JBZGRyZXNzUmVzcG9uc2UScwoQR2V0S2V5SW5mb0J5TmFtZRIuLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlOYW1lUmVxdWVzdBovLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlOYW1lUmVzcG9uc2USfAoTR2V0S2V5SW5mb0J5QWRkcmVzcxIxLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlBZGRyZXNzUmVxdWVzdBoyLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlBZGRyZXNzUmVzcG9uc2USjgEKGUdldEtleUluZm9CeU5hbWVPckFkZHJlc3MSNy5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0S2V5SW5mb0J5TmFtZU9yQWRkcmVzc1JlcXVlc3QaOC5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0S2V5SW5mb0J5TmFtZU9yQWRkcmVzc1Jlc3BvbnNlEmoKDUNyZWF0ZUFjY291bnQSKy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ3JlYXRlQWNjb3VudFJlcXVlc3QaLC5sYW5kLmduby5nbm9uYXRpdmUudjEuQ3JlYXRlQWNjb3VudFJlc3BvbnNlEmcKDENyZWF0ZUxlZGdlchIqLmxhbmQuZ25vLmdub25hdGl2ZS52MS5DcmVhdGVMZWRnZXJSZXF1ZXN0GisubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNyZWF0ZUxlZGdlclJlc3BvbnNlEnAKD0FjdGl2YXRlQWNjb3VudBItLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BY3RpdmF0ZUFjY291bnRSZXF1ZXN0Gi4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFjdGl2YXRlQWNjb3VudFJlc3BvbnNlEmQKC1NldFBhc3N3b3JkEikubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlNldFBhc3N3b3JkUmVxdWVzdBoqLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZXRQYXNzd29yZFJlc3BvbnNlEm0KDlJvdGF0ZVBhc3N3b3JkEiwubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlJvdGF0ZVBhc3N3b3JkUmVxdWVzdBotLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Sb3RhdGVQYXNzd29yZFJlc3BvbnNlEnwKE0dldEFjdGl2YXRlZEFjY291bnQSMS5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0QWN0aXZhdGVkQWNjb3VudFJlcXVlc3QaMi5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0QWN0aXZhdGVkQWNjb3VudFJlc3BvbnNlEmcKDFF1ZXJ5QWNjb3VudBIqLmxhbmQuZ25vLmdub25hdGl2ZS52MS5RdWVyeUFjY291bnRSZXF1ZXN0GisubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlF1ZXJ5QWNjb3VudFJlc3BvbnNlEmoKDURlbGV0ZUFjY291bnQSKy5sYW5kLmduby5nbm9uYXRpdmUudjEuRGVsZXRlQWNjb3VudFJlcXVlc3QaLC5sYW5kLmduby5nbm9uYXRpdmUudjEuRGVsZXRlQWNjb3VudFJlc3BvbnNlElIKBVF1ZXJ5EiMubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlF1ZXJ5UmVxdWVzdBokLmxhbmQuZ25vLmdub25hdGl2ZS52MS5RdWVyeVJlc3BvbnNlElUKBlJlbmRlchIkLmxhbmQuZ25vLmdub25hdGl2ZS52MS5SZW5kZXJSZXF1ZXN0GiUubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlJlbmRlclJlc3BvbnNlElIKBVFFdmFsEiMubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlFFdmFsUmVxdWVzdBokLmxhbmQuZ25vLmdub25hdGl2ZS52MS5RRXZhbFJlc3BvbnNlElEKBENhbGwSIi5sYW5kLmduby5nbm9uYXRpdmUudjEuQ2FsbFJlcXVlc3QaIy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ2FsbFJlc3BvbnNlMAESUQoEU2VuZBIiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZW5kUmVxdWVzdBojLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZW5kUmVzcG9uc2UwARJOCgNSdW4SIS5sYW5kLmduby5nbm9uYXRpdmUudjEuUnVuUmVxdWVzdBoiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5SdW5SZXNwb25zZTABElcKCk1ha2VDYWxsVHgSIi5sYW5kLmduby5nbm9uYXRpdmUudjEuQ2FsbFJlcXVlc3QaJS5sYW5kLmduby5nbm9uYXRpdmUudjEuTWFrZVR4UmVzcG9uc2USVwoKTWFrZVNlbmRUeBIiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZW5kUmVxdWVzdBolLmxhbmQuZ25vLmdub25hdGl2ZS52MS5NYWtlVHhSZXNwb25zZRJVCglNYWtlUnVuVHgSIS5sYW5kLmduby5nbm9uYXRpdmUudjEuUnVuUmVxdWVzdBolLmxhbmQuZ25vLmdub25hdGl2ZS52MS5NYWtlVHhSZXNwb25zZRJkCgtFc3RpbWF0ZUdhcxIpLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Fc3RpbWF0ZUdhc1JlcXVlc3QaKi5sYW5kLmduby5nbm9uYXRpdmUudjEuRXN0aW1hdGVHYXNSZXNwb25zZRJVCgZTaWduVHgSJC5sYW5kLmduby5nbm9uYXRpdmUudjEuU2lnblR4UmVxdWVzdBolLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TaWduVHhSZXNwb25zZRJ4ChFCcm9hZGNhc3RUeENvbW1pdBIvLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Ccm9hZGNhc3RUeENvbW1pdFJlcXVlc3QaMC5sYW5kLmduby5nbm9uYXRpdmUudjEuQnJvYWRjYXN0VHhDb21taXRSZXNwb25zZTABEnAKD0FkZHJlc3NUb0JlY2gzMhItLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BZGRyZXNzVG9CZWNoMzJSZXF1ZXN0Gi4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFkZHJlc3NUb0JlY2gzMlJlc3BvbnNlEnYKEUFkZHJlc3NGcm9tQmVjaDMyEi8ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFkZHJlc3NGcm9tQmVjaDMyUmVxdWVzdBowLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BZGRyZXNzRnJvbUJlY2gzMlJlc3BvbnNlEnwKE0FkZHJlc3NGcm9tTW5lbW9uaWMSMS5sYW5kLmduby5nbm9uYXRpdmUudjEuQWRkcmVzc0Zyb21NbmVtb25pY1JlcXVlc3QaMi5sYW5kLmduby5nbm9uYXRpdmUudjEuQWRkcmVzc0Zyb21NbmVtb25pY1Jlc3BvbnNlEn8KFFZhbGlkYXRlTW5lbW9uaWNXb3JkEjIubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlZhbGlkYXRlTW5lbW9uaWNXb3JkUmVxdWVzdBozLmxhbmQuZ25vLmdub25hdGl2ZS52MS5WYWxpZGF0ZU1uZW1vbmljV29yZFJlc3BvbnNlEoUBChZWYWxpZGF0ZU1uZW1vbmljUGhyYXNlEjQubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlZhbGlkYXRlTW5lbW9uaWNQaHJhc2VSZXF1ZXN0GjUubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlZhbGlkYXRlTW5lbW9uaWNQaHJhc2VSZXNwb25zZRJSCgVIZWxsbxIjLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IZWxsb1JlcXVlc3QaJC5sYW5kLmduby5nbm9uYXRpdmUudjEuSGVsbG9SZXNwb25zZRJmCgtIZWxsb1N0cmVhbRIpLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IZWxsb1N0cmVhbVJlcXVlc3QaKi5sYW5kLmduby5nbm9uYXRpdmUudjEuSGVsbG9TdHJlYW1SZXNwb25zZTABQjJaKmdpdGh1Yi5jb20vZ25vbGFuZy9nbm9uYXRpdmUvdjQvYXBpL2dlbi9nb6ICA1JUR2IGcHJvdG8z", [file_gnonativetypes]); + fileDesc("CglycGMucHJvdG8SFWxhbmQuZ25vLmdub25hdGl2ZS52MSI7CgpFcnJEZXRhaWxzEi0KBWNvZGVzGAEgAygOMh4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkVyckNvZGUqtAYKB0VyckNvZGUSDQoJVW5kZWZpbmVkEAASCAoEVE9ETxABEhUKEUVyck5vdEltcGxlbWVudGVkEAISDwoLRXJySW50ZXJuYWwQAxITCg9FcnJJbnZhbGlkSW5wdXQQZBIYChRFcnJCcmlkZ2VJbnRlcnJ1cHRlZBBlEhMKD0Vyck1pc3NpbmdJbnB1dBBmEhQKEEVyclNlcmlhbGl6YXRpb24QZxIWChJFcnJEZXNlcmlhbGl6YXRpb24QaBISCg5FcnJJbml0U2VydmljZRBpEhAKDEVyclNldFJlbW90ZRBqEhwKF0VyckNyeXB0b0tleVR5cGVVbmtub3duEJYBEhkKFEVyckNyeXB0b0tleU5vdEZvdW5kEJcBEhcKEkVyck5vQWN0aXZlQWNjb3VudBCYARIVChBFcnJSdW5HUlBDU2VydmVyEJkBEhgKE0VyckRlY3J5cHRpb25GYWlsZWQQmgESEAoLRXJyVHhEZWNvZGUQyAESFwoSRXJySW52YWxpZFNlcXVlbmNlEMkBEhQKD0VyclVuYXV0aG9yaXplZBDKARIZChRFcnJJbnN1ZmZpY2llbnRGdW5kcxDLARIWChFFcnJVbmtub3duUmVxdWVzdBDMARIWChFFcnJJbnZhbGlkQWRkcmVzcxDNARIWChFFcnJVbmtub3duQWRkcmVzcxDOARIVChBFcnJJbnZhbGlkUHViS2V5EM8BEhkKFEVyckluc3VmZmljaWVudENvaW5zENABEhQKD0VyckludmFsaWRDb2lucxDRARIYChNFcnJJbnZhbGlkR2FzV2FudGVkENIBEhAKC0Vyck91dE9mR2FzENMBEhQKD0Vyck1lbW9Ub29MYXJnZRDUARIXChJFcnJJbnN1ZmZpY2llbnRGZWUQ1QESGQoURXJyVG9vTWFueVNpZ25hdHVyZXMQ1gESFAoPRXJyTm9TaWduYXR1cmVzENcBEhMKDkVyckdhc092ZXJmbG93ENgBEhYKEUVyckludmFsaWRQa2dQYXRoENkBEhMKDkVyckludmFsaWRTdG10ENoBEhMKDkVyckludmFsaWRFeHByENsBMqohChBHbm9OYXRpdmVTZXJ2aWNlEl4KCVNldFJlbW90ZRInLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZXRSZW1vdGVSZXF1ZXN0GigubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlNldFJlbW90ZVJlc3BvbnNlEl4KCUdldFJlbW90ZRInLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRSZW1vdGVSZXF1ZXN0GigubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkdldFJlbW90ZVJlc3BvbnNlEmEKClNldENoYWluSUQSKC5sYW5kLmduby5nbm9uYXRpdmUudjEuU2V0Q2hhaW5JRFJlcXVlc3QaKS5sYW5kLmduby5nbm9uYXRpdmUudjEuU2V0Q2hhaW5JRFJlc3BvbnNlEmEKCkdldENoYWluSUQSKC5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0Q2hhaW5JRFJlcXVlc3QaKS5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0Q2hhaW5JRFJlc3BvbnNlEoUBChZHZW5lcmF0ZVJlY292ZXJ5UGhyYXNlEjQubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXF1ZXN0GjUubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkdlbmVyYXRlUmVjb3ZlcnlQaHJhc2VSZXNwb25zZRJkCgtMaXN0S2V5SW5mbxIpLmxhbmQuZ25vLmdub25hdGl2ZS52MS5MaXN0S2V5SW5mb1JlcXVlc3QaKi5sYW5kLmduby5nbm9uYXRpdmUudjEuTGlzdEtleUluZm9SZXNwb25zZRJnCgxIYXNLZXlCeU5hbWUSKi5sYW5kLmduby5nbm9uYXRpdmUudjEuSGFzS2V5QnlOYW1lUmVxdWVzdBorLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IYXNLZXlCeU5hbWVSZXNwb25zZRJwCg9IYXNLZXlCeUFkZHJlc3MSLS5sYW5kLmduby5nbm9uYXRpdmUudjEuSGFzS2V5QnlBZGRyZXNzUmVxdWVzdBouLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IYXNLZXlCeUFkZHJlc3NSZXNwb25zZRKCAQoVSGFzS2V5QnlOYW1lT3JBZGRyZXNzEjMubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkhhc0tleUJ5TmFtZU9yQWRkcmVzc1JlcXVlc3QaNC5sYW5kLmduby5nbm9uYXRpdmUudjEuSGFzS2V5QnlOYW1lT3JBZGRyZXNzUmVzcG9uc2UScwoQR2V0S2V5SW5mb0J5TmFtZRIuLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlOYW1lUmVxdWVzdBovLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlOYW1lUmVzcG9uc2USfAoTR2V0S2V5SW5mb0J5QWRkcmVzcxIxLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlBZGRyZXNzUmVxdWVzdBoyLmxhbmQuZ25vLmdub25hdGl2ZS52MS5HZXRLZXlJbmZvQnlBZGRyZXNzUmVzcG9uc2USjgEKGUdldEtleUluZm9CeU5hbWVPckFkZHJlc3MSNy5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0S2V5SW5mb0J5TmFtZU9yQWRkcmVzc1JlcXVlc3QaOC5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0S2V5SW5mb0J5TmFtZU9yQWRkcmVzc1Jlc3BvbnNlEmoKDUNyZWF0ZUFjY291bnQSKy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ3JlYXRlQWNjb3VudFJlcXVlc3QaLC5sYW5kLmduby5nbm9uYXRpdmUudjEuQ3JlYXRlQWNjb3VudFJlc3BvbnNlEmcKDENyZWF0ZUxlZGdlchIqLmxhbmQuZ25vLmdub25hdGl2ZS52MS5DcmVhdGVMZWRnZXJSZXF1ZXN0GisubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkNyZWF0ZUxlZGdlclJlc3BvbnNlEnAKD0FjdGl2YXRlQWNjb3VudBItLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BY3RpdmF0ZUFjY291bnRSZXF1ZXN0Gi4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFjdGl2YXRlQWNjb3VudFJlc3BvbnNlEmQKC1NldFBhc3N3b3JkEikubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlNldFBhc3N3b3JkUmVxdWVzdBoqLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZXRQYXNzd29yZFJlc3BvbnNlEm0KDlJvdGF0ZVBhc3N3b3JkEiwubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlJvdGF0ZVBhc3N3b3JkUmVxdWVzdBotLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Sb3RhdGVQYXNzd29yZFJlc3BvbnNlEnwKE0dldEFjdGl2YXRlZEFjY291bnQSMS5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0QWN0aXZhdGVkQWNjb3VudFJlcXVlc3QaMi5sYW5kLmduby5nbm9uYXRpdmUudjEuR2V0QWN0aXZhdGVkQWNjb3VudFJlc3BvbnNlEmcKDFF1ZXJ5QWNjb3VudBIqLmxhbmQuZ25vLmdub25hdGl2ZS52MS5RdWVyeUFjY291bnRSZXF1ZXN0GisubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlF1ZXJ5QWNjb3VudFJlc3BvbnNlEmoKDURlbGV0ZUFjY291bnQSKy5sYW5kLmduby5nbm9uYXRpdmUudjEuRGVsZXRlQWNjb3VudFJlcXVlc3QaLC5sYW5kLmduby5nbm9uYXRpdmUudjEuRGVsZXRlQWNjb3VudFJlc3BvbnNlElIKBVF1ZXJ5EiMubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlF1ZXJ5UmVxdWVzdBokLmxhbmQuZ25vLmdub25hdGl2ZS52MS5RdWVyeVJlc3BvbnNlElUKBlJlbmRlchIkLmxhbmQuZ25vLmdub25hdGl2ZS52MS5SZW5kZXJSZXF1ZXN0GiUubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlJlbmRlclJlc3BvbnNlElIKBVFFdmFsEiMubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlFFdmFsUmVxdWVzdBokLmxhbmQuZ25vLmdub25hdGl2ZS52MS5RRXZhbFJlc3BvbnNlElEKBENhbGwSIi5sYW5kLmduby5nbm9uYXRpdmUudjEuQ2FsbFJlcXVlc3QaIy5sYW5kLmduby5nbm9uYXRpdmUudjEuQ2FsbFJlc3BvbnNlMAESUQoEU2VuZBIiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZW5kUmVxdWVzdBojLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZW5kUmVzcG9uc2UwARJOCgNSdW4SIS5sYW5kLmduby5nbm9uYXRpdmUudjEuUnVuUmVxdWVzdBoiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5SdW5SZXNwb25zZTABElcKCk1ha2VDYWxsVHgSIi5sYW5kLmduby5nbm9uYXRpdmUudjEuQ2FsbFJlcXVlc3QaJS5sYW5kLmduby5nbm9uYXRpdmUudjEuTWFrZVR4UmVzcG9uc2USVwoKTWFrZVNlbmRUeBIiLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TZW5kUmVxdWVzdBolLmxhbmQuZ25vLmdub25hdGl2ZS52MS5NYWtlVHhSZXNwb25zZRJVCglNYWtlUnVuVHgSIS5sYW5kLmduby5nbm9uYXRpdmUudjEuUnVuUmVxdWVzdBolLmxhbmQuZ25vLmdub25hdGl2ZS52MS5NYWtlVHhSZXNwb25zZRJkCgtFc3RpbWF0ZUdhcxIpLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Fc3RpbWF0ZUdhc1JlcXVlc3QaKi5sYW5kLmduby5nbm9uYXRpdmUudjEuRXN0aW1hdGVHYXNSZXNwb25zZRJtCg5Fc3RpbWF0ZUdhc0ZlZRIsLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Fc3RpbWF0ZUdhc0ZlZVJlcXVlc3QaLS5sYW5kLmduby5nbm9uYXRpdmUudjEuRXN0aW1hdGVHYXNGZWVSZXNwb25zZRJVCgZTaWduVHgSJC5sYW5kLmduby5nbm9uYXRpdmUudjEuU2lnblR4UmVxdWVzdBolLmxhbmQuZ25vLmdub25hdGl2ZS52MS5TaWduVHhSZXNwb25zZRJ4ChFCcm9hZGNhc3RUeENvbW1pdBIvLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Ccm9hZGNhc3RUeENvbW1pdFJlcXVlc3QaMC5sYW5kLmduby5nbm9uYXRpdmUudjEuQnJvYWRjYXN0VHhDb21taXRSZXNwb25zZTABEnAKD0FkZHJlc3NUb0JlY2gzMhItLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BZGRyZXNzVG9CZWNoMzJSZXF1ZXN0Gi4ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFkZHJlc3NUb0JlY2gzMlJlc3BvbnNlEnYKEUFkZHJlc3NGcm9tQmVjaDMyEi8ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFkZHJlc3NGcm9tQmVjaDMyUmVxdWVzdBowLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BZGRyZXNzRnJvbUJlY2gzMlJlc3BvbnNlEnwKE0FkZHJlc3NGcm9tTW5lbW9uaWMSMS5sYW5kLmduby5nbm9uYXRpdmUudjEuQWRkcmVzc0Zyb21NbmVtb25pY1JlcXVlc3QaMi5sYW5kLmduby5nbm9uYXRpdmUudjEuQWRkcmVzc0Zyb21NbmVtb25pY1Jlc3BvbnNlEn8KFFZhbGlkYXRlTW5lbW9uaWNXb3JkEjIubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlZhbGlkYXRlTW5lbW9uaWNXb3JkUmVxdWVzdBozLmxhbmQuZ25vLmdub25hdGl2ZS52MS5WYWxpZGF0ZU1uZW1vbmljV29yZFJlc3BvbnNlEoUBChZWYWxpZGF0ZU1uZW1vbmljUGhyYXNlEjQubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlZhbGlkYXRlTW5lbW9uaWNQaHJhc2VSZXF1ZXN0GjUubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlZhbGlkYXRlTW5lbW9uaWNQaHJhc2VSZXNwb25zZRJSCgVIZWxsbxIjLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IZWxsb1JlcXVlc3QaJC5sYW5kLmduby5nbm9uYXRpdmUudjEuSGVsbG9SZXNwb25zZRJmCgtIZWxsb1N0cmVhbRIpLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IZWxsb1N0cmVhbVJlcXVlc3QaKi5sYW5kLmduby5nbm9uYXRpdmUudjEuSGVsbG9TdHJlYW1SZXNwb25zZTABQjJaKmdpdGh1Yi5jb20vZ25vbGFuZy9nbm9uYXRpdmUvdjQvYXBpL2dlbi9nb6ICA1JUR2IGcHJvdG8z", [file_gnonativetypes]); /** * @generated from message land.gno.gnonative.v1.ErrDetails @@ -629,6 +629,7 @@ export const GnoNativeService: GenService<{ /** * EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. * If UpdateTx is true, then update the transaction with the gasWanted amount. + * This uses the remote node determined by SetRemote. * * @generated from rpc land.gno.gnonative.v1.GnoNativeService.EstimateGas */ @@ -637,6 +638,19 @@ export const GnoNativeService: GenService<{ input: typeof EstimateGasRequestSchema; output: typeof EstimateGasResponseSchema; }, + /** + * EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + * If UpdateTx is true, then update the transaction with the gasWanted amount. + * This uses the remote node determined by SetRemote. + * This is similar to EstimateGas but also fetches the gas price from the remote node. + * + * @generated from rpc land.gno.gnonative.v1.GnoNativeService.EstimateGasFee + */ + estimateGasFee: { + methodKind: "unary"; + input: typeof EstimateGasFeeRequestSchema; + output: typeof EstimateGasFeeResponseSchema; + }, /** * Sign the transaction using the account with the given address. * If there is no activated account with the given address, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrNoActiveAccount. diff --git a/api/gen/go/_goconnect/rpc.connect.go b/api/gen/go/_goconnect/rpc.connect.go index 6806dab..236c423 100644 --- a/api/gen/go/_goconnect/rpc.connect.go +++ b/api/gen/go/_goconnect/rpc.connect.go @@ -117,6 +117,9 @@ const ( // GnoNativeServiceEstimateGasProcedure is the fully-qualified name of the GnoNativeService's // EstimateGas RPC. GnoNativeServiceEstimateGasProcedure = "/land.gno.gnonative.v1.GnoNativeService/EstimateGas" + // GnoNativeServiceEstimateGasFeeProcedure is the fully-qualified name of the GnoNativeService's + // EstimateGasFee RPC. + GnoNativeServiceEstimateGasFeeProcedure = "/land.gno.gnonative.v1.GnoNativeService/EstimateGasFee" // GnoNativeServiceSignTxProcedure is the fully-qualified name of the GnoNativeService's SignTx RPC. GnoNativeServiceSignTxProcedure = "/land.gno.gnonative.v1.GnoNativeService/SignTx" // GnoNativeServiceBroadcastTxCommitProcedure is the fully-qualified name of the GnoNativeService's @@ -262,7 +265,13 @@ type GnoNativeServiceClient interface { MakeRunTx(context.Context, *connect.Request[_go.RunRequest]) (*connect.Response[_go.MakeTxResponse], error) // EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. // If UpdateTx is true, then update the transaction with the gasWanted amount. + // This uses the remote node determined by SetRemote. EstimateGas(context.Context, *connect.Request[_go.EstimateGasRequest]) (*connect.Response[_go.EstimateGasResponse], error) + // EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + // If UpdateTx is true, then update the transaction with the gasWanted amount. + // This uses the remote node determined by SetRemote. + // This is similar to EstimateGas but also fetches the gas price from the remote node. + EstimateGasFee(context.Context, *connect.Request[_go.EstimateGasFeeRequest]) (*connect.Response[_go.EstimateGasFeeResponse], error) // Sign the transaction using the account with the given address. // If there is no activated account with the given address, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrNoActiveAccount. // If the password is wrong, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrDecryptionFailed. @@ -478,6 +487,12 @@ func NewGnoNativeServiceClient(httpClient connect.HTTPClient, baseURL string, op connect.WithSchema(gnoNativeServiceMethods.ByName("EstimateGas")), connect.WithClientOptions(opts...), ), + estimateGasFee: connect.NewClient[_go.EstimateGasFeeRequest, _go.EstimateGasFeeResponse]( + httpClient, + baseURL+GnoNativeServiceEstimateGasFeeProcedure, + connect.WithSchema(gnoNativeServiceMethods.ByName("EstimateGasFee")), + connect.WithClientOptions(opts...), + ), signTx: connect.NewClient[_go.SignTxRequest, _go.SignTxResponse]( httpClient, baseURL+GnoNativeServiceSignTxProcedure, @@ -567,6 +582,7 @@ type gnoNativeServiceClient struct { makeSendTx *connect.Client[_go.SendRequest, _go.MakeTxResponse] makeRunTx *connect.Client[_go.RunRequest, _go.MakeTxResponse] estimateGas *connect.Client[_go.EstimateGasRequest, _go.EstimateGasResponse] + estimateGasFee *connect.Client[_go.EstimateGasFeeRequest, _go.EstimateGasFeeResponse] signTx *connect.Client[_go.SignTxRequest, _go.SignTxResponse] broadcastTxCommit *connect.Client[_go.BroadcastTxCommitRequest, _go.BroadcastTxCommitResponse] addressToBech32 *connect.Client[_go.AddressToBech32Request, _go.AddressToBech32Response] @@ -728,6 +744,11 @@ func (c *gnoNativeServiceClient) EstimateGas(ctx context.Context, req *connect.R return c.estimateGas.CallUnary(ctx, req) } +// EstimateGasFee calls land.gno.gnonative.v1.GnoNativeService.EstimateGasFee. +func (c *gnoNativeServiceClient) EstimateGasFee(ctx context.Context, req *connect.Request[_go.EstimateGasFeeRequest]) (*connect.Response[_go.EstimateGasFeeResponse], error) { + return c.estimateGasFee.CallUnary(ctx, req) +} + // SignTx calls land.gno.gnonative.v1.GnoNativeService.SignTx. func (c *gnoNativeServiceClient) SignTx(ctx context.Context, req *connect.Request[_go.SignTxRequest]) (*connect.Response[_go.SignTxResponse], error) { return c.signTx.CallUnary(ctx, req) @@ -892,7 +913,13 @@ type GnoNativeServiceHandler interface { MakeRunTx(context.Context, *connect.Request[_go.RunRequest]) (*connect.Response[_go.MakeTxResponse], error) // EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. // If UpdateTx is true, then update the transaction with the gasWanted amount. + // This uses the remote node determined by SetRemote. EstimateGas(context.Context, *connect.Request[_go.EstimateGasRequest]) (*connect.Response[_go.EstimateGasResponse], error) + // EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + // If UpdateTx is true, then update the transaction with the gasWanted amount. + // This uses the remote node determined by SetRemote. + // This is similar to EstimateGas but also fetches the gas price from the remote node. + EstimateGasFee(context.Context, *connect.Request[_go.EstimateGasFeeRequest]) (*connect.Response[_go.EstimateGasFeeResponse], error) // Sign the transaction using the account with the given address. // If there is no activated account with the given address, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrNoActiveAccount. // If the password is wrong, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrDecryptionFailed. @@ -1104,6 +1131,12 @@ func NewGnoNativeServiceHandler(svc GnoNativeServiceHandler, opts ...connect.Han connect.WithSchema(gnoNativeServiceMethods.ByName("EstimateGas")), connect.WithHandlerOptions(opts...), ) + gnoNativeServiceEstimateGasFeeHandler := connect.NewUnaryHandler( + GnoNativeServiceEstimateGasFeeProcedure, + svc.EstimateGasFee, + connect.WithSchema(gnoNativeServiceMethods.ByName("EstimateGasFee")), + connect.WithHandlerOptions(opts...), + ) gnoNativeServiceSignTxHandler := connect.NewUnaryHandler( GnoNativeServiceSignTxProcedure, svc.SignTx, @@ -1220,6 +1253,8 @@ func NewGnoNativeServiceHandler(svc GnoNativeServiceHandler, opts ...connect.Han gnoNativeServiceMakeRunTxHandler.ServeHTTP(w, r) case GnoNativeServiceEstimateGasProcedure: gnoNativeServiceEstimateGasHandler.ServeHTTP(w, r) + case GnoNativeServiceEstimateGasFeeProcedure: + gnoNativeServiceEstimateGasFeeHandler.ServeHTTP(w, r) case GnoNativeServiceSignTxProcedure: gnoNativeServiceSignTxHandler.ServeHTTP(w, r) case GnoNativeServiceBroadcastTxCommitProcedure: @@ -1367,6 +1402,10 @@ func (UnimplementedGnoNativeServiceHandler) EstimateGas(context.Context, *connec return nil, connect.NewError(connect.CodeUnimplemented, errors.New("land.gno.gnonative.v1.GnoNativeService.EstimateGas is not implemented")) } +func (UnimplementedGnoNativeServiceHandler) EstimateGasFee(context.Context, *connect.Request[_go.EstimateGasFeeRequest]) (*connect.Response[_go.EstimateGasFeeResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("land.gno.gnonative.v1.GnoNativeService.EstimateGasFee is not implemented")) +} + func (UnimplementedGnoNativeServiceHandler) SignTx(context.Context, *connect.Request[_go.SignTxRequest]) (*connect.Response[_go.SignTxResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("land.gno.gnonative.v1.GnoNativeService.SignTx is not implemented")) } diff --git a/api/gen/go/gnonativetypes.pb.go b/api/gen/go/gnonativetypes.pb.go index e4da8a0..5450dfa 100644 --- a/api/gen/go/gnonativetypes.pb.go +++ b/api/gen/go/gnonativetypes.pb.go @@ -3121,13 +3121,9 @@ type EstimateGasRequest struct { // It will be multiplied by the estimated gas amount. SecurityMargin uint32 `protobuf:"varint,3,opt,name=security_margin,json=securityMargin,proto3" json:"security_margin,omitempty"` // The update boolean to update the gas wanted field in the transaction if true. - UpdateTx bool `protobuf:"varint,4,opt,name=update_tx,json=updateTx,proto3" json:"update_tx,omitempty"` - // The signer's account number on the blockchain. If 0 then query the blockchain for the value. - AccountNumber uint64 `protobuf:"varint,5,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` - // The sequence number of the signer's transactions on the blockchain. If 0 then query the blockchain for the value. - SequenceNumber uint64 `protobuf:"varint,6,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + UpdateTx bool `protobuf:"varint,4,opt,name=update_tx,json=updateTx,proto3" json:"update_tx,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EstimateGasRequest) Reset() { @@ -3188,20 +3184,6 @@ func (x *EstimateGasRequest) GetUpdateTx() bool { return false } -func (x *EstimateGasRequest) GetAccountNumber() uint64 { - if x != nil { - return x.AccountNumber - } - return 0 -} - -func (x *EstimateGasRequest) GetSequenceNumber() uint64 { - if x != nil { - return x.SequenceNumber - } - return 0 -} - type EstimateGasResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // The JSON encoding of the unsigned transaction @@ -3256,6 +3238,154 @@ func (x *EstimateGasResponse) GetGasWanted() int64 { return 0 } +type EstimateGasFeeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The JSON encoding of the unsigned transaction (from MakeCallTx, etc.) + TxJson string `protobuf:"bytes,1,opt,name=tx_json,json=txJson,proto3" json:"tx_json,omitempty"` + // The address of the account to sign the transaction + Address []byte `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // The security margin to apply to the estimated gas amount. + // This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + // It will be multiplied by the estimated gas amount. + GasSecurityMargin uint32 `protobuf:"varint,3,opt,name=gas_security_margin,json=gasSecurityMargin,proto3" json:"gas_security_margin,omitempty"` + // The security margin to apply to the gas price. + // This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + // It will be multiplied by the fetched gas price. + PriceSecurityMargin uint32 `protobuf:"varint,4,opt,name=price_security_margin,json=priceSecurityMargin,proto3" json:"price_security_margin,omitempty"` + // The update boolean to update the gas wanted field in the transaction if true. + UpdateTx bool `protobuf:"varint,5,opt,name=update_tx,json=updateTx,proto3" json:"update_tx,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EstimateGasFeeRequest) Reset() { + *x = EstimateGasFeeRequest{} + mi := &file_gnonativetypes_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EstimateGasFeeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateGasFeeRequest) ProtoMessage() {} + +func (x *EstimateGasFeeRequest) ProtoReflect() protoreflect.Message { + mi := &file_gnonativetypes_proto_msgTypes[63] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateGasFeeRequest.ProtoReflect.Descriptor instead. +func (*EstimateGasFeeRequest) Descriptor() ([]byte, []int) { + return file_gnonativetypes_proto_rawDescGZIP(), []int{63} +} + +func (x *EstimateGasFeeRequest) GetTxJson() string { + if x != nil { + return x.TxJson + } + return "" +} + +func (x *EstimateGasFeeRequest) GetAddress() []byte { + if x != nil { + return x.Address + } + return nil +} + +func (x *EstimateGasFeeRequest) GetGasSecurityMargin() uint32 { + if x != nil { + return x.GasSecurityMargin + } + return 0 +} + +func (x *EstimateGasFeeRequest) GetPriceSecurityMargin() uint32 { + if x != nil { + return x.PriceSecurityMargin + } + return 0 +} + +func (x *EstimateGasFeeRequest) GetUpdateTx() bool { + if x != nil { + return x.UpdateTx + } + return false +} + +type EstimateGasFeeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The JSON encoding of the unsigned transaction + TxJson string `protobuf:"bytes,1,opt,name=tx_json,json=txJson,proto3" json:"tx_json,omitempty"` + // The estimated gas wanted for the transaction + GasWanted int64 `protobuf:"zigzag64,2,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + // The estimated fee for the transaction + Fee *Coin `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EstimateGasFeeResponse) Reset() { + *x = EstimateGasFeeResponse{} + mi := &file_gnonativetypes_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EstimateGasFeeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateGasFeeResponse) ProtoMessage() {} + +func (x *EstimateGasFeeResponse) ProtoReflect() protoreflect.Message { + mi := &file_gnonativetypes_proto_msgTypes[64] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateGasFeeResponse.ProtoReflect.Descriptor instead. +func (*EstimateGasFeeResponse) Descriptor() ([]byte, []int) { + return file_gnonativetypes_proto_rawDescGZIP(), []int{64} +} + +func (x *EstimateGasFeeResponse) GetTxJson() string { + if x != nil { + return x.TxJson + } + return "" +} + +func (x *EstimateGasFeeResponse) GetGasWanted() int64 { + if x != nil { + return x.GasWanted + } + return 0 +} + +func (x *EstimateGasFeeResponse) GetFee() *Coin { + if x != nil { + return x.Fee + } + return nil +} + type BroadcastTxCommitRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // The JSON encoding of the signed transaction (from SignTx) @@ -3266,7 +3396,7 @@ type BroadcastTxCommitRequest struct { func (x *BroadcastTxCommitRequest) Reset() { *x = BroadcastTxCommitRequest{} - mi := &file_gnonativetypes_proto_msgTypes[63] + mi := &file_gnonativetypes_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3278,7 +3408,7 @@ func (x *BroadcastTxCommitRequest) String() string { func (*BroadcastTxCommitRequest) ProtoMessage() {} func (x *BroadcastTxCommitRequest) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[63] + mi := &file_gnonativetypes_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3291,7 +3421,7 @@ func (x *BroadcastTxCommitRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxCommitRequest.ProtoReflect.Descriptor instead. func (*BroadcastTxCommitRequest) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{63} + return file_gnonativetypes_proto_rawDescGZIP(), []int{65} } func (x *BroadcastTxCommitRequest) GetSignedTxJson() string { @@ -3314,7 +3444,7 @@ type BroadcastTxCommitResponse struct { func (x *BroadcastTxCommitResponse) Reset() { *x = BroadcastTxCommitResponse{} - mi := &file_gnonativetypes_proto_msgTypes[64] + mi := &file_gnonativetypes_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3326,7 +3456,7 @@ func (x *BroadcastTxCommitResponse) String() string { func (*BroadcastTxCommitResponse) ProtoMessage() {} func (x *BroadcastTxCommitResponse) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[64] + mi := &file_gnonativetypes_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3339,7 +3469,7 @@ func (x *BroadcastTxCommitResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxCommitResponse.ProtoReflect.Descriptor instead. func (*BroadcastTxCommitResponse) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{64} + return file_gnonativetypes_proto_rawDescGZIP(), []int{66} } func (x *BroadcastTxCommitResponse) GetResult() []byte { @@ -3372,7 +3502,7 @@ type AddressToBech32Request struct { func (x *AddressToBech32Request) Reset() { *x = AddressToBech32Request{} - mi := &file_gnonativetypes_proto_msgTypes[65] + mi := &file_gnonativetypes_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3384,7 +3514,7 @@ func (x *AddressToBech32Request) String() string { func (*AddressToBech32Request) ProtoMessage() {} func (x *AddressToBech32Request) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[65] + mi := &file_gnonativetypes_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3397,7 +3527,7 @@ func (x *AddressToBech32Request) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressToBech32Request.ProtoReflect.Descriptor instead. func (*AddressToBech32Request) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{65} + return file_gnonativetypes_proto_rawDescGZIP(), []int{67} } func (x *AddressToBech32Request) GetAddress() []byte { @@ -3416,7 +3546,7 @@ type AddressToBech32Response struct { func (x *AddressToBech32Response) Reset() { *x = AddressToBech32Response{} - mi := &file_gnonativetypes_proto_msgTypes[66] + mi := &file_gnonativetypes_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3428,7 +3558,7 @@ func (x *AddressToBech32Response) String() string { func (*AddressToBech32Response) ProtoMessage() {} func (x *AddressToBech32Response) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[66] + mi := &file_gnonativetypes_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3441,7 +3571,7 @@ func (x *AddressToBech32Response) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressToBech32Response.ProtoReflect.Descriptor instead. func (*AddressToBech32Response) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{66} + return file_gnonativetypes_proto_rawDescGZIP(), []int{68} } func (x *AddressToBech32Response) GetBech32Address() string { @@ -3460,7 +3590,7 @@ type AddressFromBech32Request struct { func (x *AddressFromBech32Request) Reset() { *x = AddressFromBech32Request{} - mi := &file_gnonativetypes_proto_msgTypes[67] + mi := &file_gnonativetypes_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3472,7 +3602,7 @@ func (x *AddressFromBech32Request) String() string { func (*AddressFromBech32Request) ProtoMessage() {} func (x *AddressFromBech32Request) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[67] + mi := &file_gnonativetypes_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3485,7 +3615,7 @@ func (x *AddressFromBech32Request) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressFromBech32Request.ProtoReflect.Descriptor instead. func (*AddressFromBech32Request) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{67} + return file_gnonativetypes_proto_rawDescGZIP(), []int{69} } func (x *AddressFromBech32Request) GetBech32Address() string { @@ -3504,7 +3634,7 @@ type AddressFromBech32Response struct { func (x *AddressFromBech32Response) Reset() { *x = AddressFromBech32Response{} - mi := &file_gnonativetypes_proto_msgTypes[68] + mi := &file_gnonativetypes_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3516,7 +3646,7 @@ func (x *AddressFromBech32Response) String() string { func (*AddressFromBech32Response) ProtoMessage() {} func (x *AddressFromBech32Response) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[68] + mi := &file_gnonativetypes_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3529,7 +3659,7 @@ func (x *AddressFromBech32Response) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressFromBech32Response.ProtoReflect.Descriptor instead. func (*AddressFromBech32Response) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{68} + return file_gnonativetypes_proto_rawDescGZIP(), []int{70} } func (x *AddressFromBech32Response) GetAddress() []byte { @@ -3548,7 +3678,7 @@ type AddressFromMnemonicRequest struct { func (x *AddressFromMnemonicRequest) Reset() { *x = AddressFromMnemonicRequest{} - mi := &file_gnonativetypes_proto_msgTypes[69] + mi := &file_gnonativetypes_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3560,7 +3690,7 @@ func (x *AddressFromMnemonicRequest) String() string { func (*AddressFromMnemonicRequest) ProtoMessage() {} func (x *AddressFromMnemonicRequest) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[69] + mi := &file_gnonativetypes_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3573,7 +3703,7 @@ func (x *AddressFromMnemonicRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressFromMnemonicRequest.ProtoReflect.Descriptor instead. func (*AddressFromMnemonicRequest) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{69} + return file_gnonativetypes_proto_rawDescGZIP(), []int{71} } func (x *AddressFromMnemonicRequest) GetMnemonic() string { @@ -3592,7 +3722,7 @@ type AddressFromMnemonicResponse struct { func (x *AddressFromMnemonicResponse) Reset() { *x = AddressFromMnemonicResponse{} - mi := &file_gnonativetypes_proto_msgTypes[70] + mi := &file_gnonativetypes_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3604,7 +3734,7 @@ func (x *AddressFromMnemonicResponse) String() string { func (*AddressFromMnemonicResponse) ProtoMessage() {} func (x *AddressFromMnemonicResponse) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[70] + mi := &file_gnonativetypes_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3617,7 +3747,7 @@ func (x *AddressFromMnemonicResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressFromMnemonicResponse.ProtoReflect.Descriptor instead. func (*AddressFromMnemonicResponse) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{70} + return file_gnonativetypes_proto_rawDescGZIP(), []int{72} } func (x *AddressFromMnemonicResponse) GetAddress() []byte { @@ -3636,7 +3766,7 @@ type ValidateMnemonicWordRequest struct { func (x *ValidateMnemonicWordRequest) Reset() { *x = ValidateMnemonicWordRequest{} - mi := &file_gnonativetypes_proto_msgTypes[71] + mi := &file_gnonativetypes_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3648,7 +3778,7 @@ func (x *ValidateMnemonicWordRequest) String() string { func (*ValidateMnemonicWordRequest) ProtoMessage() {} func (x *ValidateMnemonicWordRequest) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[71] + mi := &file_gnonativetypes_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3661,7 +3791,7 @@ func (x *ValidateMnemonicWordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateMnemonicWordRequest.ProtoReflect.Descriptor instead. func (*ValidateMnemonicWordRequest) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{71} + return file_gnonativetypes_proto_rawDescGZIP(), []int{73} } func (x *ValidateMnemonicWordRequest) GetWord() string { @@ -3680,7 +3810,7 @@ type ValidateMnemonicWordResponse struct { func (x *ValidateMnemonicWordResponse) Reset() { *x = ValidateMnemonicWordResponse{} - mi := &file_gnonativetypes_proto_msgTypes[72] + mi := &file_gnonativetypes_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3692,7 +3822,7 @@ func (x *ValidateMnemonicWordResponse) String() string { func (*ValidateMnemonicWordResponse) ProtoMessage() {} func (x *ValidateMnemonicWordResponse) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[72] + mi := &file_gnonativetypes_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3705,7 +3835,7 @@ func (x *ValidateMnemonicWordResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateMnemonicWordResponse.ProtoReflect.Descriptor instead. func (*ValidateMnemonicWordResponse) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{72} + return file_gnonativetypes_proto_rawDescGZIP(), []int{74} } func (x *ValidateMnemonicWordResponse) GetValid() bool { @@ -3724,7 +3854,7 @@ type ValidateMnemonicPhraseRequest struct { func (x *ValidateMnemonicPhraseRequest) Reset() { *x = ValidateMnemonicPhraseRequest{} - mi := &file_gnonativetypes_proto_msgTypes[73] + mi := &file_gnonativetypes_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3736,7 +3866,7 @@ func (x *ValidateMnemonicPhraseRequest) String() string { func (*ValidateMnemonicPhraseRequest) ProtoMessage() {} func (x *ValidateMnemonicPhraseRequest) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[73] + mi := &file_gnonativetypes_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3749,7 +3879,7 @@ func (x *ValidateMnemonicPhraseRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateMnemonicPhraseRequest.ProtoReflect.Descriptor instead. func (*ValidateMnemonicPhraseRequest) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{73} + return file_gnonativetypes_proto_rawDescGZIP(), []int{75} } func (x *ValidateMnemonicPhraseRequest) GetPhrase() string { @@ -3768,7 +3898,7 @@ type ValidateMnemonicPhraseResponse struct { func (x *ValidateMnemonicPhraseResponse) Reset() { *x = ValidateMnemonicPhraseResponse{} - mi := &file_gnonativetypes_proto_msgTypes[74] + mi := &file_gnonativetypes_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3780,7 +3910,7 @@ func (x *ValidateMnemonicPhraseResponse) String() string { func (*ValidateMnemonicPhraseResponse) ProtoMessage() {} func (x *ValidateMnemonicPhraseResponse) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[74] + mi := &file_gnonativetypes_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3793,7 +3923,7 @@ func (x *ValidateMnemonicPhraseResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateMnemonicPhraseResponse.ProtoReflect.Descriptor instead. func (*ValidateMnemonicPhraseResponse) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{74} + return file_gnonativetypes_proto_rawDescGZIP(), []int{76} } func (x *ValidateMnemonicPhraseResponse) GetValid() bool { @@ -3812,7 +3942,7 @@ type HelloRequest struct { func (x *HelloRequest) Reset() { *x = HelloRequest{} - mi := &file_gnonativetypes_proto_msgTypes[75] + mi := &file_gnonativetypes_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3824,7 +3954,7 @@ func (x *HelloRequest) String() string { func (*HelloRequest) ProtoMessage() {} func (x *HelloRequest) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[75] + mi := &file_gnonativetypes_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3837,7 +3967,7 @@ func (x *HelloRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead. func (*HelloRequest) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{75} + return file_gnonativetypes_proto_rawDescGZIP(), []int{77} } func (x *HelloRequest) GetName() string { @@ -3856,7 +3986,7 @@ type HelloResponse struct { func (x *HelloResponse) Reset() { *x = HelloResponse{} - mi := &file_gnonativetypes_proto_msgTypes[76] + mi := &file_gnonativetypes_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3868,7 +3998,7 @@ func (x *HelloResponse) String() string { func (*HelloResponse) ProtoMessage() {} func (x *HelloResponse) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[76] + mi := &file_gnonativetypes_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3881,7 +4011,7 @@ func (x *HelloResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead. func (*HelloResponse) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{76} + return file_gnonativetypes_proto_rawDescGZIP(), []int{78} } func (x *HelloResponse) GetGreeting() string { @@ -3900,7 +4030,7 @@ type HelloStreamRequest struct { func (x *HelloStreamRequest) Reset() { *x = HelloStreamRequest{} - mi := &file_gnonativetypes_proto_msgTypes[77] + mi := &file_gnonativetypes_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3912,7 +4042,7 @@ func (x *HelloStreamRequest) String() string { func (*HelloStreamRequest) ProtoMessage() {} func (x *HelloStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[77] + mi := &file_gnonativetypes_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3925,7 +4055,7 @@ func (x *HelloStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HelloStreamRequest.ProtoReflect.Descriptor instead. func (*HelloStreamRequest) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{77} + return file_gnonativetypes_proto_rawDescGZIP(), []int{79} } func (x *HelloStreamRequest) GetName() string { @@ -3944,7 +4074,7 @@ type HelloStreamResponse struct { func (x *HelloStreamResponse) Reset() { *x = HelloStreamResponse{} - mi := &file_gnonativetypes_proto_msgTypes[78] + mi := &file_gnonativetypes_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3956,7 +4086,7 @@ func (x *HelloStreamResponse) String() string { func (*HelloStreamResponse) ProtoMessage() {} func (x *HelloStreamResponse) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[78] + mi := &file_gnonativetypes_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3969,7 +4099,7 @@ func (x *HelloStreamResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HelloStreamResponse.ProtoReflect.Descriptor instead. func (*HelloStreamResponse) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{78} + return file_gnonativetypes_proto_rawDescGZIP(), []int{80} } func (x *HelloStreamResponse) GetGreeting() string { @@ -3988,7 +4118,7 @@ type GNONATIVETYPES_BytesList struct { func (x *GNONATIVETYPES_BytesList) Reset() { *x = GNONATIVETYPES_BytesList{} - mi := &file_gnonativetypes_proto_msgTypes[79] + mi := &file_gnonativetypes_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4000,7 +4130,7 @@ func (x *GNONATIVETYPES_BytesList) String() string { func (*GNONATIVETYPES_BytesList) ProtoMessage() {} func (x *GNONATIVETYPES_BytesList) ProtoReflect() protoreflect.Message { - mi := &file_gnonativetypes_proto_msgTypes[79] + mi := &file_gnonativetypes_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4013,7 +4143,7 @@ func (x *GNONATIVETYPES_BytesList) ProtoReflect() protoreflect.Message { // Deprecated: Use GNONATIVETYPES_BytesList.ProtoReflect.Descriptor instead. func (*GNONATIVETYPES_BytesList) Descriptor() ([]byte, []int) { - return file_gnonativetypes_proto_rawDescGZIP(), []int{79} + return file_gnonativetypes_proto_rawDescGZIP(), []int{81} } func (x *GNONATIVETYPES_BytesList) GetValue() [][]byte { @@ -4202,18 +4332,27 @@ const file_gnonativetypes_proto_rawDesc = "" + "\x0eaccount_number\x18\x03 \x01(\x04R\raccountNumber\x12'\n" + "\x0fsequence_number\x18\x04 \x01(\x04R\x0esequenceNumber\"1\n" + "\x0eSignTxResponse\x12\x1f\n" + - "\x0esigned_tx_json\x18\x01 \x01(\tR\atx_json\"\xdd\x01\n" + + "\x0esigned_tx_json\x18\x01 \x01(\tR\atx_json\"\x8d\x01\n" + "\x12EstimateGasRequest\x12\x17\n" + "\atx_json\x18\x01 \x01(\tR\x06txJson\x12\x18\n" + "\aaddress\x18\x02 \x01(\fR\aaddress\x12'\n" + "\x0fsecurity_margin\x18\x03 \x01(\rR\x0esecurityMargin\x12\x1b\n" + - "\tupdate_tx\x18\x04 \x01(\bR\bupdateTx\x12%\n" + - "\x0eaccount_number\x18\x05 \x01(\x04R\raccountNumber\x12'\n" + - "\x0fsequence_number\x18\x06 \x01(\x04R\x0esequenceNumber\"M\n" + + "\tupdate_tx\x18\x04 \x01(\bR\bupdateTx\"M\n" + "\x13EstimateGasResponse\x12\x17\n" + "\atx_json\x18\x01 \x01(\tR\x06txJson\x12\x1d\n" + "\n" + - "gas_wanted\x18\x02 \x01(\x12R\tgasWanted\";\n" + + "gas_wanted\x18\x02 \x01(\x12R\tgasWanted\"\xcb\x01\n" + + "\x15EstimateGasFeeRequest\x12\x17\n" + + "\atx_json\x18\x01 \x01(\tR\x06txJson\x12\x18\n" + + "\aaddress\x18\x02 \x01(\fR\aaddress\x12.\n" + + "\x13gas_security_margin\x18\x03 \x01(\rR\x11gasSecurityMargin\x122\n" + + "\x15price_security_margin\x18\x04 \x01(\rR\x13priceSecurityMargin\x12\x1b\n" + + "\tupdate_tx\x18\x05 \x01(\bR\bupdateTx\"\x7f\n" + + "\x16EstimateGasFeeResponse\x12\x17\n" + + "\atx_json\x18\x01 \x01(\tR\x06txJson\x12\x1d\n" + + "\n" + + "gas_wanted\x18\x02 \x01(\x12R\tgasWanted\x12-\n" + + "\x03fee\x18\x03 \x01(\v2\x1b.land.gno.gnonative.v1.CoinR\x03fee\";\n" + "\x18BroadcastTxCommitRequest\x12\x1f\n" + "\x0esigned_tx_json\x18\x01 \x01(\tR\atx_json\"_\n" + "\x19BroadcastTxCommitResponse\x12\x16\n" + @@ -4263,7 +4402,7 @@ func file_gnonativetypes_proto_rawDescGZIP() []byte { return file_gnonativetypes_proto_rawDescData } -var file_gnonativetypes_proto_msgTypes = make([]protoimpl.MessageInfo, 80) +var file_gnonativetypes_proto_msgTypes = make([]protoimpl.MessageInfo, 82) var file_gnonativetypes_proto_goTypes = []any{ (*SetRemoteRequest)(nil), // 0: land.gno.gnonative.v1.SetRemoteRequest (*SetRemoteResponse)(nil), // 1: land.gno.gnonative.v1.SetRemoteResponse @@ -4328,23 +4467,25 @@ var file_gnonativetypes_proto_goTypes = []any{ (*SignTxResponse)(nil), // 60: land.gno.gnonative.v1.SignTxResponse (*EstimateGasRequest)(nil), // 61: land.gno.gnonative.v1.EstimateGasRequest (*EstimateGasResponse)(nil), // 62: land.gno.gnonative.v1.EstimateGasResponse - (*BroadcastTxCommitRequest)(nil), // 63: land.gno.gnonative.v1.BroadcastTxCommitRequest - (*BroadcastTxCommitResponse)(nil), // 64: land.gno.gnonative.v1.BroadcastTxCommitResponse - (*AddressToBech32Request)(nil), // 65: land.gno.gnonative.v1.AddressToBech32Request - (*AddressToBech32Response)(nil), // 66: land.gno.gnonative.v1.AddressToBech32Response - (*AddressFromBech32Request)(nil), // 67: land.gno.gnonative.v1.AddressFromBech32Request - (*AddressFromBech32Response)(nil), // 68: land.gno.gnonative.v1.AddressFromBech32Response - (*AddressFromMnemonicRequest)(nil), // 69: land.gno.gnonative.v1.AddressFromMnemonicRequest - (*AddressFromMnemonicResponse)(nil), // 70: land.gno.gnonative.v1.AddressFromMnemonicResponse - (*ValidateMnemonicWordRequest)(nil), // 71: land.gno.gnonative.v1.ValidateMnemonicWordRequest - (*ValidateMnemonicWordResponse)(nil), // 72: land.gno.gnonative.v1.ValidateMnemonicWordResponse - (*ValidateMnemonicPhraseRequest)(nil), // 73: land.gno.gnonative.v1.ValidateMnemonicPhraseRequest - (*ValidateMnemonicPhraseResponse)(nil), // 74: land.gno.gnonative.v1.ValidateMnemonicPhraseResponse - (*HelloRequest)(nil), // 75: land.gno.gnonative.v1.HelloRequest - (*HelloResponse)(nil), // 76: land.gno.gnonative.v1.HelloResponse - (*HelloStreamRequest)(nil), // 77: land.gno.gnonative.v1.HelloStreamRequest - (*HelloStreamResponse)(nil), // 78: land.gno.gnonative.v1.HelloStreamResponse - (*GNONATIVETYPES_BytesList)(nil), // 79: land.gno.gnonative.v1.GNONATIVETYPES_BytesList + (*EstimateGasFeeRequest)(nil), // 63: land.gno.gnonative.v1.EstimateGasFeeRequest + (*EstimateGasFeeResponse)(nil), // 64: land.gno.gnonative.v1.EstimateGasFeeResponse + (*BroadcastTxCommitRequest)(nil), // 65: land.gno.gnonative.v1.BroadcastTxCommitRequest + (*BroadcastTxCommitResponse)(nil), // 66: land.gno.gnonative.v1.BroadcastTxCommitResponse + (*AddressToBech32Request)(nil), // 67: land.gno.gnonative.v1.AddressToBech32Request + (*AddressToBech32Response)(nil), // 68: land.gno.gnonative.v1.AddressToBech32Response + (*AddressFromBech32Request)(nil), // 69: land.gno.gnonative.v1.AddressFromBech32Request + (*AddressFromBech32Response)(nil), // 70: land.gno.gnonative.v1.AddressFromBech32Response + (*AddressFromMnemonicRequest)(nil), // 71: land.gno.gnonative.v1.AddressFromMnemonicRequest + (*AddressFromMnemonicResponse)(nil), // 72: land.gno.gnonative.v1.AddressFromMnemonicResponse + (*ValidateMnemonicWordRequest)(nil), // 73: land.gno.gnonative.v1.ValidateMnemonicWordRequest + (*ValidateMnemonicWordResponse)(nil), // 74: land.gno.gnonative.v1.ValidateMnemonicWordResponse + (*ValidateMnemonicPhraseRequest)(nil), // 75: land.gno.gnonative.v1.ValidateMnemonicPhraseRequest + (*ValidateMnemonicPhraseResponse)(nil), // 76: land.gno.gnonative.v1.ValidateMnemonicPhraseResponse + (*HelloRequest)(nil), // 77: land.gno.gnonative.v1.HelloRequest + (*HelloResponse)(nil), // 78: land.gno.gnonative.v1.HelloResponse + (*HelloStreamRequest)(nil), // 79: land.gno.gnonative.v1.HelloStreamRequest + (*HelloStreamResponse)(nil), // 80: land.gno.gnonative.v1.HelloStreamResponse + (*GNONATIVETYPES_BytesList)(nil), // 81: land.gno.gnonative.v1.GNONATIVETYPES_BytesList } var file_gnonativetypes_proto_depIdxs = []int32{ 15, // 0: land.gno.gnonative.v1.BaseAccount.coins:type_name -> land.gno.gnonative.v1.Coin @@ -4365,11 +4506,12 @@ var file_gnonativetypes_proto_depIdxs = []int32{ 15, // 15: land.gno.gnonative.v1.MsgRun.send:type_name -> land.gno.gnonative.v1.Coin 15, // 16: land.gno.gnonative.v1.MsgRun.max_deposit:type_name -> land.gno.gnonative.v1.Coin 55, // 17: land.gno.gnonative.v1.RunRequest.msgs:type_name -> land.gno.gnonative.v1.MsgRun - 18, // [18:18] is the sub-list for method output_type - 18, // [18:18] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 15, // 18: land.gno.gnonative.v1.EstimateGasFeeResponse.fee:type_name -> land.gno.gnonative.v1.Coin + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_gnonativetypes_proto_init() } @@ -4383,7 +4525,7 @@ func file_gnonativetypes_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_gnonativetypes_proto_rawDesc), len(file_gnonativetypes_proto_rawDesc)), NumEnums: 0, - NumMessages: 80, + NumMessages: 82, NumExtensions: 0, NumServices: 0, }, diff --git a/api/gen/go/rpc.pb.go b/api/gen/go/rpc.pb.go index fe35686..509a0e8 100644 --- a/api/gen/go/rpc.pb.go +++ b/api/gen/go/rpc.pb.go @@ -282,7 +282,7 @@ const file_rpc_proto_rawDesc = "" + "\x0eErrGasOverflow\x10\xd8\x01\x12\x16\n" + "\x11ErrInvalidPkgPath\x10\xd9\x01\x12\x13\n" + "\x0eErrInvalidStmt\x10\xda\x01\x12\x13\n" + - "\x0eErrInvalidExpr\x10\xdb\x012\xbb \n" + + "\x0eErrInvalidExpr\x10\xdb\x012\xaa!\n" + "\x10GnoNativeService\x12^\n" + "\tSetRemote\x12'.land.gno.gnonative.v1.SetRemoteRequest\x1a(.land.gno.gnonative.v1.SetRemoteResponse\x12^\n" + "\tGetRemote\x12'.land.gno.gnonative.v1.GetRemoteRequest\x1a(.land.gno.gnonative.v1.GetRemoteResponse\x12a\n" + @@ -317,7 +317,8 @@ const file_rpc_proto_rawDesc = "" + "\n" + "MakeSendTx\x12\".land.gno.gnonative.v1.SendRequest\x1a%.land.gno.gnonative.v1.MakeTxResponse\x12U\n" + "\tMakeRunTx\x12!.land.gno.gnonative.v1.RunRequest\x1a%.land.gno.gnonative.v1.MakeTxResponse\x12d\n" + - "\vEstimateGas\x12).land.gno.gnonative.v1.EstimateGasRequest\x1a*.land.gno.gnonative.v1.EstimateGasResponse\x12U\n" + + "\vEstimateGas\x12).land.gno.gnonative.v1.EstimateGasRequest\x1a*.land.gno.gnonative.v1.EstimateGasResponse\x12m\n" + + "\x0eEstimateGasFee\x12,.land.gno.gnonative.v1.EstimateGasFeeRequest\x1a-.land.gno.gnonative.v1.EstimateGasFeeResponse\x12U\n" + "\x06SignTx\x12$.land.gno.gnonative.v1.SignTxRequest\x1a%.land.gno.gnonative.v1.SignTxResponse\x12x\n" + "\x11BroadcastTxCommit\x12/.land.gno.gnonative.v1.BroadcastTxCommitRequest\x1a0.land.gno.gnonative.v1.BroadcastTxCommitResponse0\x01\x12p\n" + "\x0fAddressToBech32\x12-.land.gno.gnonative.v1.AddressToBech32Request\x1a..land.gno.gnonative.v1.AddressToBech32Response\x12v\n" + @@ -372,52 +373,54 @@ var file_rpc_proto_goTypes = []any{ (*SendRequest)(nil), // 26: land.gno.gnonative.v1.SendRequest (*RunRequest)(nil), // 27: land.gno.gnonative.v1.RunRequest (*EstimateGasRequest)(nil), // 28: land.gno.gnonative.v1.EstimateGasRequest - (*SignTxRequest)(nil), // 29: land.gno.gnonative.v1.SignTxRequest - (*BroadcastTxCommitRequest)(nil), // 30: land.gno.gnonative.v1.BroadcastTxCommitRequest - (*AddressToBech32Request)(nil), // 31: land.gno.gnonative.v1.AddressToBech32Request - (*AddressFromBech32Request)(nil), // 32: land.gno.gnonative.v1.AddressFromBech32Request - (*AddressFromMnemonicRequest)(nil), // 33: land.gno.gnonative.v1.AddressFromMnemonicRequest - (*ValidateMnemonicWordRequest)(nil), // 34: land.gno.gnonative.v1.ValidateMnemonicWordRequest - (*ValidateMnemonicPhraseRequest)(nil), // 35: land.gno.gnonative.v1.ValidateMnemonicPhraseRequest - (*HelloRequest)(nil), // 36: land.gno.gnonative.v1.HelloRequest - (*HelloStreamRequest)(nil), // 37: land.gno.gnonative.v1.HelloStreamRequest - (*SetRemoteResponse)(nil), // 38: land.gno.gnonative.v1.SetRemoteResponse - (*GetRemoteResponse)(nil), // 39: land.gno.gnonative.v1.GetRemoteResponse - (*SetChainIDResponse)(nil), // 40: land.gno.gnonative.v1.SetChainIDResponse - (*GetChainIDResponse)(nil), // 41: land.gno.gnonative.v1.GetChainIDResponse - (*GenerateRecoveryPhraseResponse)(nil), // 42: land.gno.gnonative.v1.GenerateRecoveryPhraseResponse - (*ListKeyInfoResponse)(nil), // 43: land.gno.gnonative.v1.ListKeyInfoResponse - (*HasKeyByNameResponse)(nil), // 44: land.gno.gnonative.v1.HasKeyByNameResponse - (*HasKeyByAddressResponse)(nil), // 45: land.gno.gnonative.v1.HasKeyByAddressResponse - (*HasKeyByNameOrAddressResponse)(nil), // 46: land.gno.gnonative.v1.HasKeyByNameOrAddressResponse - (*GetKeyInfoByNameResponse)(nil), // 47: land.gno.gnonative.v1.GetKeyInfoByNameResponse - (*GetKeyInfoByAddressResponse)(nil), // 48: land.gno.gnonative.v1.GetKeyInfoByAddressResponse - (*GetKeyInfoByNameOrAddressResponse)(nil), // 49: land.gno.gnonative.v1.GetKeyInfoByNameOrAddressResponse - (*CreateAccountResponse)(nil), // 50: land.gno.gnonative.v1.CreateAccountResponse - (*CreateLedgerResponse)(nil), // 51: land.gno.gnonative.v1.CreateLedgerResponse - (*ActivateAccountResponse)(nil), // 52: land.gno.gnonative.v1.ActivateAccountResponse - (*SetPasswordResponse)(nil), // 53: land.gno.gnonative.v1.SetPasswordResponse - (*RotatePasswordResponse)(nil), // 54: land.gno.gnonative.v1.RotatePasswordResponse - (*GetActivatedAccountResponse)(nil), // 55: land.gno.gnonative.v1.GetActivatedAccountResponse - (*QueryAccountResponse)(nil), // 56: land.gno.gnonative.v1.QueryAccountResponse - (*DeleteAccountResponse)(nil), // 57: land.gno.gnonative.v1.DeleteAccountResponse - (*QueryResponse)(nil), // 58: land.gno.gnonative.v1.QueryResponse - (*RenderResponse)(nil), // 59: land.gno.gnonative.v1.RenderResponse - (*QEvalResponse)(nil), // 60: land.gno.gnonative.v1.QEvalResponse - (*CallResponse)(nil), // 61: land.gno.gnonative.v1.CallResponse - (*SendResponse)(nil), // 62: land.gno.gnonative.v1.SendResponse - (*RunResponse)(nil), // 63: land.gno.gnonative.v1.RunResponse - (*MakeTxResponse)(nil), // 64: land.gno.gnonative.v1.MakeTxResponse - (*EstimateGasResponse)(nil), // 65: land.gno.gnonative.v1.EstimateGasResponse - (*SignTxResponse)(nil), // 66: land.gno.gnonative.v1.SignTxResponse - (*BroadcastTxCommitResponse)(nil), // 67: land.gno.gnonative.v1.BroadcastTxCommitResponse - (*AddressToBech32Response)(nil), // 68: land.gno.gnonative.v1.AddressToBech32Response - (*AddressFromBech32Response)(nil), // 69: land.gno.gnonative.v1.AddressFromBech32Response - (*AddressFromMnemonicResponse)(nil), // 70: land.gno.gnonative.v1.AddressFromMnemonicResponse - (*ValidateMnemonicWordResponse)(nil), // 71: land.gno.gnonative.v1.ValidateMnemonicWordResponse - (*ValidateMnemonicPhraseResponse)(nil), // 72: land.gno.gnonative.v1.ValidateMnemonicPhraseResponse - (*HelloResponse)(nil), // 73: land.gno.gnonative.v1.HelloResponse - (*HelloStreamResponse)(nil), // 74: land.gno.gnonative.v1.HelloStreamResponse + (*EstimateGasFeeRequest)(nil), // 29: land.gno.gnonative.v1.EstimateGasFeeRequest + (*SignTxRequest)(nil), // 30: land.gno.gnonative.v1.SignTxRequest + (*BroadcastTxCommitRequest)(nil), // 31: land.gno.gnonative.v1.BroadcastTxCommitRequest + (*AddressToBech32Request)(nil), // 32: land.gno.gnonative.v1.AddressToBech32Request + (*AddressFromBech32Request)(nil), // 33: land.gno.gnonative.v1.AddressFromBech32Request + (*AddressFromMnemonicRequest)(nil), // 34: land.gno.gnonative.v1.AddressFromMnemonicRequest + (*ValidateMnemonicWordRequest)(nil), // 35: land.gno.gnonative.v1.ValidateMnemonicWordRequest + (*ValidateMnemonicPhraseRequest)(nil), // 36: land.gno.gnonative.v1.ValidateMnemonicPhraseRequest + (*HelloRequest)(nil), // 37: land.gno.gnonative.v1.HelloRequest + (*HelloStreamRequest)(nil), // 38: land.gno.gnonative.v1.HelloStreamRequest + (*SetRemoteResponse)(nil), // 39: land.gno.gnonative.v1.SetRemoteResponse + (*GetRemoteResponse)(nil), // 40: land.gno.gnonative.v1.GetRemoteResponse + (*SetChainIDResponse)(nil), // 41: land.gno.gnonative.v1.SetChainIDResponse + (*GetChainIDResponse)(nil), // 42: land.gno.gnonative.v1.GetChainIDResponse + (*GenerateRecoveryPhraseResponse)(nil), // 43: land.gno.gnonative.v1.GenerateRecoveryPhraseResponse + (*ListKeyInfoResponse)(nil), // 44: land.gno.gnonative.v1.ListKeyInfoResponse + (*HasKeyByNameResponse)(nil), // 45: land.gno.gnonative.v1.HasKeyByNameResponse + (*HasKeyByAddressResponse)(nil), // 46: land.gno.gnonative.v1.HasKeyByAddressResponse + (*HasKeyByNameOrAddressResponse)(nil), // 47: land.gno.gnonative.v1.HasKeyByNameOrAddressResponse + (*GetKeyInfoByNameResponse)(nil), // 48: land.gno.gnonative.v1.GetKeyInfoByNameResponse + (*GetKeyInfoByAddressResponse)(nil), // 49: land.gno.gnonative.v1.GetKeyInfoByAddressResponse + (*GetKeyInfoByNameOrAddressResponse)(nil), // 50: land.gno.gnonative.v1.GetKeyInfoByNameOrAddressResponse + (*CreateAccountResponse)(nil), // 51: land.gno.gnonative.v1.CreateAccountResponse + (*CreateLedgerResponse)(nil), // 52: land.gno.gnonative.v1.CreateLedgerResponse + (*ActivateAccountResponse)(nil), // 53: land.gno.gnonative.v1.ActivateAccountResponse + (*SetPasswordResponse)(nil), // 54: land.gno.gnonative.v1.SetPasswordResponse + (*RotatePasswordResponse)(nil), // 55: land.gno.gnonative.v1.RotatePasswordResponse + (*GetActivatedAccountResponse)(nil), // 56: land.gno.gnonative.v1.GetActivatedAccountResponse + (*QueryAccountResponse)(nil), // 57: land.gno.gnonative.v1.QueryAccountResponse + (*DeleteAccountResponse)(nil), // 58: land.gno.gnonative.v1.DeleteAccountResponse + (*QueryResponse)(nil), // 59: land.gno.gnonative.v1.QueryResponse + (*RenderResponse)(nil), // 60: land.gno.gnonative.v1.RenderResponse + (*QEvalResponse)(nil), // 61: land.gno.gnonative.v1.QEvalResponse + (*CallResponse)(nil), // 62: land.gno.gnonative.v1.CallResponse + (*SendResponse)(nil), // 63: land.gno.gnonative.v1.SendResponse + (*RunResponse)(nil), // 64: land.gno.gnonative.v1.RunResponse + (*MakeTxResponse)(nil), // 65: land.gno.gnonative.v1.MakeTxResponse + (*EstimateGasResponse)(nil), // 66: land.gno.gnonative.v1.EstimateGasResponse + (*EstimateGasFeeResponse)(nil), // 67: land.gno.gnonative.v1.EstimateGasFeeResponse + (*SignTxResponse)(nil), // 68: land.gno.gnonative.v1.SignTxResponse + (*BroadcastTxCommitResponse)(nil), // 69: land.gno.gnonative.v1.BroadcastTxCommitResponse + (*AddressToBech32Response)(nil), // 70: land.gno.gnonative.v1.AddressToBech32Response + (*AddressFromBech32Response)(nil), // 71: land.gno.gnonative.v1.AddressFromBech32Response + (*AddressFromMnemonicResponse)(nil), // 72: land.gno.gnonative.v1.AddressFromMnemonicResponse + (*ValidateMnemonicWordResponse)(nil), // 73: land.gno.gnonative.v1.ValidateMnemonicWordResponse + (*ValidateMnemonicPhraseResponse)(nil), // 74: land.gno.gnonative.v1.ValidateMnemonicPhraseResponse + (*HelloResponse)(nil), // 75: land.gno.gnonative.v1.HelloResponse + (*HelloStreamResponse)(nil), // 76: land.gno.gnonative.v1.HelloStreamResponse } var file_rpc_proto_depIdxs = []int32{ 0, // 0: land.gno.gnonative.v1.ErrDetails.codes:type_name -> land.gno.gnonative.v1.ErrCode @@ -451,56 +454,58 @@ var file_rpc_proto_depIdxs = []int32{ 26, // 28: land.gno.gnonative.v1.GnoNativeService.MakeSendTx:input_type -> land.gno.gnonative.v1.SendRequest 27, // 29: land.gno.gnonative.v1.GnoNativeService.MakeRunTx:input_type -> land.gno.gnonative.v1.RunRequest 28, // 30: land.gno.gnonative.v1.GnoNativeService.EstimateGas:input_type -> land.gno.gnonative.v1.EstimateGasRequest - 29, // 31: land.gno.gnonative.v1.GnoNativeService.SignTx:input_type -> land.gno.gnonative.v1.SignTxRequest - 30, // 32: land.gno.gnonative.v1.GnoNativeService.BroadcastTxCommit:input_type -> land.gno.gnonative.v1.BroadcastTxCommitRequest - 31, // 33: land.gno.gnonative.v1.GnoNativeService.AddressToBech32:input_type -> land.gno.gnonative.v1.AddressToBech32Request - 32, // 34: land.gno.gnonative.v1.GnoNativeService.AddressFromBech32:input_type -> land.gno.gnonative.v1.AddressFromBech32Request - 33, // 35: land.gno.gnonative.v1.GnoNativeService.AddressFromMnemonic:input_type -> land.gno.gnonative.v1.AddressFromMnemonicRequest - 34, // 36: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicWord:input_type -> land.gno.gnonative.v1.ValidateMnemonicWordRequest - 35, // 37: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicPhrase:input_type -> land.gno.gnonative.v1.ValidateMnemonicPhraseRequest - 36, // 38: land.gno.gnonative.v1.GnoNativeService.Hello:input_type -> land.gno.gnonative.v1.HelloRequest - 37, // 39: land.gno.gnonative.v1.GnoNativeService.HelloStream:input_type -> land.gno.gnonative.v1.HelloStreamRequest - 38, // 40: land.gno.gnonative.v1.GnoNativeService.SetRemote:output_type -> land.gno.gnonative.v1.SetRemoteResponse - 39, // 41: land.gno.gnonative.v1.GnoNativeService.GetRemote:output_type -> land.gno.gnonative.v1.GetRemoteResponse - 40, // 42: land.gno.gnonative.v1.GnoNativeService.SetChainID:output_type -> land.gno.gnonative.v1.SetChainIDResponse - 41, // 43: land.gno.gnonative.v1.GnoNativeService.GetChainID:output_type -> land.gno.gnonative.v1.GetChainIDResponse - 42, // 44: land.gno.gnonative.v1.GnoNativeService.GenerateRecoveryPhrase:output_type -> land.gno.gnonative.v1.GenerateRecoveryPhraseResponse - 43, // 45: land.gno.gnonative.v1.GnoNativeService.ListKeyInfo:output_type -> land.gno.gnonative.v1.ListKeyInfoResponse - 44, // 46: land.gno.gnonative.v1.GnoNativeService.HasKeyByName:output_type -> land.gno.gnonative.v1.HasKeyByNameResponse - 45, // 47: land.gno.gnonative.v1.GnoNativeService.HasKeyByAddress:output_type -> land.gno.gnonative.v1.HasKeyByAddressResponse - 46, // 48: land.gno.gnonative.v1.GnoNativeService.HasKeyByNameOrAddress:output_type -> land.gno.gnonative.v1.HasKeyByNameOrAddressResponse - 47, // 49: land.gno.gnonative.v1.GnoNativeService.GetKeyInfoByName:output_type -> land.gno.gnonative.v1.GetKeyInfoByNameResponse - 48, // 50: land.gno.gnonative.v1.GnoNativeService.GetKeyInfoByAddress:output_type -> land.gno.gnonative.v1.GetKeyInfoByAddressResponse - 49, // 51: land.gno.gnonative.v1.GnoNativeService.GetKeyInfoByNameOrAddress:output_type -> land.gno.gnonative.v1.GetKeyInfoByNameOrAddressResponse - 50, // 52: land.gno.gnonative.v1.GnoNativeService.CreateAccount:output_type -> land.gno.gnonative.v1.CreateAccountResponse - 51, // 53: land.gno.gnonative.v1.GnoNativeService.CreateLedger:output_type -> land.gno.gnonative.v1.CreateLedgerResponse - 52, // 54: land.gno.gnonative.v1.GnoNativeService.ActivateAccount:output_type -> land.gno.gnonative.v1.ActivateAccountResponse - 53, // 55: land.gno.gnonative.v1.GnoNativeService.SetPassword:output_type -> land.gno.gnonative.v1.SetPasswordResponse - 54, // 56: land.gno.gnonative.v1.GnoNativeService.RotatePassword:output_type -> land.gno.gnonative.v1.RotatePasswordResponse - 55, // 57: land.gno.gnonative.v1.GnoNativeService.GetActivatedAccount:output_type -> land.gno.gnonative.v1.GetActivatedAccountResponse - 56, // 58: land.gno.gnonative.v1.GnoNativeService.QueryAccount:output_type -> land.gno.gnonative.v1.QueryAccountResponse - 57, // 59: land.gno.gnonative.v1.GnoNativeService.DeleteAccount:output_type -> land.gno.gnonative.v1.DeleteAccountResponse - 58, // 60: land.gno.gnonative.v1.GnoNativeService.Query:output_type -> land.gno.gnonative.v1.QueryResponse - 59, // 61: land.gno.gnonative.v1.GnoNativeService.Render:output_type -> land.gno.gnonative.v1.RenderResponse - 60, // 62: land.gno.gnonative.v1.GnoNativeService.QEval:output_type -> land.gno.gnonative.v1.QEvalResponse - 61, // 63: land.gno.gnonative.v1.GnoNativeService.Call:output_type -> land.gno.gnonative.v1.CallResponse - 62, // 64: land.gno.gnonative.v1.GnoNativeService.Send:output_type -> land.gno.gnonative.v1.SendResponse - 63, // 65: land.gno.gnonative.v1.GnoNativeService.Run:output_type -> land.gno.gnonative.v1.RunResponse - 64, // 66: land.gno.gnonative.v1.GnoNativeService.MakeCallTx:output_type -> land.gno.gnonative.v1.MakeTxResponse - 64, // 67: land.gno.gnonative.v1.GnoNativeService.MakeSendTx:output_type -> land.gno.gnonative.v1.MakeTxResponse - 64, // 68: land.gno.gnonative.v1.GnoNativeService.MakeRunTx:output_type -> land.gno.gnonative.v1.MakeTxResponse - 65, // 69: land.gno.gnonative.v1.GnoNativeService.EstimateGas:output_type -> land.gno.gnonative.v1.EstimateGasResponse - 66, // 70: land.gno.gnonative.v1.GnoNativeService.SignTx:output_type -> land.gno.gnonative.v1.SignTxResponse - 67, // 71: land.gno.gnonative.v1.GnoNativeService.BroadcastTxCommit:output_type -> land.gno.gnonative.v1.BroadcastTxCommitResponse - 68, // 72: land.gno.gnonative.v1.GnoNativeService.AddressToBech32:output_type -> land.gno.gnonative.v1.AddressToBech32Response - 69, // 73: land.gno.gnonative.v1.GnoNativeService.AddressFromBech32:output_type -> land.gno.gnonative.v1.AddressFromBech32Response - 70, // 74: land.gno.gnonative.v1.GnoNativeService.AddressFromMnemonic:output_type -> land.gno.gnonative.v1.AddressFromMnemonicResponse - 71, // 75: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicWord:output_type -> land.gno.gnonative.v1.ValidateMnemonicWordResponse - 72, // 76: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicPhrase:output_type -> land.gno.gnonative.v1.ValidateMnemonicPhraseResponse - 73, // 77: land.gno.gnonative.v1.GnoNativeService.Hello:output_type -> land.gno.gnonative.v1.HelloResponse - 74, // 78: land.gno.gnonative.v1.GnoNativeService.HelloStream:output_type -> land.gno.gnonative.v1.HelloStreamResponse - 40, // [40:79] is the sub-list for method output_type - 1, // [1:40] is the sub-list for method input_type + 29, // 31: land.gno.gnonative.v1.GnoNativeService.EstimateGasFee:input_type -> land.gno.gnonative.v1.EstimateGasFeeRequest + 30, // 32: land.gno.gnonative.v1.GnoNativeService.SignTx:input_type -> land.gno.gnonative.v1.SignTxRequest + 31, // 33: land.gno.gnonative.v1.GnoNativeService.BroadcastTxCommit:input_type -> land.gno.gnonative.v1.BroadcastTxCommitRequest + 32, // 34: land.gno.gnonative.v1.GnoNativeService.AddressToBech32:input_type -> land.gno.gnonative.v1.AddressToBech32Request + 33, // 35: land.gno.gnonative.v1.GnoNativeService.AddressFromBech32:input_type -> land.gno.gnonative.v1.AddressFromBech32Request + 34, // 36: land.gno.gnonative.v1.GnoNativeService.AddressFromMnemonic:input_type -> land.gno.gnonative.v1.AddressFromMnemonicRequest + 35, // 37: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicWord:input_type -> land.gno.gnonative.v1.ValidateMnemonicWordRequest + 36, // 38: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicPhrase:input_type -> land.gno.gnonative.v1.ValidateMnemonicPhraseRequest + 37, // 39: land.gno.gnonative.v1.GnoNativeService.Hello:input_type -> land.gno.gnonative.v1.HelloRequest + 38, // 40: land.gno.gnonative.v1.GnoNativeService.HelloStream:input_type -> land.gno.gnonative.v1.HelloStreamRequest + 39, // 41: land.gno.gnonative.v1.GnoNativeService.SetRemote:output_type -> land.gno.gnonative.v1.SetRemoteResponse + 40, // 42: land.gno.gnonative.v1.GnoNativeService.GetRemote:output_type -> land.gno.gnonative.v1.GetRemoteResponse + 41, // 43: land.gno.gnonative.v1.GnoNativeService.SetChainID:output_type -> land.gno.gnonative.v1.SetChainIDResponse + 42, // 44: land.gno.gnonative.v1.GnoNativeService.GetChainID:output_type -> land.gno.gnonative.v1.GetChainIDResponse + 43, // 45: land.gno.gnonative.v1.GnoNativeService.GenerateRecoveryPhrase:output_type -> land.gno.gnonative.v1.GenerateRecoveryPhraseResponse + 44, // 46: land.gno.gnonative.v1.GnoNativeService.ListKeyInfo:output_type -> land.gno.gnonative.v1.ListKeyInfoResponse + 45, // 47: land.gno.gnonative.v1.GnoNativeService.HasKeyByName:output_type -> land.gno.gnonative.v1.HasKeyByNameResponse + 46, // 48: land.gno.gnonative.v1.GnoNativeService.HasKeyByAddress:output_type -> land.gno.gnonative.v1.HasKeyByAddressResponse + 47, // 49: land.gno.gnonative.v1.GnoNativeService.HasKeyByNameOrAddress:output_type -> land.gno.gnonative.v1.HasKeyByNameOrAddressResponse + 48, // 50: land.gno.gnonative.v1.GnoNativeService.GetKeyInfoByName:output_type -> land.gno.gnonative.v1.GetKeyInfoByNameResponse + 49, // 51: land.gno.gnonative.v1.GnoNativeService.GetKeyInfoByAddress:output_type -> land.gno.gnonative.v1.GetKeyInfoByAddressResponse + 50, // 52: land.gno.gnonative.v1.GnoNativeService.GetKeyInfoByNameOrAddress:output_type -> land.gno.gnonative.v1.GetKeyInfoByNameOrAddressResponse + 51, // 53: land.gno.gnonative.v1.GnoNativeService.CreateAccount:output_type -> land.gno.gnonative.v1.CreateAccountResponse + 52, // 54: land.gno.gnonative.v1.GnoNativeService.CreateLedger:output_type -> land.gno.gnonative.v1.CreateLedgerResponse + 53, // 55: land.gno.gnonative.v1.GnoNativeService.ActivateAccount:output_type -> land.gno.gnonative.v1.ActivateAccountResponse + 54, // 56: land.gno.gnonative.v1.GnoNativeService.SetPassword:output_type -> land.gno.gnonative.v1.SetPasswordResponse + 55, // 57: land.gno.gnonative.v1.GnoNativeService.RotatePassword:output_type -> land.gno.gnonative.v1.RotatePasswordResponse + 56, // 58: land.gno.gnonative.v1.GnoNativeService.GetActivatedAccount:output_type -> land.gno.gnonative.v1.GetActivatedAccountResponse + 57, // 59: land.gno.gnonative.v1.GnoNativeService.QueryAccount:output_type -> land.gno.gnonative.v1.QueryAccountResponse + 58, // 60: land.gno.gnonative.v1.GnoNativeService.DeleteAccount:output_type -> land.gno.gnonative.v1.DeleteAccountResponse + 59, // 61: land.gno.gnonative.v1.GnoNativeService.Query:output_type -> land.gno.gnonative.v1.QueryResponse + 60, // 62: land.gno.gnonative.v1.GnoNativeService.Render:output_type -> land.gno.gnonative.v1.RenderResponse + 61, // 63: land.gno.gnonative.v1.GnoNativeService.QEval:output_type -> land.gno.gnonative.v1.QEvalResponse + 62, // 64: land.gno.gnonative.v1.GnoNativeService.Call:output_type -> land.gno.gnonative.v1.CallResponse + 63, // 65: land.gno.gnonative.v1.GnoNativeService.Send:output_type -> land.gno.gnonative.v1.SendResponse + 64, // 66: land.gno.gnonative.v1.GnoNativeService.Run:output_type -> land.gno.gnonative.v1.RunResponse + 65, // 67: land.gno.gnonative.v1.GnoNativeService.MakeCallTx:output_type -> land.gno.gnonative.v1.MakeTxResponse + 65, // 68: land.gno.gnonative.v1.GnoNativeService.MakeSendTx:output_type -> land.gno.gnonative.v1.MakeTxResponse + 65, // 69: land.gno.gnonative.v1.GnoNativeService.MakeRunTx:output_type -> land.gno.gnonative.v1.MakeTxResponse + 66, // 70: land.gno.gnonative.v1.GnoNativeService.EstimateGas:output_type -> land.gno.gnonative.v1.EstimateGasResponse + 67, // 71: land.gno.gnonative.v1.GnoNativeService.EstimateGasFee:output_type -> land.gno.gnonative.v1.EstimateGasFeeResponse + 68, // 72: land.gno.gnonative.v1.GnoNativeService.SignTx:output_type -> land.gno.gnonative.v1.SignTxResponse + 69, // 73: land.gno.gnonative.v1.GnoNativeService.BroadcastTxCommit:output_type -> land.gno.gnonative.v1.BroadcastTxCommitResponse + 70, // 74: land.gno.gnonative.v1.GnoNativeService.AddressToBech32:output_type -> land.gno.gnonative.v1.AddressToBech32Response + 71, // 75: land.gno.gnonative.v1.GnoNativeService.AddressFromBech32:output_type -> land.gno.gnonative.v1.AddressFromBech32Response + 72, // 76: land.gno.gnonative.v1.GnoNativeService.AddressFromMnemonic:output_type -> land.gno.gnonative.v1.AddressFromMnemonicResponse + 73, // 77: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicWord:output_type -> land.gno.gnonative.v1.ValidateMnemonicWordResponse + 74, // 78: land.gno.gnonative.v1.GnoNativeService.ValidateMnemonicPhrase:output_type -> land.gno.gnonative.v1.ValidateMnemonicPhraseResponse + 75, // 79: land.gno.gnonative.v1.GnoNativeService.Hello:output_type -> land.gno.gnonative.v1.HelloResponse + 76, // 80: land.gno.gnonative.v1.GnoNativeService.HelloStream:output_type -> land.gno.gnonative.v1.HelloStreamResponse + 41, // [41:81] is the sub-list for method output_type + 1, // [1:41] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name diff --git a/api/gnonativetypes.proto b/api/gnonativetypes.proto index c1a6301..ab37826 100644 --- a/api/gnonativetypes.proto +++ b/api/gnonativetypes.proto @@ -355,10 +355,6 @@ message EstimateGasRequest { uint32 security_margin = 3; // The update boolean to update the gas wanted field in the transaction if true. bool update_tx = 4; - // The signer's account number on the blockchain. If 0 then query the blockchain for the value. - uint64 account_number = 5; - // The sequence number of the signer's transactions on the blockchain. If 0 then query the blockchain for the value. - uint64 sequence_number = 6; } message EstimateGasResponse { @@ -368,6 +364,32 @@ message EstimateGasResponse { sint64 gas_wanted = 2; } +message EstimateGasFeeRequest { + // The JSON encoding of the unsigned transaction (from MakeCallTx, etc.) + string tx_json = 1; + // The address of the account to sign the transaction + bytes address = 2; + // The security margin to apply to the estimated gas amount. + // This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + // It will be multiplied by the estimated gas amount. + uint32 gas_security_margin = 3; + // The security margin to apply to the gas price. + // This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + // It will be multiplied by the fetched gas price. + uint32 price_security_margin = 4; + // The update boolean to update the gas wanted field in the transaction if true. + bool update_tx = 5; +} + +message EstimateGasFeeResponse { + // The JSON encoding of the unsigned transaction + string tx_json = 1; + // The estimated gas wanted for the transaction + sint64 gas_wanted = 2; + // The estimated fee for the transaction + Coin fee = 3; +} + message BroadcastTxCommitRequest { // The JSON encoding of the signed transaction (from SignTx) string signed_tx_json = 1 [json_name = "tx_json"]; diff --git a/api/gnonativetypes/gnonativetypes.go b/api/gnonativetypes/gnonativetypes.go index 83596c3..6adb08f 100644 --- a/api/gnonativetypes/gnonativetypes.go +++ b/api/gnonativetypes/gnonativetypes.go @@ -342,10 +342,6 @@ type EstimateGasRequest struct { SecurityMargin uint32 `json:"security_margin" yaml:"security_margin"` // The update boolean to update the gas wanted field in the transaction if true. UpdateTx bool `json:"update_tx" yaml:"update_tx"` - // The signer's account number on the blockchain. If 0 then query the blockchain for the value. - AccountNumber uint64 `json:"account_number" yaml:"account_number"` - // The sequence number of the signer's transactions on the blockchain. If 0 then query the blockchain for the value. - SequenceNumber uint64 `json:"sequence_number" yaml:"sequence_number"` } type EstimateGasResponse struct { @@ -355,6 +351,32 @@ type EstimateGasResponse struct { GasWanted int64 `json:"gas_wanted" yaml:"gas_wanted"` } +type EstimateGasFeeRequest struct { + // The JSON encoding of the unsigned transaction (from MakeCallTx, etc.) + TxJSON string `json:"tx_json" yaml:"tx_json"` + // The address of the account to sign the transaction + Address []byte `json:"address" yaml:"address"` + // The security margin to apply to the estimated gas amount. + // This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + // It will be multiplied by the estimated gas amount. + GasSecurityMargin uint32 `json:"gas_security_margin" yaml:"gas_security_margin"` + // The security margin to apply to the gas price. + // This number represents a decimal numeral value with two decimals precision, without the decimal separator. E.g. 1 means 0.01 and 10000 means 100.00. + // It will be multiplied by the fetched gas price. + PriceSecurityMargin uint32 `json:"price_security_margin" yaml:"price_security_margin"` + // The update boolean to update the gas wanted field in the transaction if true. + UpdateTx bool `json:"update_tx" yaml:"update_tx"` +} + +type EstimateGasFeeResponse struct { + // The JSON encoding of the unsigned transaction + TxJSON string `json:"tx_json" yaml:"tx_json"` + // The estimated gas wanted for the transaction + GasWanted int64 `json:"gas_wanted" yaml:"gas_wanted"` + // The estimated fee for the transaction + Fee Coin `json:"fee" yaml:"fee"` +} + type BroadcastTxCommitRequest struct { // The JSON encoding of the signed transaction (from SignTx) SignedTxJSON string `json:"tx_json" yaml:"tx_json"` diff --git a/api/gnonativetypes/package.go b/api/gnonativetypes/package.go index ded8743..0ddedf5 100644 --- a/api/gnonativetypes/package.go +++ b/api/gnonativetypes/package.go @@ -75,6 +75,8 @@ var Package = amino.RegisterPackage(amino.NewPackage( SignTxResponse{}, EstimateGasRequest{}, EstimateGasResponse{}, + EstimateGasFeeRequest{}, + EstimateGasFeeResponse{}, BroadcastTxCommitRequest{}, BroadcastTxCommitResponse{}, AddressToBech32Request{}, diff --git a/api/rpc.proto b/api/rpc.proto index 1878894..d79e7af 100644 --- a/api/rpc.proto +++ b/api/rpc.proto @@ -154,8 +154,15 @@ service GnoNativeService { // EstimateGas estimates the least amount of gas required for the transaction to go through on the chain (minimum gas wanted), with a security margin. // If UpdateTx is true, then update the transaction with the gasWanted amount. + // This uses the remote node determined by SetRemote. rpc EstimateGas(EstimateGasRequest) returns (EstimateGasResponse); + // EstimateGasFee estimates the fee for the transaction to go through on the chain (minimum gas wanted times the gas price), with a security margin. + // If UpdateTx is true, then update the transaction with the gasWanted amount. + // This uses the remote node determined by SetRemote. + // This is similar to EstimateGas but also fetches the gas price from the remote node. + rpc EstimateGasFee(EstimateGasFeeRequest) returns (EstimateGasFeeResponse); + // Sign the transaction using the account with the given address. // If there is no activated account with the given address, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrNoActiveAccount. // If the password is wrong, return [ErrCode](#land.gno.gnonative.v1.ErrCode).ErrDecryptionFailed. diff --git a/expo/src/api/GnoNativeApi.ts b/expo/src/api/GnoNativeApi.ts index 64ba217..31ee86f 100644 --- a/expo/src/api/GnoNativeApi.ts +++ b/expo/src/api/GnoNativeApi.ts @@ -21,6 +21,7 @@ import { SignTxResponse, RotatePasswordResponse, EstimateGasResponse, + EstimateGasFeeResponse, } from './vendor/gnonativetypes_pb'; import { GnoNativeService } from './vendor/rpc_pb'; import { GoBridge, GoBridgeInterface } from '../GoBridge'; @@ -109,8 +110,6 @@ export class GnoNativeApi implements GnoKeyApi, GoBridgeInterface { address: Uint8Array, securityMargin: number, updateTx: boolean, - accountNumber: bigint = BigInt(0), - sequenceNumber: bigint = BigInt(0), ): Promise { const client = this.#getClient(); const response = client.estimateGas({ @@ -118,8 +117,24 @@ export class GnoNativeApi implements GnoKeyApi, GoBridgeInterface { address, securityMargin, updateTx, - accountNumber, - sequenceNumber, + }); + return response; + } + + async estimateGasFee( + txJson: string, + address: Uint8Array, + gasSecurityMargin: number, + priceSecurityMargin: number, + updateTx: boolean, + ): Promise { + const client = this.#getClient(); + const response = client.estimateGasFee({ + txJson, + address, + gasSecurityMargin, + priceSecurityMargin, + updateTx, }); return response; } diff --git a/expo/src/api/types.ts b/expo/src/api/types.ts index 6f9a9b4..bf34e06 100644 --- a/expo/src/api/types.ts +++ b/expo/src/api/types.ts @@ -15,6 +15,7 @@ import { KeyInfo, SignTxResponse, EstimateGasResponse, + EstimateGasFeeResponse, MakeTxResponse, BroadcastTxCommitResponse, Coin, @@ -116,9 +117,14 @@ export interface GnoKeyApi { address: Uint8Array, securityMargin: number, updateTx: boolean, - accountNumber?: bigint, - sequenceNumber?: bigint, ): Promise; + estimateGasFee( + txJson: string, + address: Uint8Array, + gasSecurityMargin: number, + priceSecurityMargin: number, + updateTx: boolean, + ): Promise; makeCallTx( packagePath: string, fnc: string, diff --git a/gen.sum b/gen.sum index c728e94..e4814e4 100644 --- a/gen.sum +++ b/gen.sum @@ -1,6 +1,6 @@ -32ea05c96db232590e226d2a995546566137526b api/gnonativetypes.proto -4606ed9c6426464cc8c4d11ec15abbd6f32cdb8f api/gnonativetypes/gnonativetypes.go -5c1423cfce48514cbb29ce4a76e3a7017c055ba0 api/gnonativetypes/package.go -5e9ce9eb1815d8d2771fe948fb20223df36ff182 api/rpc.proto +e4d28abfa76dddac3bb78ec1872a460e7d02fe2c api/gnonativetypes.proto +e211ed4b9ca545bca75406c187bd181c2ba9d359 api/gnonativetypes/gnonativetypes.go +579d8230ef55440b67e03f6b6d4919690c5f414d api/gnonativetypes/package.go +f9949785fa5fa8a0bba6355e7f1ee39df4840210 api/rpc.proto 426b4aee8f1f2b045062c7c745b4d3559d59daf9 buf.gen.yaml cfa69b131531fcb5ca340fbede8c7ccf094d62bb Makefile diff --git a/service/api.go b/service/api.go index a721edf..fbc5953 100644 --- a/service/api.go +++ b/service/api.go @@ -15,6 +15,7 @@ import ( "github.com/gnolang/gno/tm2/pkg/crypto/bip39" crypto_keys "github.com/gnolang/gno/tm2/pkg/crypto/keys" "github.com/gnolang/gno/tm2/pkg/crypto/keys/keyerror" + "github.com/gnolang/gno/tm2/pkg/overflow" "github.com/gnolang/gno/tm2/pkg/sdk/bank" "github.com/gnolang/gno/tm2/pkg/std" "go.uber.org/zap" @@ -701,15 +702,85 @@ func (s *gnoNativeService) EstimateGas(ctx context.Context, req *connect.Request return nil, err } - signer, err := s.getSigner(req.Msg.Address) + gasWanted, err := s.estimateGasWanted(&tx, req.Msg.Address, req.Msg.SecurityMargin, req.Msg.UpdateTx) + if err != nil { + return nil, getGrpcError(err) + } + + txJSON, err := amino.MarshalJSON(tx) if err != nil { return nil, err } - info, err := signer.Info() + + return connect.NewResponse(&api_gen.EstimateGasResponse{TxJson: string(txJSON), GasWanted: gasWanted}), nil +} + +func (s *gnoNativeService) EstimateGasFee(ctx context.Context, req *connect.Request[api_gen.EstimateGasFeeRequest]) (*connect.Response[api_gen.EstimateGasFeeResponse], error) { + var tx std.Tx + if err := amino.UnmarshalJSON([]byte(req.Msg.TxJson), &tx); err != nil { + return nil, err + } + + gasWanted, err := s.estimateGasWanted(&tx, req.Msg.Address, req.Msg.GasSecurityMargin, req.Msg.UpdateTx) + if err != nil { + return nil, getGrpcError(err) + } + + txJSON, err := amino.MarshalJSON(tx) if err != nil { return nil, err } + c, err := s.getClient(nil) + if err != nil { + return nil, getGrpcError(err) + } + + // Imitate gnokey CLI https://github.com/gnolang/gno/blob/de4b5b56c60126373ec0702234c196fdae365a0b/tm2/pkg/crypto/keys/client/broadcast.go#L142 + qres, err := c.Query(gnoclient.QueryCfg{Path: "auth/gasprice", Data: []byte{}}) + if err != nil { + return nil, getGrpcError(err) + } + gp := std.GasPrice{} + err = amino.UnmarshalJSON(qres.Response.Data, &gp) + if err != nil { + return nil, getGrpcError(err) + } + if gp.Gas == 0 { + // Can't get the gas price from the node + // TODO: Use a better error code + return nil, api_gen.ErrCode_ErrInvalidCoins + } + if gp.Price.Denom != "ugnot" { + return nil, api_gen.ErrCode_ErrInvalidCoins + } + fee := gasWanted/gp.Gas + 1 + fee = overflow.Mulp(fee, gp.Price.Amount) + // fee buffer to cover the sudden change of gas price + feeBuffer := float64(req.Msg.PriceSecurityMargin) / 100 + fee = int64(float64(fee) * feeBuffer) + + return connect.NewResponse(&api_gen.EstimateGasFeeResponse{ + TxJson: string(txJSON), + GasWanted: gasWanted, + Fee: &api_gen.Coin{ + Denom: "ugnot", + Amount: fee, + }}), nil +} + +// estimateGasWanted is a helper for EstimateGas, etc. Use the tx and address to call gnoclient.EstimateGas, then +// multiply it by securityMarginPercent/100 and return the gas wanted. If updateTx is true, then update tx.Fee.GasWanted . +func (s *gnoNativeService) estimateGasWanted(tx *std.Tx, address []byte, securityMarginPercent uint32, updateTx bool) (int64, error) { + signer, err := s.getSigner(address) + if err != nil { + return 0, err + } + info, err := signer.Info() + if err != nil { + return 0, err + } + // Set the tx signature using the public key. No need to sign to get the actual signature bytes. tx.Signatures = []std.Signature{ {PubKey: info.GetPubKey()}, @@ -717,29 +788,24 @@ func (s *gnoNativeService) EstimateGas(ctx context.Context, req *connect.Request c, err := s.getClient(nil) if err != nil { - return nil, getGrpcError(err) + return 0, getGrpcError(err) } - amount, err := c.EstimateGas(&tx) + amount, err := c.EstimateGas(tx) if err != nil { - return nil, getGrpcError(err) + return 0, getGrpcError(err) } // Apply the security margin. // The security margin is a decimal numeral without the decimal seprator. - gasWanted := int64(float64(amount) * float64(req.Msg.SecurityMargin) / 100) + gasWanted := int64(float64(amount) * float64(securityMarginPercent) / 100) // Update the transaction - if req.Msg.UpdateTx { + if updateTx { tx.Fee.GasWanted = gasWanted } - txJSON, err := amino.MarshalJSON(tx) - if err != nil { - return nil, err - } - - return connect.NewResponse(&api_gen.EstimateGasResponse{TxJson: string(txJSON), GasWanted: gasWanted}), nil + return gasWanted, nil } func (s *gnoNativeService) BroadcastTxCommit(ctx context.Context, req *connect.Request[api_gen.BroadcastTxCommitRequest],