[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_DELEGATION_DEPTH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"agentOf","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"consumerAllowed","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"consumer","type":"address","internalType":"address"},{"name":"action","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"delegate","inputs":[{"name":"parentId","type":"uint256","internalType":"uint256"},{"name":"childAgent","type":"address","internalType":"address"},{"name":"purpose","type":"string","internalType":"string"},{"name":"actions","type":"bytes32[]","internalType":"bytes32[]"},{"name":"perTxLimit","type":"uint256","internalType":"uint256"},{"name":"dailyLimit","type":"uint256","internalType":"uint256"},{"name":"validUntil","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"childId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getChildren","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPassport","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IPassport.PassportInfo","components":[{"name":"agent","type":"address","internalType":"address"},{"name":"controller","type":"address","internalType":"address"},{"name":"purpose","type":"string","internalType":"string"},{"name":"parentId","type":"uint256","internalType":"uint256"},{"name":"depth","type":"uint8","internalType":"uint8"},{"name":"validFrom","type":"uint64","internalType":"uint64"},{"name":"validUntil","type":"uint64","internalType":"uint64"},{"name":"perTxLimit","type":"uint256","internalType":"uint256"},{"name":"dailyLimit","type":"uint256","internalType":"uint256"},{"name":"status","type":"uint8","internalType":"enum IPassport.Status"},{"name":"actionCount","type":"uint64","internalType":"uint64"},{"name":"lastActionHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"hasPermission","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"action","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isActive","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"agent","type":"address","internalType":"address"},{"name":"purpose","type":"string","internalType":"string"},{"name":"validFrom","type":"uint64","internalType":"uint64"},{"name":"validUntil","type":"uint64","internalType":"uint64"},{"name":"perTxLimit","type":"uint256","internalType":"uint256"},{"name":"dailyLimit","type":"uint256","internalType":"uint256"},{"name":"actions","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permissionKeys","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"reactivate","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revoke","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConsumer","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"consumer","type":"address","internalType":"address"},{"name":"action","type":"bytes32","internalType":"bytes32"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimits","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"perTxLimit","type":"uint256","internalType":"uint256"},{"name":"dailyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPermission","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"action","type":"bytes32","internalType":"bytes32"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spentToday","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"suspend","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyAndSpend","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"action","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyAuthority","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"action","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ActionVerified","inputs":[{"name":"passportId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"consumer","type":"address","indexed":true,"internalType":"address"},{"name":"action","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"actionHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConsumerApproval","inputs":[{"name":"passportId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"consumer","type":"address","indexed":true,"internalType":"address"},{"name":"action","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"LimitsSet","inputs":[{"name":"passportId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"perTxLimit","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"dailyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PassportMinted","inputs":[{"name":"passportId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"agent","type":"address","indexed":true,"internalType":"address"},{"name":"controller","type":"address","indexed":true,"internalType":"address"},{"name":"purpose","type":"string","indexed":false,"internalType":"string"},{"name":"parentId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PermissionSet","inputs":[{"name":"passportId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"action","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"StatusChanged","inputs":[{"name":"passportId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"status","type":"uint8","indexed":false,"internalType":"enum IPassport.Status"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyRevoked","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DelegationTooDeep","inputs":[{"name":"parentId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ExceedsDailyLimit","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ExceedsPerTxLimit","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Expired","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ExpiryExceedsParent","inputs":[{"name":"parentId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidValidityWindow","inputs":[{"name":"validFrom","type":"uint64","internalType":"uint64"},{"name":"validUntil","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"LimitsExceedParent","inputs":[{"name":"parentId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotActive","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotPassportController","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"NotYetValid","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PassportNotFound","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PermissionDenied","inputs":[{"name":"passportId","type":"uint256","internalType":"uint256"},{"name":"action","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"PermissionNotSubset","inputs":[{"name":"parentId","type":"uint256","internalType":"uint256"},{"name":"action","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnauthorizedConsumer","inputs":[]},{"type":"error","name":"ZeroAgent","inputs":[]}]
