Skip to content

Commit e4c8952

Browse files
authored
fix: Change call send amount to be an array of Coin (#193)
The gnoclient API uses `MsgCall` where the send amount is an [array of `Coin`](https://github.com/gnolang/gno/blob/287c22ec830a1408f1d3de6319602640d841c7cc/gno.land/pkg/sdk/vm/msgs.go#L87). A `Coin` is a struct with [separate fields for Denom and Amount.](https://github.com/gnolang/gno/blob/287c22ec830a1408f1d3de6319602640d841c7cc/tm2/pkg/std/coin.go#L19) However, the Gno Native Kit API uses a string such as "1000ugnot" (from the original version of gnoclient). Similar to PR #191 for `MsgSend`, we want to track the current gnoclient API. This PR has three commits: 1. Update go.mod to use the latest gnokey-mobile. This allows gnonative to compile after updating to the latest gnolang/gno. 2. Change the Protobuf `MsgCall` to use an array of `Coin` for the Send amount. (The Protobuf `Coin` type was already defined.) Run `make regenerate` to make the native interfaces. Update `gnoNativeService.convertCallRequest` to use the `Coin` struct, similar to the previous change to [convertSendRequest](https://github.com/gnolang/gnonative/blob/c0f18fd181ae3bc2159090c5199f4725216f9800/service/api.go#L591-L594). Run `npm install @gnolang/gnonative` to install the new API on buf.build. 3. In expo, update package.json to use the updated bufbuild_es types. Update `call` and `makeCallTx` to take an array of `Coin`. BREAKING CHANGE: The only code which currently uses the Send amount in MsgCall is where [gnokey-mobile calls "Register"](https://github.com/gnolang/gnokey-mobile/blob/f1dc64684f110f71c0465c6a815b2f1b745800e9/mobile/redux/features/signupSlice.ts#L218). After we merge this PR, we will update gnokey-mobile. --------- Signed-off-by: Jeff Thompson <[email protected]>
1 parent c0f18fd commit e4c8952

14 files changed

+200
-206
lines changed

api/gen/csharp/Gnonativetypes.cs

+56-67
Original file line numberDiff line numberDiff line change
@@ -92,49 +92,49 @@ static GnonativetypesReflection() {
9292
"c2USFgoGcmVzdWx0GAEgASgJUgZyZXN1bHQiUQoMUUV2YWxSZXF1ZXN0EiEK",
9393
"DHBhY2thZ2VfcGF0aBgBIAEoCVILcGFja2FnZVBhdGgSHgoKZXhwcmVzc2lv",
9494
"bhgCIAEoCVIKZXhwcmVzc2lvbiInCg1RRXZhbFJlc3BvbnNlEhYKBnJlc3Vs",
95-
"dBgBIAEoCVIGcmVzdWx0ImYKB01zZ0NhbGwSIQoMcGFja2FnZV9wYXRoGAEg",
96-
"ASgJUgtwYWNrYWdlUGF0aBIQCgNmbmMYAiABKAlSA2ZuYxISCgRhcmdzGAMg",
97-
"AygJUgRhcmdzEhIKBHNlbmQYBCABKAlSBHNlbmQitAEKC0NhbGxSZXF1ZXN0",
98-
"EhcKB2dhc19mZWUYASABKAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIgASgS",
99-
"UglnYXNXYW50ZWQSEgoEbWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJfYWRk",
100-
"cmVzcxgEIAEoDFINY2FsbGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4ubGFu",
101-
"ZC5nbm8uZ25vbmF0aXZlLnYxLk1zZ0NhbGxSBE1zZ3MiJgoMQ2FsbFJlc3Bv",
102-
"bnNlEhYKBnJlc3VsdBgBIAEoDFIGcmVzdWx0Il0KB01zZ1NlbmQSHQoKdG9f",
103-
"YWRkcmVzcxgBIAEoDFIJdG9BZGRyZXNzEjMKBmFtb3VudBgCIAMoCzIbLmxh",
104-
"bmQuZ25vLmdub25hdGl2ZS52MS5Db2luUgZhbW91bnQitAEKC1NlbmRSZXF1",
105-
"ZXN0EhcKB2dhc19mZWUYASABKAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIg",
106-
"ASgSUglnYXNXYW50ZWQSEgoEbWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJf",
107-
"YWRkcmVzcxgEIAEoDFINY2FsbGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4u",
108-
"bGFuZC5nbm8uZ25vbmF0aXZlLnYxLk1zZ1NlbmRSBE1zZ3MiDgoMU2VuZFJl",
109-
"c3BvbnNlIjYKBk1zZ1J1bhIYCgdwYWNrYWdlGAEgASgJUgdwYWNrYWdlEhIK",
110-
"BHNlbmQYAiABKAlSBHNlbmQisgEKClJ1blJlcXVlc3QSFwoHZ2FzX2ZlZRgB",
111-
"IAEoCVIGZ2FzRmVlEh0KCmdhc193YW50ZWQYAiABKBJSCWdhc1dhbnRlZBIS",
112-
"CgRtZW1vGAMgASgJUgRtZW1vEiUKDmNhbGxlcl9hZGRyZXNzGAQgASgMUg1j",
113-
"YWxsZXJBZGRyZXNzEjEKBG1zZ3MYBSADKAsyHS5sYW5kLmduby5nbm9uYXRp",
114-
"dmUudjEuTXNnUnVuUgRNc2dzIiUKC1J1blJlc3BvbnNlEhYKBnJlc3VsdBgB",
115-
"IAEoCVIGcmVzdWx0IikKDk1ha2VUeFJlc3BvbnNlEhcKB3R4X2pzb24YASAB",
116-
"KAlSBnR4SnNvbiKSAQoNU2lnblR4UmVxdWVzdBIXCgd0eF9qc29uGAEgASgJ",
117-
"UgZ0eEpzb24SGAoHYWRkcmVzcxgCIAEoDFIHYWRkcmVzcxIlCg5hY2NvdW50",
118-
"X251bWJlchgDIAEoBFINYWNjb3VudE51bWJlchInCg9zZXF1ZW5jZV9udW1i",
119-
"ZXIYBCABKARSDnNlcXVlbmNlTnVtYmVyIjEKDlNpZ25UeFJlc3BvbnNlEh8K",
120-
"DnNpZ25lZF90eF9qc29uGAEgASgJUgd0eF9qc29uIjsKGEJyb2FkY2FzdFR4",
121-
"Q29tbWl0UmVxdWVzdBIfCg5zaWduZWRfdHhfanNvbhgBIAEoCVIHdHhfanNv",
122-
"biIzChlCcm9hZGNhc3RUeENvbW1pdFJlc3BvbnNlEhYKBnJlc3VsdBgBIAEo",
123-
"DFIGcmVzdWx0IjIKFkFkZHJlc3NUb0JlY2gzMlJlcXVlc3QSGAoHYWRkcmVz",
124-
"cxgBIAEoDFIHYWRkcmVzcyJAChdBZGRyZXNzVG9CZWNoMzJSZXNwb25zZRIl",
125-
"Cg5iZWNoMzJfYWRkcmVzcxgBIAEoCVINYmVjaDMyQWRkcmVzcyJBChhBZGRy",
126-
"ZXNzRnJvbUJlY2gzMlJlcXVlc3QSJQoOYmVjaDMyX2FkZHJlc3MYASABKAlS",
127-
"DWJlY2gzMkFkZHJlc3MiNQoZQWRkcmVzc0Zyb21CZWNoMzJSZXNwb25zZRIY",
128-
"CgdhZGRyZXNzGAEgASgMUgdhZGRyZXNzIjgKGkFkZHJlc3NGcm9tTW5lbW9u",
129-
"aWNSZXF1ZXN0EhoKCG1uZW1vbmljGAEgASgJUghtbmVtb25pYyI3ChtBZGRy",
130-
"ZXNzRnJvbU1uZW1vbmljUmVzcG9uc2USGAoHYWRkcmVzcxgBIAEoDFIHYWRk",
131-
"cmVzcyIiCgxIZWxsb1JlcXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIrCg1I",
132-
"ZWxsb1Jlc3BvbnNlEhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIoChJI",
133-
"ZWxsb1N0cmVhbVJlcXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIxChNIZWxs",
134-
"b1N0cmVhbVJlc3BvbnNlEhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIw",
135-
"ChhHTk9OQVRJVkVUWVBFU19CeXRlc0xpc3QSFAoFVmFsdWUYASADKAxSBVZh",
136-
"bHVlQilaJ2dpdGh1Yi5jb20vZ25vbGFuZy9nbm9uYXRpdmUvYXBpL2dlbi9n",
137-
"b2IGcHJvdG8z"));
95+
"dBgBIAEoCVIGcmVzdWx0IoMBCgdNc2dDYWxsEiEKDHBhY2thZ2VfcGF0aBgB",
96+
"IAEoCVILcGFja2FnZVBhdGgSEAoDZm5jGAIgASgJUgNmbmMSEgoEYXJncxgD",
97+
"IAMoCVIEYXJncxIvCgRzZW5kGAQgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZl",
98+
"LnYxLkNvaW5SBHNlbmQitAEKC0NhbGxSZXF1ZXN0EhcKB2dhc19mZWUYASAB",
99+
"KAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIgASgSUglnYXNXYW50ZWQSEgoE",
100+
"bWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJfYWRkcmVzcxgEIAEoDFINY2Fs",
101+
"bGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4ubGFuZC5nbm8uZ25vbmF0aXZl",
102+
"LnYxLk1zZ0NhbGxSBE1zZ3MiJgoMQ2FsbFJlc3BvbnNlEhYKBnJlc3VsdBgB",
103+
"IAEoDFIGcmVzdWx0Il0KB01zZ1NlbmQSHQoKdG9fYWRkcmVzcxgBIAEoDFIJ",
104+
"dG9BZGRyZXNzEjMKBmFtb3VudBgCIAMoCzIbLmxhbmQuZ25vLmdub25hdGl2",
105+
"ZS52MS5Db2luUgZhbW91bnQitAEKC1NlbmRSZXF1ZXN0EhcKB2dhc19mZWUY",
106+
"ASABKAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIgASgSUglnYXNXYW50ZWQS",
107+
"EgoEbWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJfYWRkcmVzcxgEIAEoDFIN",
108+
"Y2FsbGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4ubGFuZC5nbm8uZ25vbmF0",
109+
"aXZlLnYxLk1zZ1NlbmRSBE1zZ3MiDgoMU2VuZFJlc3BvbnNlIjYKBk1zZ1J1",
110+
"bhIYCgdwYWNrYWdlGAEgASgJUgdwYWNrYWdlEhIKBHNlbmQYAiABKAlSBHNl",
111+
"bmQisgEKClJ1blJlcXVlc3QSFwoHZ2FzX2ZlZRgBIAEoCVIGZ2FzRmVlEh0K",
112+
"Cmdhc193YW50ZWQYAiABKBJSCWdhc1dhbnRlZBISCgRtZW1vGAMgASgJUgRt",
113+
"ZW1vEiUKDmNhbGxlcl9hZGRyZXNzGAQgASgMUg1jYWxsZXJBZGRyZXNzEjEK",
114+
"BG1zZ3MYBSADKAsyHS5sYW5kLmduby5nbm9uYXRpdmUudjEuTXNnUnVuUgRN",
115+
"c2dzIiUKC1J1blJlc3BvbnNlEhYKBnJlc3VsdBgBIAEoCVIGcmVzdWx0IikK",
116+
"Dk1ha2VUeFJlc3BvbnNlEhcKB3R4X2pzb24YASABKAlSBnR4SnNvbiKSAQoN",
117+
"U2lnblR4UmVxdWVzdBIXCgd0eF9qc29uGAEgASgJUgZ0eEpzb24SGAoHYWRk",
118+
"cmVzcxgCIAEoDFIHYWRkcmVzcxIlCg5hY2NvdW50X251bWJlchgDIAEoBFIN",
119+
"YWNjb3VudE51bWJlchInCg9zZXF1ZW5jZV9udW1iZXIYBCABKARSDnNlcXVl",
120+
"bmNlTnVtYmVyIjEKDlNpZ25UeFJlc3BvbnNlEh8KDnNpZ25lZF90eF9qc29u",
121+
"GAEgASgJUgd0eF9qc29uIjsKGEJyb2FkY2FzdFR4Q29tbWl0UmVxdWVzdBIf",
122+
"Cg5zaWduZWRfdHhfanNvbhgBIAEoCVIHdHhfanNvbiIzChlCcm9hZGNhc3RU",
123+
"eENvbW1pdFJlc3BvbnNlEhYKBnJlc3VsdBgBIAEoDFIGcmVzdWx0IjIKFkFk",
124+
"ZHJlc3NUb0JlY2gzMlJlcXVlc3QSGAoHYWRkcmVzcxgBIAEoDFIHYWRkcmVz",
125+
"cyJAChdBZGRyZXNzVG9CZWNoMzJSZXNwb25zZRIlCg5iZWNoMzJfYWRkcmVz",
126+
"cxgBIAEoCVINYmVjaDMyQWRkcmVzcyJBChhBZGRyZXNzRnJvbUJlY2gzMlJl",
127+
"cXVlc3QSJQoOYmVjaDMyX2FkZHJlc3MYASABKAlSDWJlY2gzMkFkZHJlc3Mi",
128+
"NQoZQWRkcmVzc0Zyb21CZWNoMzJSZXNwb25zZRIYCgdhZGRyZXNzGAEgASgM",
129+
"UgdhZGRyZXNzIjgKGkFkZHJlc3NGcm9tTW5lbW9uaWNSZXF1ZXN0EhoKCG1u",
130+
"ZW1vbmljGAEgASgJUghtbmVtb25pYyI3ChtBZGRyZXNzRnJvbU1uZW1vbmlj",
131+
"UmVzcG9uc2USGAoHYWRkcmVzcxgBIAEoDFIHYWRkcmVzcyIiCgxIZWxsb1Jl",
132+
"cXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIrCg1IZWxsb1Jlc3BvbnNlEhoK",
133+
"CGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIoChJIZWxsb1N0cmVhbVJlcXVl",
134+
"c3QSEgoEbmFtZRgBIAEoCVIETmFtZSIxChNIZWxsb1N0cmVhbVJlc3BvbnNl",
135+
"EhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIwChhHTk9OQVRJVkVUWVBF",
136+
"U19CeXRlc0xpc3QSFAoFVmFsdWUYASADKAxSBVZhbHVlQilaJ2dpdGh1Yi5j",
137+
"b20vZ25vbGFuZy9nbm9uYXRpdmUvYXBpL2dlbi9nb2IGcHJvdG8z"));
138138
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
139139
new pbr::FileDescriptor[] { },
140140
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
@@ -10120,7 +10120,7 @@ public MsgCall(MsgCall other) : this() {
1012010120
packagePath_ = other.packagePath_;
1012110121
fnc_ = other.fnc_;
1012210122
args_ = other.args_.Clone();
10123-
send_ = other.send_;
10123+
send_ = other.send_.Clone();
1012410124
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1012510125
}
1012610126

@@ -10177,14 +10177,13 @@ public string Fnc {
1017710177

1017810178
/// <summary>Field number for the "send" field.</summary>
1017910179
public const int SendFieldNumber = 4;
10180-
private string send_ = "";
10180+
private static readonly pb::FieldCodec<global::Land.Gno.Gnonative.V1.Coin> _repeated_send_codec
10181+
= pb::FieldCodec.ForMessage(34, global::Land.Gno.Gnonative.V1.Coin.Parser);
10182+
private readonly pbc::RepeatedField<global::Land.Gno.Gnonative.V1.Coin> send_ = new pbc::RepeatedField<global::Land.Gno.Gnonative.V1.Coin>();
1018110183
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1018210184
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10183-
public string Send {
10185+
public pbc::RepeatedField<global::Land.Gno.Gnonative.V1.Coin> Send {
1018410186
get { return send_; }
10185-
set {
10186-
send_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
10187-
}
1018810187
}
1018910188

1019010189
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -10205,7 +10204,7 @@ public bool Equals(MsgCall other) {
1020510204
if (PackagePath != other.PackagePath) return false;
1020610205
if (Fnc != other.Fnc) return false;
1020710206
if(!args_.Equals(other.args_)) return false;
10208-
if (Send != other.Send) return false;
10207+
if(!send_.Equals(other.send_)) return false;
1020910208
return Equals(_unknownFields, other._unknownFields);
1021010209
}
1021110210

@@ -10216,7 +10215,7 @@ public override int GetHashCode() {
1021610215
if (PackagePath.Length != 0) hash ^= PackagePath.GetHashCode();
1021710216
if (Fnc.Length != 0) hash ^= Fnc.GetHashCode();
1021810217
hash ^= args_.GetHashCode();
10219-
if (Send.Length != 0) hash ^= Send.GetHashCode();
10218+
hash ^= send_.GetHashCode();
1022010219
if (_unknownFields != null) {
1022110220
hash ^= _unknownFields.GetHashCode();
1022210221
}
@@ -10244,10 +10243,7 @@ public void WriteTo(pb::CodedOutputStream output) {
1024410243
output.WriteString(Fnc);
1024510244
}
1024610245
args_.WriteTo(output, _repeated_args_codec);
10247-
if (Send.Length != 0) {
10248-
output.WriteRawTag(34);
10249-
output.WriteString(Send);
10250-
}
10246+
send_.WriteTo(output, _repeated_send_codec);
1025110247
if (_unknownFields != null) {
1025210248
_unknownFields.WriteTo(output);
1025310249
}
@@ -10267,10 +10263,7 @@ public void WriteTo(pb::CodedOutputStream output) {
1026710263
output.WriteString(Fnc);
1026810264
}
1026910265
args_.WriteTo(ref output, _repeated_args_codec);
10270-
if (Send.Length != 0) {
10271-
output.WriteRawTag(34);
10272-
output.WriteString(Send);
10273-
}
10266+
send_.WriteTo(ref output, _repeated_send_codec);
1027410267
if (_unknownFields != null) {
1027510268
_unknownFields.WriteTo(ref output);
1027610269
}
@@ -10288,9 +10281,7 @@ public int CalculateSize() {
1028810281
size += 1 + pb::CodedOutputStream.ComputeStringSize(Fnc);
1028910282
}
1029010283
size += args_.CalculateSize(_repeated_args_codec);
10291-
if (Send.Length != 0) {
10292-
size += 1 + pb::CodedOutputStream.ComputeStringSize(Send);
10293-
}
10284+
size += send_.CalculateSize(_repeated_send_codec);
1029410285
if (_unknownFields != null) {
1029510286
size += _unknownFields.CalculateSize();
1029610287
}
@@ -10310,9 +10301,7 @@ public void MergeFrom(MsgCall other) {
1031010301
Fnc = other.Fnc;
1031110302
}
1031210303
args_.Add(other.args_);
10313-
if (other.Send.Length != 0) {
10314-
Send = other.Send;
10315-
}
10304+
send_.Add(other.send_);
1031610305
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1031710306
}
1031810307

@@ -10345,7 +10334,7 @@ public void MergeFrom(pb::CodedInputStream input) {
1034510334
break;
1034610335
}
1034710336
case 34: {
10348-
Send = input.ReadString();
10337+
send_.AddEntriesFrom(input, _repeated_send_codec);
1034910338
break;
1035010339
}
1035110340
}
@@ -10380,7 +10369,7 @@ public void MergeFrom(pb::CodedInputStream input) {
1038010369
break;
1038110370
}
1038210371
case 34: {
10383-
Send = input.ReadString();
10372+
send_.AddEntriesFrom(ref input, _repeated_send_codec);
1038410373
break;
1038510374
}
1038610375
}

api/gen/es/gnonativetypes_pb.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1259,9 +1259,9 @@ export declare class MsgCall extends Message<MsgCall> {
12591259
args: string[];
12601260

12611261
/**
1262-
* @generated from field: string send = 4;
1262+
* @generated from field: repeated land.gno.gnonative.v1.Coin send = 4;
12631263
*/
1264-
send: string;
1264+
send: Coin[];
12651265

12661266
constructor(data?: PartialMessage<MsgCall>);
12671267

api/gen/es/gnonativetypes_pb.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ export const MsgCall = proto3.makeMessageType(
493493
{ no: 1, name: "package_path", kind: "scalar", T: 9 /* ScalarType.STRING */ },
494494
{ no: 2, name: "fnc", kind: "scalar", T: 9 /* ScalarType.STRING */ },
495495
{ no: 3, name: "args", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
496-
{ no: 4, name: "send", kind: "scalar", T: 9 /* ScalarType.STRING */ },
496+
{ no: 4, name: "send", kind: "message", T: Coin, repeated: true },
497497
],
498498
);
499499

0 commit comments

Comments
 (0)