Skip to content

Commit 91cacb8

Browse files
authored
feat: Add estimateTxFees (#213)
Similar to code [in the gnokey CLI](https://github.com/gnolang/gno/blob/de4b5b56c60126373ec0702234c196fdae365a0b/tm2/pkg/crypto/keys/client/broadcast.go#L142), we add an API function `estimateTxFees` to estimate gas and storage fees. * In gnonativetypes.go, add `EstimateTxFeesRequest` and `EstimateTxFeesResponse` * In rpc.proto, add `EstimateTxFees` * Run `make regenerate` * In api.go, refactor out the helper `estimateGasWanted` from `EstimateGas`. Add `EstimateTxFees` * In expo/src/api, add estimateTxFees Tested in Gnokey Mobile with: ``` const { txJson, gasWanted, gasFee, storageDelta, storageFee, totalFee } = await gnonative.estimateTxFees(txJsonInput, keyinfo?.address, 110, 110, true) ``` Signed-off-by: Jeff Thompson <[email protected]>
1 parent ac2b4db commit 91cacb8

File tree

18 files changed

+1808
-464
lines changed

18 files changed

+1808
-464
lines changed

api/gen/csharp/Gnonativetypes.cs

Lines changed: 861 additions & 156 deletions
Large diffs are not rendered by default.

api/gen/csharp/Rpc.cs

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ static RpcReflection() {
4545
"ARIZChRFcnJUb29NYW55U2lnbmF0dXJlcxDWARIUCg9FcnJOb1NpZ25hdHVy",
4646
"ZXMQ1wESEwoORXJyR2FzT3ZlcmZsb3cQ2AESFgoRRXJySW52YWxpZFBrZ1Bh",
4747
"dGgQ2QESEwoORXJySW52YWxpZFN0bXQQ2gESEwoORXJySW52YWxpZEV4cHIQ",
48-
"2wEyuyAKEEdub05hdGl2ZVNlcnZpY2USXgoJU2V0UmVtb3RlEicubGFuZC5n",
48+
"2wEyqiEKEEdub05hdGl2ZVNlcnZpY2USXgoJU2V0UmVtb3RlEicubGFuZC5n",
4949
"bm8uZ25vbmF0aXZlLnYxLlNldFJlbW90ZVJlcXVlc3QaKC5sYW5kLmduby5n",
5050
"bm9uYXRpdmUudjEuU2V0UmVtb3RlUmVzcG9uc2USXgoJR2V0UmVtb3RlEicu",
5151
"bGFuZC5nbm8uZ25vbmF0aXZlLnYxLkdldFJlbW90ZVJlcXVlc3QaKC5sYW5k",
@@ -114,31 +114,34 @@ static RpcReflection() {
114114
"Z25vLmdub25hdGl2ZS52MS5SdW5SZXF1ZXN0GiUubGFuZC5nbm8uZ25vbmF0",
115115
"aXZlLnYxLk1ha2VUeFJlc3BvbnNlEmQKC0VzdGltYXRlR2FzEikubGFuZC5n",
116116
"bm8uZ25vbmF0aXZlLnYxLkVzdGltYXRlR2FzUmVxdWVzdBoqLmxhbmQuZ25v",
117-
"Lmdub25hdGl2ZS52MS5Fc3RpbWF0ZUdhc1Jlc3BvbnNlElUKBlNpZ25UeBIk",
118-
"LmxhbmQuZ25vLmdub25hdGl2ZS52MS5TaWduVHhSZXF1ZXN0GiUubGFuZC5n",
119-
"bm8uZ25vbmF0aXZlLnYxLlNpZ25UeFJlc3BvbnNlEngKEUJyb2FkY2FzdFR4",
120-
"Q29tbWl0Ei8ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkJyb2FkY2FzdFR4Q29t",
121-
"bWl0UmVxdWVzdBowLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Ccm9hZGNhc3RU",
122-
"eENvbW1pdFJlc3BvbnNlMAEScAoPQWRkcmVzc1RvQmVjaDMyEi0ubGFuZC5n",
123-
"bm8uZ25vbmF0aXZlLnYxLkFkZHJlc3NUb0JlY2gzMlJlcXVlc3QaLi5sYW5k",
124-
"Lmduby5nbm9uYXRpdmUudjEuQWRkcmVzc1RvQmVjaDMyUmVzcG9uc2USdgoR",
125-
"QWRkcmVzc0Zyb21CZWNoMzISLy5sYW5kLmduby5nbm9uYXRpdmUudjEuQWRk",
126-
"cmVzc0Zyb21CZWNoMzJSZXF1ZXN0GjAubGFuZC5nbm8uZ25vbmF0aXZlLnYx",
127-
"LkFkZHJlc3NGcm9tQmVjaDMyUmVzcG9uc2USfAoTQWRkcmVzc0Zyb21NbmVt",
128-
"b25pYxIxLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BZGRyZXNzRnJvbU1uZW1v",
129-
"bmljUmVxdWVzdBoyLmxhbmQuZ25vLmdub25hdGl2ZS52MS5BZGRyZXNzRnJv",
130-
"bU1uZW1vbmljUmVzcG9uc2USfwoUVmFsaWRhdGVNbmVtb25pY1dvcmQSMi5s",
131-
"YW5kLmduby5nbm9uYXRpdmUudjEuVmFsaWRhdGVNbmVtb25pY1dvcmRSZXF1",
132-
"ZXN0GjMubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlZhbGlkYXRlTW5lbW9uaWNX",
133-
"b3JkUmVzcG9uc2UShQEKFlZhbGlkYXRlTW5lbW9uaWNQaHJhc2USNC5sYW5k",
134-
"Lmduby5nbm9uYXRpdmUudjEuVmFsaWRhdGVNbmVtb25pY1BocmFzZVJlcXVl",
135-
"c3QaNS5sYW5kLmduby5nbm9uYXRpdmUudjEuVmFsaWRhdGVNbmVtb25pY1Bo",
136-
"cmFzZVJlc3BvbnNlElIKBUhlbGxvEiMubGFuZC5nbm8uZ25vbmF0aXZlLnYx",
137-
"LkhlbGxvUmVxdWVzdBokLmxhbmQuZ25vLmdub25hdGl2ZS52MS5IZWxsb1Jl",
138-
"c3BvbnNlEmYKC0hlbGxvU3RyZWFtEikubGFuZC5nbm8uZ25vbmF0aXZlLnYx",
139-
"LkhlbGxvU3RyZWFtUmVxdWVzdBoqLmxhbmQuZ25vLmdub25hdGl2ZS52MS5I",
140-
"ZWxsb1N0cmVhbVJlc3BvbnNlMAFCMloqZ2l0aHViLmNvbS9nbm9sYW5nL2du",
141-
"b25hdGl2ZS92NC9hcGkvZ2VuL2dvogIDUlRHYgZwcm90bzM="));
117+
"Lmdub25hdGl2ZS52MS5Fc3RpbWF0ZUdhc1Jlc3BvbnNlEm0KDkVzdGltYXRl",
118+
"VHhGZWVzEiwubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkVzdGltYXRlVHhGZWVz",
119+
"UmVxdWVzdBotLmxhbmQuZ25vLmdub25hdGl2ZS52MS5Fc3RpbWF0ZVR4RmVl",
120+
"c1Jlc3BvbnNlElUKBlNpZ25UeBIkLmxhbmQuZ25vLmdub25hdGl2ZS52MS5T",
121+
"aWduVHhSZXF1ZXN0GiUubGFuZC5nbm8uZ25vbmF0aXZlLnYxLlNpZ25UeFJl",
122+
"c3BvbnNlEngKEUJyb2FkY2FzdFR4Q29tbWl0Ei8ubGFuZC5nbm8uZ25vbmF0",
123+
"aXZlLnYxLkJyb2FkY2FzdFR4Q29tbWl0UmVxdWVzdBowLmxhbmQuZ25vLmdu",
124+
"b25hdGl2ZS52MS5Ccm9hZGNhc3RUeENvbW1pdFJlc3BvbnNlMAEScAoPQWRk",
125+
"cmVzc1RvQmVjaDMyEi0ubGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFkZHJlc3NU",
126+
"b0JlY2gzMlJlcXVlc3QaLi5sYW5kLmduby5nbm9uYXRpdmUudjEuQWRkcmVz",
127+
"c1RvQmVjaDMyUmVzcG9uc2USdgoRQWRkcmVzc0Zyb21CZWNoMzISLy5sYW5k",
128+
"Lmduby5nbm9uYXRpdmUudjEuQWRkcmVzc0Zyb21CZWNoMzJSZXF1ZXN0GjAu",
129+
"bGFuZC5nbm8uZ25vbmF0aXZlLnYxLkFkZHJlc3NGcm9tQmVjaDMyUmVzcG9u",
130+
"c2USfAoTQWRkcmVzc0Zyb21NbmVtb25pYxIxLmxhbmQuZ25vLmdub25hdGl2",
131+
"ZS52MS5BZGRyZXNzRnJvbU1uZW1vbmljUmVxdWVzdBoyLmxhbmQuZ25vLmdu",
132+
"b25hdGl2ZS52MS5BZGRyZXNzRnJvbU1uZW1vbmljUmVzcG9uc2USfwoUVmFs",
133+
"aWRhdGVNbmVtb25pY1dvcmQSMi5sYW5kLmduby5nbm9uYXRpdmUudjEuVmFs",
134+
"aWRhdGVNbmVtb25pY1dvcmRSZXF1ZXN0GjMubGFuZC5nbm8uZ25vbmF0aXZl",
135+
"LnYxLlZhbGlkYXRlTW5lbW9uaWNXb3JkUmVzcG9uc2UShQEKFlZhbGlkYXRl",
136+
"TW5lbW9uaWNQaHJhc2USNC5sYW5kLmduby5nbm9uYXRpdmUudjEuVmFsaWRh",
137+
"dGVNbmVtb25pY1BocmFzZVJlcXVlc3QaNS5sYW5kLmduby5nbm9uYXRpdmUu",
138+
"djEuVmFsaWRhdGVNbmVtb25pY1BocmFzZVJlc3BvbnNlElIKBUhlbGxvEiMu",
139+
"bGFuZC5nbm8uZ25vbmF0aXZlLnYxLkhlbGxvUmVxdWVzdBokLmxhbmQuZ25v",
140+
"Lmdub25hdGl2ZS52MS5IZWxsb1Jlc3BvbnNlEmYKC0hlbGxvU3RyZWFtEiku",
141+
"bGFuZC5nbm8uZ25vbmF0aXZlLnYxLkhlbGxvU3RyZWFtUmVxdWVzdBoqLmxh",
142+
"bmQuZ25vLmdub25hdGl2ZS52MS5IZWxsb1N0cmVhbVJlc3BvbnNlMAFCMloq",
143+
"Z2l0aHViLmNvbS9nbm9sYW5nL2dub25hdGl2ZS92NC9hcGkvZ2VuL2dvogID",
144+
"UlRHYgZwcm90bzM="));
142145
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
143146
new pbr::FileDescriptor[] { global::Land.Gno.Gnonative.V1.GnonativetypesReflection.Descriptor, },
144147
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Land.Gno.Gnonative.V1.ErrCode), }, null, new pbr::GeneratedClrTypeInfo[] {

0 commit comments

Comments
 (0)