@@ -10,9 +10,15 @@ import { IDisputeKitData, IGatedDisputeData, ISomeFutureDisputeData } from "cont
1010const encodeGatedDisputeData = ( data : IGatedDisputeData ) : string => {
1111 // Packing of tokenGate and isERC1155
1212 // uint88 (padding 11 bytes) + bool (1 byte) + address (20 bytes) = 32 bytes
13- const packed = ethers . utils . solidityPack ( [ "uint88" , "bool" , "address" ] , [ 0 , data . isERC1155 , data . tokenGate ] ) ;
14- if ( ! data . tokenId || ! data . isERC1155 ) data . tokenId = "0" ;
15- return ethers . utils . defaultAbiCoder . encode ( [ "bytes32" , "uint256" ] , [ packed , data . tokenId ] ) ;
13+ const normalizedData = {
14+ ...data ,
15+ tokenId : ! data . tokenId || ! data . isERC1155 ? "0" : data . tokenId ,
16+ } ;
17+ const packed = ethers . utils . solidityPack (
18+ [ "uint88" , "bool" , "address" ] ,
19+ [ 0 , normalizedData . isERC1155 , normalizedData . tokenGate ]
20+ ) ;
21+ return ethers . utils . defaultAbiCoder . encode ( [ "bytes32" , "uint256" ] , [ packed , normalizedData . tokenId ] ) ;
1622} ;
1723
1824/**
@@ -45,7 +51,7 @@ export const prepareArbitratorExtradata = (
4551 disputeKit : number = 1 ,
4652 disputeKitData ?: IDisputeKitData
4753) => {
48- let extraData = ethers . utils . defaultAbiCoder . encode (
54+ const extraData = ethers . utils . defaultAbiCoder . encode (
4955 [ "uint256" , "uint256" , "uint256" ] ,
5056 [ subcourtID , noOfVotes , disputeKit ]
5157 ) as `0x{string}`;
@@ -58,6 +64,5 @@ export const prepareArbitratorExtradata = (
5864 throw new Error ( `Unknown dispute kit data type: ${ disputeKitData . type } ` ) ;
5965 }
6066 const encodedDisputeKitData = encoder ( disputeKitData as any ) ;
61- extraData = ethers . utils . hexConcat ( [ extraData , encodedDisputeKitData ] ) as `0x{string}`;
62- return extraData ;
67+ return ethers . utils . hexConcat ( [ extraData , encodedDisputeKitData ] ) as `0x{string}`;
6368} ;
0 commit comments