export const AGENT_NFT_ABI = [ { type: 'constructor', inputs: [ { name: 'name_', type: 'string' }, { name: 'symbol_', type: 'string' }, { name: 'oracle_', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', name: 'mint', stateMutability: 'nonpayable', inputs: [ { name: 'to', type: 'address' }, { name: 'iDatas', type: 'tuple[]', components: [ { name: 'dataDescription', type: 'string' }, { name: 'dataHash', type: 'bytes32' }, ], }, ], outputs: [{ name: 'tokenId', type: 'uint256' }], }, { type: 'function', name: 'update', stateMutability: 'nonpayable', inputs: [ { name: 'tokenId', type: 'uint256' }, { name: 'slots', type: 'uint256[]' }, { name: 'newHashes', type: 'bytes32[]' }, ], outputs: [], }, { type: 'function', name: 'iTransferFrom', stateMutability: 'nonpayable', inputs: [ { name: 'from', type: 'address' }, { name: 'to', type: 'address' }, { name: 'tokenId', type: 'uint256' }, { name: 'newHashes', type: 'bytes32[]' }, { name: 'proofNonce', type: 'bytes32' }, { name: 'oracleSignature', type: 'bytes' }, ], outputs: [], }, { type: 'function', name: 'setOracle', stateMutability: 'nonpayable', inputs: [{ name: 'newOracle', type: 'address' }], outputs: [], }, { type: 'function', name: 'teeOracle', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }], }, { type: 'function', name: 'totalSupply', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { type: 'function', name: 'ownerOf', stateMutability: 'view', inputs: [{ name: 'tokenId', type: 'uint256' }], outputs: [{ type: 'address' }], }, { type: 'function', name: 'getIntelligentData', stateMutability: 'view', inputs: [{ name: 'tokenId', type: 'uint256' }], outputs: [ { type: 'tuple[]', components: [ { name: 'dataDescription', type: 'string' }, { name: 'dataHash', type: 'bytes32' }, ], }, ], }, { type: 'function', name: 'getSlotHash', stateMutability: 'view', inputs: [ { name: 'tokenId', type: 'uint256' }, { name: 'slot', type: 'uint256' }, ], outputs: [{ type: 'bytes32' }], }, { type: 'function', name: 'setApprovalForAll', stateMutability: 'nonpayable', inputs: [ { name: 'operator', type: 'address' }, { name: 'approved', type: 'bool' }, ], outputs: [], }, { type: 'function', name: 'isApprovedForAll', stateMutability: 'view', inputs: [ { name: 'owner', type: 'address' }, { name: 'operator', type: 'address' }, ], outputs: [{ type: 'bool' }], }, { type: 'event', name: 'Minted', inputs: [ { name: 'tokenId', type: 'uint256', indexed: true }, { name: 'to', type: 'address', indexed: true }, { name: 'iDatas', type: 'tuple[]', indexed: false, components: [ { name: 'dataDescription', type: 'string' }, { name: 'dataHash', type: 'bytes32' }, ], }, ], }, { type: 'event', name: 'Updated', inputs: [ { name: 'tokenId', type: 'uint256', indexed: true }, { name: 'slots', type: 'uint256[]', indexed: false }, { name: 'newHashes', type: 'bytes32[]', indexed: false }, ], }, { type: 'event', name: 'Transferred', inputs: [ { name: 'tokenId', type: 'uint256', indexed: true }, { name: 'from', type: 'address', indexed: true }, { name: 'to', type: 'address', indexed: true }, ], }, ] as const