Skip to content

Commit

Permalink
fix: Change call send amount to be an array of Coin (#193)
Browse files Browse the repository at this point in the history
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]>
  • Loading branch information
jefft0 authored Oct 30, 2024
1 parent c0f18fd commit e4c8952
Show file tree
Hide file tree
Showing 14 changed files with 200 additions and 206 deletions.
123 changes: 56 additions & 67 deletions api/gen/csharp/Gnonativetypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,49 +92,49 @@ static GnonativetypesReflection() {
"c2USFgoGcmVzdWx0GAEgASgJUgZyZXN1bHQiUQoMUUV2YWxSZXF1ZXN0EiEK",
"DHBhY2thZ2VfcGF0aBgBIAEoCVILcGFja2FnZVBhdGgSHgoKZXhwcmVzc2lv",
"bhgCIAEoCVIKZXhwcmVzc2lvbiInCg1RRXZhbFJlc3BvbnNlEhYKBnJlc3Vs",
"dBgBIAEoCVIGcmVzdWx0ImYKB01zZ0NhbGwSIQoMcGFja2FnZV9wYXRoGAEg",
"ASgJUgtwYWNrYWdlUGF0aBIQCgNmbmMYAiABKAlSA2ZuYxISCgRhcmdzGAMg",
"AygJUgRhcmdzEhIKBHNlbmQYBCABKAlSBHNlbmQitAEKC0NhbGxSZXF1ZXN0",
"EhcKB2dhc19mZWUYASABKAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIgASgS",
"UglnYXNXYW50ZWQSEgoEbWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJfYWRk",
"cmVzcxgEIAEoDFINY2FsbGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4ubGFu",
"ZC5nbm8uZ25vbmF0aXZlLnYxLk1zZ0NhbGxSBE1zZ3MiJgoMQ2FsbFJlc3Bv",
"bnNlEhYKBnJlc3VsdBgBIAEoDFIGcmVzdWx0Il0KB01zZ1NlbmQSHQoKdG9f",
"YWRkcmVzcxgBIAEoDFIJdG9BZGRyZXNzEjMKBmFtb3VudBgCIAMoCzIbLmxh",
"bmQuZ25vLmdub25hdGl2ZS52MS5Db2luUgZhbW91bnQitAEKC1NlbmRSZXF1",
"ZXN0EhcKB2dhc19mZWUYASABKAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIg",
"ASgSUglnYXNXYW50ZWQSEgoEbWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJf",
"YWRkcmVzcxgEIAEoDFINY2FsbGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4u",
"bGFuZC5nbm8uZ25vbmF0aXZlLnYxLk1zZ1NlbmRSBE1zZ3MiDgoMU2VuZFJl",
"c3BvbnNlIjYKBk1zZ1J1bhIYCgdwYWNrYWdlGAEgASgJUgdwYWNrYWdlEhIK",
"BHNlbmQYAiABKAlSBHNlbmQisgEKClJ1blJlcXVlc3QSFwoHZ2FzX2ZlZRgB",
"IAEoCVIGZ2FzRmVlEh0KCmdhc193YW50ZWQYAiABKBJSCWdhc1dhbnRlZBIS",
"CgRtZW1vGAMgASgJUgRtZW1vEiUKDmNhbGxlcl9hZGRyZXNzGAQgASgMUg1j",
"YWxsZXJBZGRyZXNzEjEKBG1zZ3MYBSADKAsyHS5sYW5kLmduby5nbm9uYXRp",
"dmUudjEuTXNnUnVuUgRNc2dzIiUKC1J1blJlc3BvbnNlEhYKBnJlc3VsdBgB",
"IAEoCVIGcmVzdWx0IikKDk1ha2VUeFJlc3BvbnNlEhcKB3R4X2pzb24YASAB",
"KAlSBnR4SnNvbiKSAQoNU2lnblR4UmVxdWVzdBIXCgd0eF9qc29uGAEgASgJ",
"UgZ0eEpzb24SGAoHYWRkcmVzcxgCIAEoDFIHYWRkcmVzcxIlCg5hY2NvdW50",
"X251bWJlchgDIAEoBFINYWNjb3VudE51bWJlchInCg9zZXF1ZW5jZV9udW1i",
"ZXIYBCABKARSDnNlcXVlbmNlTnVtYmVyIjEKDlNpZ25UeFJlc3BvbnNlEh8K",
"DnNpZ25lZF90eF9qc29uGAEgASgJUgd0eF9qc29uIjsKGEJyb2FkY2FzdFR4",
"Q29tbWl0UmVxdWVzdBIfCg5zaWduZWRfdHhfanNvbhgBIAEoCVIHdHhfanNv",
"biIzChlCcm9hZGNhc3RUeENvbW1pdFJlc3BvbnNlEhYKBnJlc3VsdBgBIAEo",
"DFIGcmVzdWx0IjIKFkFkZHJlc3NUb0JlY2gzMlJlcXVlc3QSGAoHYWRkcmVz",
"cxgBIAEoDFIHYWRkcmVzcyJAChdBZGRyZXNzVG9CZWNoMzJSZXNwb25zZRIl",
"Cg5iZWNoMzJfYWRkcmVzcxgBIAEoCVINYmVjaDMyQWRkcmVzcyJBChhBZGRy",
"ZXNzRnJvbUJlY2gzMlJlcXVlc3QSJQoOYmVjaDMyX2FkZHJlc3MYASABKAlS",
"DWJlY2gzMkFkZHJlc3MiNQoZQWRkcmVzc0Zyb21CZWNoMzJSZXNwb25zZRIY",
"CgdhZGRyZXNzGAEgASgMUgdhZGRyZXNzIjgKGkFkZHJlc3NGcm9tTW5lbW9u",
"aWNSZXF1ZXN0EhoKCG1uZW1vbmljGAEgASgJUghtbmVtb25pYyI3ChtBZGRy",
"ZXNzRnJvbU1uZW1vbmljUmVzcG9uc2USGAoHYWRkcmVzcxgBIAEoDFIHYWRk",
"cmVzcyIiCgxIZWxsb1JlcXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIrCg1I",
"ZWxsb1Jlc3BvbnNlEhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIoChJI",
"ZWxsb1N0cmVhbVJlcXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIxChNIZWxs",
"b1N0cmVhbVJlc3BvbnNlEhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIw",
"ChhHTk9OQVRJVkVUWVBFU19CeXRlc0xpc3QSFAoFVmFsdWUYASADKAxSBVZh",
"bHVlQilaJ2dpdGh1Yi5jb20vZ25vbGFuZy9nbm9uYXRpdmUvYXBpL2dlbi9n",
"b2IGcHJvdG8z"));
"dBgBIAEoCVIGcmVzdWx0IoMBCgdNc2dDYWxsEiEKDHBhY2thZ2VfcGF0aBgB",
"IAEoCVILcGFja2FnZVBhdGgSEAoDZm5jGAIgASgJUgNmbmMSEgoEYXJncxgD",
"IAMoCVIEYXJncxIvCgRzZW5kGAQgAygLMhsubGFuZC5nbm8uZ25vbmF0aXZl",
"LnYxLkNvaW5SBHNlbmQitAEKC0NhbGxSZXF1ZXN0EhcKB2dhc19mZWUYASAB",
"KAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIgASgSUglnYXNXYW50ZWQSEgoE",
"bWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJfYWRkcmVzcxgEIAEoDFINY2Fs",
"bGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4ubGFuZC5nbm8uZ25vbmF0aXZl",
"LnYxLk1zZ0NhbGxSBE1zZ3MiJgoMQ2FsbFJlc3BvbnNlEhYKBnJlc3VsdBgB",
"IAEoDFIGcmVzdWx0Il0KB01zZ1NlbmQSHQoKdG9fYWRkcmVzcxgBIAEoDFIJ",
"dG9BZGRyZXNzEjMKBmFtb3VudBgCIAMoCzIbLmxhbmQuZ25vLmdub25hdGl2",
"ZS52MS5Db2luUgZhbW91bnQitAEKC1NlbmRSZXF1ZXN0EhcKB2dhc19mZWUY",
"ASABKAlSBmdhc0ZlZRIdCgpnYXNfd2FudGVkGAIgASgSUglnYXNXYW50ZWQS",
"EgoEbWVtbxgDIAEoCVIEbWVtbxIlCg5jYWxsZXJfYWRkcmVzcxgEIAEoDFIN",
"Y2FsbGVyQWRkcmVzcxIyCgRtc2dzGAUgAygLMh4ubGFuZC5nbm8uZ25vbmF0",
"aXZlLnYxLk1zZ1NlbmRSBE1zZ3MiDgoMU2VuZFJlc3BvbnNlIjYKBk1zZ1J1",
"bhIYCgdwYWNrYWdlGAEgASgJUgdwYWNrYWdlEhIKBHNlbmQYAiABKAlSBHNl",
"bmQisgEKClJ1blJlcXVlc3QSFwoHZ2FzX2ZlZRgBIAEoCVIGZ2FzRmVlEh0K",
"Cmdhc193YW50ZWQYAiABKBJSCWdhc1dhbnRlZBISCgRtZW1vGAMgASgJUgRt",
"ZW1vEiUKDmNhbGxlcl9hZGRyZXNzGAQgASgMUg1jYWxsZXJBZGRyZXNzEjEK",
"BG1zZ3MYBSADKAsyHS5sYW5kLmduby5nbm9uYXRpdmUudjEuTXNnUnVuUgRN",
"c2dzIiUKC1J1blJlc3BvbnNlEhYKBnJlc3VsdBgBIAEoCVIGcmVzdWx0IikK",
"Dk1ha2VUeFJlc3BvbnNlEhcKB3R4X2pzb24YASABKAlSBnR4SnNvbiKSAQoN",
"U2lnblR4UmVxdWVzdBIXCgd0eF9qc29uGAEgASgJUgZ0eEpzb24SGAoHYWRk",
"cmVzcxgCIAEoDFIHYWRkcmVzcxIlCg5hY2NvdW50X251bWJlchgDIAEoBFIN",
"YWNjb3VudE51bWJlchInCg9zZXF1ZW5jZV9udW1iZXIYBCABKARSDnNlcXVl",
"bmNlTnVtYmVyIjEKDlNpZ25UeFJlc3BvbnNlEh8KDnNpZ25lZF90eF9qc29u",
"GAEgASgJUgd0eF9qc29uIjsKGEJyb2FkY2FzdFR4Q29tbWl0UmVxdWVzdBIf",
"Cg5zaWduZWRfdHhfanNvbhgBIAEoCVIHdHhfanNvbiIzChlCcm9hZGNhc3RU",
"eENvbW1pdFJlc3BvbnNlEhYKBnJlc3VsdBgBIAEoDFIGcmVzdWx0IjIKFkFk",
"ZHJlc3NUb0JlY2gzMlJlcXVlc3QSGAoHYWRkcmVzcxgBIAEoDFIHYWRkcmVz",
"cyJAChdBZGRyZXNzVG9CZWNoMzJSZXNwb25zZRIlCg5iZWNoMzJfYWRkcmVz",
"cxgBIAEoCVINYmVjaDMyQWRkcmVzcyJBChhBZGRyZXNzRnJvbUJlY2gzMlJl",
"cXVlc3QSJQoOYmVjaDMyX2FkZHJlc3MYASABKAlSDWJlY2gzMkFkZHJlc3Mi",
"NQoZQWRkcmVzc0Zyb21CZWNoMzJSZXNwb25zZRIYCgdhZGRyZXNzGAEgASgM",
"UgdhZGRyZXNzIjgKGkFkZHJlc3NGcm9tTW5lbW9uaWNSZXF1ZXN0EhoKCG1u",
"ZW1vbmljGAEgASgJUghtbmVtb25pYyI3ChtBZGRyZXNzRnJvbU1uZW1vbmlj",
"UmVzcG9uc2USGAoHYWRkcmVzcxgBIAEoDFIHYWRkcmVzcyIiCgxIZWxsb1Jl",
"cXVlc3QSEgoEbmFtZRgBIAEoCVIETmFtZSIrCg1IZWxsb1Jlc3BvbnNlEhoK",
"CGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIoChJIZWxsb1N0cmVhbVJlcXVl",
"c3QSEgoEbmFtZRgBIAEoCVIETmFtZSIxChNIZWxsb1N0cmVhbVJlc3BvbnNl",
"EhoKCGdyZWV0aW5nGAEgASgJUghHcmVldGluZyIwChhHTk9OQVRJVkVUWVBF",
"U19CeXRlc0xpc3QSFAoFVmFsdWUYASADKAxSBVZhbHVlQilaJ2dpdGh1Yi5j",
"b20vZ25vbGFuZy9nbm9uYXRpdmUvYXBpL2dlbi9nb2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
Expand Down Expand Up @@ -10120,7 +10120,7 @@ public MsgCall(MsgCall other) : this() {
packagePath_ = other.packagePath_;
fnc_ = other.fnc_;
args_ = other.args_.Clone();
send_ = other.send_;
send_ = other.send_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

Expand Down Expand Up @@ -10177,14 +10177,13 @@ public string Fnc {

/// <summary>Field number for the "send" field.</summary>
public const int SendFieldNumber = 4;
private string send_ = "";
private static readonly pb::FieldCodec<global::Land.Gno.Gnonative.V1.Coin> _repeated_send_codec
= pb::FieldCodec.ForMessage(34, global::Land.Gno.Gnonative.V1.Coin.Parser);
private readonly pbc::RepeatedField<global::Land.Gno.Gnonative.V1.Coin> send_ = new pbc::RepeatedField<global::Land.Gno.Gnonative.V1.Coin>();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Send {
public pbc::RepeatedField<global::Land.Gno.Gnonative.V1.Coin> Send {
get { return send_; }
set {
send_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Expand All @@ -10205,7 +10204,7 @@ public bool Equals(MsgCall other) {
if (PackagePath != other.PackagePath) return false;
if (Fnc != other.Fnc) return false;
if(!args_.Equals(other.args_)) return false;
if (Send != other.Send) return false;
if(!send_.Equals(other.send_)) return false;
return Equals(_unknownFields, other._unknownFields);
}

Expand All @@ -10216,7 +10215,7 @@ public override int GetHashCode() {
if (PackagePath.Length != 0) hash ^= PackagePath.GetHashCode();
if (Fnc.Length != 0) hash ^= Fnc.GetHashCode();
hash ^= args_.GetHashCode();
if (Send.Length != 0) hash ^= Send.GetHashCode();
hash ^= send_.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
Expand Down Expand Up @@ -10244,10 +10243,7 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteString(Fnc);
}
args_.WriteTo(output, _repeated_args_codec);
if (Send.Length != 0) {
output.WriteRawTag(34);
output.WriteString(Send);
}
send_.WriteTo(output, _repeated_send_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
Expand All @@ -10267,10 +10263,7 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteString(Fnc);
}
args_.WriteTo(ref output, _repeated_args_codec);
if (Send.Length != 0) {
output.WriteRawTag(34);
output.WriteString(Send);
}
send_.WriteTo(ref output, _repeated_send_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
Expand All @@ -10288,9 +10281,7 @@ public int CalculateSize() {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Fnc);
}
size += args_.CalculateSize(_repeated_args_codec);
if (Send.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Send);
}
size += send_.CalculateSize(_repeated_send_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
Expand All @@ -10310,9 +10301,7 @@ public void MergeFrom(MsgCall other) {
Fnc = other.Fnc;
}
args_.Add(other.args_);
if (other.Send.Length != 0) {
Send = other.Send;
}
send_.Add(other.send_);
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

Expand Down Expand Up @@ -10345,7 +10334,7 @@ public void MergeFrom(pb::CodedInputStream input) {
break;
}
case 34: {
Send = input.ReadString();
send_.AddEntriesFrom(input, _repeated_send_codec);
break;
}
}
Expand Down Expand Up @@ -10380,7 +10369,7 @@ public void MergeFrom(pb::CodedInputStream input) {
break;
}
case 34: {
Send = input.ReadString();
send_.AddEntriesFrom(ref input, _repeated_send_codec);
break;
}
}
Expand Down
4 changes: 2 additions & 2 deletions api/gen/es/gnonativetypes_pb.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1259,9 +1259,9 @@ export declare class MsgCall extends Message<MsgCall> {
args: string[];

/**
* @generated from field: string send = 4;
* @generated from field: repeated land.gno.gnonative.v1.Coin send = 4;
*/
send: string;
send: Coin[];

constructor(data?: PartialMessage<MsgCall>);

Expand Down
2 changes: 1 addition & 1 deletion api/gen/es/gnonativetypes_pb.js
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ export const MsgCall = proto3.makeMessageType(
{ no: 1, name: "package_path", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 2, name: "fnc", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "args", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
{ no: 4, name: "send", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 4, name: "send", kind: "message", T: Coin, repeated: true },
],
);

Expand Down
Loading

0 comments on commit e4c8952

Please sign in to comment.