@@ -11,24 +11,26 @@ public class ERC1155
1111 {
1212 public string chain ;
1313 public string address ;
14+ public string abi ;
1415 /// <summary>
1516 /// Handle signature minting functionality
1617 /// </summary>
1718 public ERC1155Signature signature ;
18- /// <summary>
19+ /// <summary>
1920 /// Query claim conditions
2021 /// </summary>
2122 public ERC1155ClaimConditions claimConditions ;
2223
2324 /// <summary>
2425 /// Interact with any ERC1155 compatible contract.
2526 /// </summary>
26- public ERC1155 ( string chain , string address )
27+ public ERC1155 ( string chain , string address , string abi = "" )
2728 {
2829 this . chain = chain ;
2930 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 ) ;
3234 }
3335
3436 // READ FUNCTIONS
@@ -69,7 +71,7 @@ public async Task<string> Balance(string tokenId)
6971 /// <summary>
7072 /// Get the balance of the given NFT for the given wallet address
7173 /// </summary>
72- public async Task < string > BalanceOf ( string address , string tokenId )
74+ public async Task < string > BalanceOf ( string address , string tokenId )
7375 {
7476 return await Bridge . InvokeRoute < string > ( getRoute ( "balanceOf" ) , Utils . ToJsonStringArray ( address , tokenId ) ) ;
7577 }
@@ -173,23 +175,26 @@ public async Task<TransactionResult> MintAdditionalSupplyTo(string address, stri
173175
174176 // PRIVATE
175177
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 ;
178181 }
179182 }
180183
181- /// <summary>
184+ /// <summary>
182185 /// Fetch claim conditions for a given ERC1155 drop contract
183186 /// </summary>
184187 public class ERC1155ClaimConditions
185188 {
186189 public string chain ;
187190 public string address ;
191+ public string abi ;
188192
189- public ERC1155ClaimConditions ( string chain , string address )
193+ public ERC1155ClaimConditions ( string chain , string address , string abi = "" )
190194 {
191195 this . chain = chain ;
192196 this . address = address ;
197+ this . abi = abi ;
193198 }
194199
195200 /// <summary>
@@ -224,14 +229,15 @@ public async Task<bool> GetClaimerProofs(string tokenId, string claimerAddress)
224229 return await Bridge . InvokeRoute < bool > ( getRoute ( "getClaimerProofs" ) , Utils . ToJsonStringArray ( claimerAddress ) ) ;
225230 }
226231
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 ;
229235 }
230236 }
231237
232238 // TODO switch to another JSON serializer that supports polymorphism
233239 [ System . Serializable ]
234- #nullable enable
240+ #nullable enable
235241 public class ERC1155MintPayload
236242 {
237243 public string to ;
@@ -247,7 +253,8 @@ public class ERC1155MintPayload
247253 // public long mintStartTime;
248254 // public long mintEndTime;
249255
250- public ERC1155MintPayload ( string receiverAddress , NFTMetadata metadata ) {
256+ public ERC1155MintPayload ( string receiverAddress , NFTMetadata metadata )
257+ {
251258 this . metadata = metadata ;
252259 this . to = receiverAddress ;
253260 this . price = "0" ;
@@ -279,7 +286,8 @@ public class ERC1155MintAdditionalPayload
279286 // public long mintStartTime;
280287 // public long mintEndTime;
281288
282- public ERC1155MintAdditionalPayload ( string receiverAddress , string tokenId ) {
289+ public ERC1155MintAdditionalPayload ( string receiverAddress , string tokenId )
290+ {
283291 this . tokenId = tokenId ;
284292 this . to = receiverAddress ;
285293 this . price = "0" ;
@@ -323,11 +331,13 @@ public class ERC1155Signature
323331 {
324332 public string chain ;
325333 public string address ;
334+ public string abi ;
326335
327- public ERC1155Signature ( string chain , string address )
336+ public ERC1155Signature ( string chain , string address , string abi = "" )
328337 {
329338 this . chain = chain ;
330339 this . address = address ;
340+ this . abi = abi ;
331341 }
332342
333343 public async Task < ERC1155SignedPayload > Generate ( ERC1155MintPayload payloadToSign )
@@ -350,8 +360,9 @@ public async Task<TransactionResult> Mint(ERC1155SignedPayload signedPayload)
350360 return await Bridge . InvokeRoute < TransactionResult > ( getRoute ( "mint" ) , Utils . ToJsonStringArray ( signedPayload ) ) ;
351361 }
352362
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 ;
355366 }
356367 }
357368}
0 commit comments