@@ -11,24 +11,26 @@ public class ERC1155
11
11
{
12
12
public string chain ;
13
13
public string address ;
14
+ public string abi ;
14
15
/// <summary>
15
16
/// Handle signature minting functionality
16
17
/// </summary>
17
18
public ERC1155Signature signature ;
18
- /// <summary>
19
+ /// <summary>
19
20
/// Query claim conditions
20
21
/// </summary>
21
22
public ERC1155ClaimConditions claimConditions ;
22
23
23
24
/// <summary>
24
25
/// Interact with any ERC1155 compatible contract.
25
26
/// </summary>
26
- public ERC1155 ( string chain , string address )
27
+ public ERC1155 ( string chain , string address , string abi = "" )
27
28
{
28
29
this . chain = chain ;
29
30
this . address = address ;
30
- this . signature = new ERC1155Signature ( chain , address ) ;
31
- this . claimConditions = new ERC1155ClaimConditions ( chain , address ) ;
31
+ this . abi = abi ;
32
+ this . signature = new ERC1155Signature ( chain , address , abi ) ;
33
+ this . claimConditions = new ERC1155ClaimConditions ( chain , address , abi ) ;
32
34
}
33
35
34
36
// READ FUNCTIONS
@@ -69,7 +71,7 @@ public async Task<string> Balance(string tokenId)
69
71
/// <summary>
70
72
/// Get the balance of the given NFT for the given wallet address
71
73
/// </summary>
72
- public async Task < string > BalanceOf ( string address , string tokenId )
74
+ public async Task < string > BalanceOf ( string address , string tokenId )
73
75
{
74
76
return await Bridge . InvokeRoute < string > ( getRoute ( "balanceOf" ) , Utils . ToJsonStringArray ( address , tokenId ) ) ;
75
77
}
@@ -173,23 +175,26 @@ public async Task<TransactionResult> MintAdditionalSupplyTo(string address, stri
173
175
174
176
// PRIVATE
175
177
176
- private string getRoute ( string functionPath ) {
177
- return this . address + ".erc1155." + functionPath ;
178
+ private string getRoute ( string functionPath )
179
+ {
180
+ return abi != "" ? this . address + "#" + abi + ".erc1155." + functionPath : this . address + ".erc1155." + functionPath ;
178
181
}
179
182
}
180
183
181
- /// <summary>
184
+ /// <summary>
182
185
/// Fetch claim conditions for a given ERC1155 drop contract
183
186
/// </summary>
184
187
public class ERC1155ClaimConditions
185
188
{
186
189
public string chain ;
187
190
public string address ;
191
+ public string abi ;
188
192
189
- public ERC1155ClaimConditions ( string chain , string address )
193
+ public ERC1155ClaimConditions ( string chain , string address , string abi = "" )
190
194
{
191
195
this . chain = chain ;
192
196
this . address = address ;
197
+ this . abi = abi ;
193
198
}
194
199
195
200
/// <summary>
@@ -224,14 +229,15 @@ public async Task<bool> GetClaimerProofs(string tokenId, string claimerAddress)
224
229
return await Bridge . InvokeRoute < bool > ( getRoute ( "getClaimerProofs" ) , Utils . ToJsonStringArray ( claimerAddress ) ) ;
225
230
}
226
231
227
- private string getRoute ( string functionPath ) {
228
- return this . address + ".erc1155.claimConditions." + functionPath ;
232
+ private string getRoute ( string functionPath )
233
+ {
234
+ return abi != "" ? this . address + "#" + abi + ".erc1155.claimConditions." + functionPath : this . address + ".erc1155.claimConditions." + functionPath ;
229
235
}
230
236
}
231
237
232
238
// TODO switch to another JSON serializer that supports polymorphism
233
239
[ System . Serializable ]
234
- #nullable enable
240
+ #nullable enable
235
241
public class ERC1155MintPayload
236
242
{
237
243
public string to ;
@@ -247,7 +253,8 @@ public class ERC1155MintPayload
247
253
// public long mintStartTime;
248
254
// public long mintEndTime;
249
255
250
- public ERC1155MintPayload ( string receiverAddress , NFTMetadata metadata ) {
256
+ public ERC1155MintPayload ( string receiverAddress , NFTMetadata metadata )
257
+ {
251
258
this . metadata = metadata ;
252
259
this . to = receiverAddress ;
253
260
this . price = "0" ;
@@ -279,7 +286,8 @@ public class ERC1155MintAdditionalPayload
279
286
// public long mintStartTime;
280
287
// public long mintEndTime;
281
288
282
- public ERC1155MintAdditionalPayload ( string receiverAddress , string tokenId ) {
289
+ public ERC1155MintAdditionalPayload ( string receiverAddress , string tokenId )
290
+ {
283
291
this . tokenId = tokenId ;
284
292
this . to = receiverAddress ;
285
293
this . price = "0" ;
@@ -323,11 +331,13 @@ public class ERC1155Signature
323
331
{
324
332
public string chain ;
325
333
public string address ;
334
+ public string abi ;
326
335
327
- public ERC1155Signature ( string chain , string address )
336
+ public ERC1155Signature ( string chain , string address , string abi = "" )
328
337
{
329
338
this . chain = chain ;
330
339
this . address = address ;
340
+ this . abi = abi ;
331
341
}
332
342
333
343
public async Task < ERC1155SignedPayload > Generate ( ERC1155MintPayload payloadToSign )
@@ -350,8 +360,9 @@ public async Task<TransactionResult> Mint(ERC1155SignedPayload signedPayload)
350
360
return await Bridge . InvokeRoute < TransactionResult > ( getRoute ( "mint" ) , Utils . ToJsonStringArray ( signedPayload ) ) ;
351
361
}
352
362
353
- private string getRoute ( string functionPath ) {
354
- return this . address + ".erc1155.signature." + functionPath ;
363
+ private string getRoute ( string functionPath )
364
+ {
365
+ return abi != "" ? this . address + "#" + abi + ".erc1155.signature." + functionPath : this . address + ".erc1155.signature." + functionPath ;
355
366
}
356
367
}
357
368
}
0 commit comments