Skip to content

Commit a1dd7a0

Browse files
committed
Read contract generics and BigInt parsing
1 parent b7ecbd5 commit a1dd7a0

3 files changed

Lines changed: 12 additions & 8 deletions

File tree

Packages/com.walletconnect.web3modal/Runtime/WebGL/InteropService.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ public static void TcsCallback(int id, string responseData, string responseError
119119
{
120120
res = charResult;
121121
}
122+
else if (pendingCall.ResType == typeof(BigInteger) && BigInteger.TryParse(responseData, out var bigIntResult))
123+
{
124+
res = bigIntResult;
125+
}
122126
else if (pendingCall.ResType != typeof(void))
123127
{
124128
try

Packages/com.walletconnect.web3modal/Runtime/WebGL/Wagmi/WagmiInterop.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,15 @@ public static Task<string> SignTypedDataAsync(string dataJson)
134134

135135
// -- Verify Typed Data ----------------------------------------
136136

137-
public static Task<bool> VerifyTypedDataAsync(string dataJson, string address, string signature)
137+
public static Task<bool> VerifyTypedDataAsync(string address, string dataJson, string signature)
138138
{
139139
var jObject = JObject.Parse(dataJson);
140-
140+
141141
jObject[nameof(address)] = JToken.FromObject(address);
142142
jObject[nameof(signature)] = JToken.FromObject(signature);
143143

144144
var parameter = jObject.ToString(Formatting.None);
145-
145+
146146
return InteropCallAsync<string, bool>(WagmiMethods.VerifyTypedData, parameter);
147147
}
148148

@@ -168,7 +168,7 @@ public static Task SwitchChainAsync(SwitchChainParameter parameter)
168168

169169
// -- Read Contract -------------------------------------------
170170

171-
public static Task<string> ReadContractAsync(string contractAddress, string contractAbi, string method, string[] arguments = null)
171+
public static Task<TReturn> ReadContractAsync<TReturn>(string contractAddress, string contractAbi, string method, object[] arguments = null)
172172
{
173173
var parameter = new ReadContractParameter
174174
{
@@ -178,12 +178,12 @@ public static Task<string> ReadContractAsync(string contractAddress, string cont
178178
args = arguments
179179
};
180180

181-
return ReadContractAsync(parameter);
181+
return ReadContractAsync<TReturn>(parameter);
182182
}
183183

184-
public static Task<string> ReadContractAsync(ReadContractParameter parameter)
184+
public static Task<TReturn> ReadContractAsync<TReturn>(ReadContractParameter parameter)
185185
{
186-
return InteropCallAsync<ReadContractParameter, string>(WagmiMethods.ReadContract, parameter);
186+
return InteropCallAsync<ReadContractParameter, TReturn>(WagmiMethods.ReadContract, parameter);
187187
}
188188

189189

Packages/com.walletconnect.web3modal/Runtime/WebGL/Wagmi/WagmiModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public class ReadContractParameter
8181
public AbiItem[] abi;
8282
public string address;
8383
public string functionName;
84-
public string[] args;
84+
public object[] args;
8585
}
8686

8787
[Serializable]

0 commit comments

Comments
 (0)