{ "_format": "hh-sol-artifact-1", "contractName": "AITokenRegistry", "sourceName": "contracts/AITokenRegistry.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "admin", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "provider", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "collateral", "type": "uint256" } ], "name": "ProviderRegistered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "provider", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "active", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "collateral", "type": "uint256" } ], "name": "ProviderUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "inputs": [], "name": "COORDINATOR_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "provider", "type": "address" } ], "name": "providerInfo", "outputs": [ { "components": [ { "internalType": "bool", "name": "active", "type": "bool" }, { "internalType": "uint256", "name": "collateral", "type": "uint256" } ], "internalType": "struct AITokenRegistry.ProviderInfo", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "providers", "outputs": [ { "internalType": "bool", "name": "active", "type": "bool" }, { "internalType": "uint256", "name": "collateral", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "provider", "type": "address" }, { "internalType": "uint256", "name": "collateral", "type": "uint256" } ], "name": "registerProvider", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "provider", "type": "address" }, { "internalType": "bool", "name": "active", "type": "bool" }, { "internalType": "uint256", "name": "collateral", "type": "uint256" } ], "name": "updateProvider", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b506040516109d13803806109d183398101604081905261002f916100ed565b61003a600082610041565b505061011d565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166100e3576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561009b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016100e7565b5060005b92915050565b6000602082840312156100ff57600080fd5b81516001600160a01b038116811461011657600080fd5b9392505050565b6108a58061012c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80633ae25916116100715780633ae25916146101915780636b366cb51461020857806391d148541461022f578063a217fddf14610242578063d11905651461024a578063d547741f1461025d57600080fd5b806301ffc9a7146100b95780630787bc27146100e15780631af431a714610125578063248a9ca31461013a5780632f2ff15d1461016b57806336568abe1461017e575b600080fd5b6100cc6100c7366004610754565b610270565b60405190151581526020015b60405180910390f35b61010e6100ef3660046107a1565b6001602081905260009182526040909120805491015460ff9091169082565b6040805192151583526020830191909152016100d8565b6101386101333660046107bc565b6102a7565b005b61015d6101483660046107e6565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6101386101793660046107ff565b6103f5565b61013861018c3660046107ff565b610420565b6101eb61019f3660046107a1565b6040805180820190915260008082526020820152506001600160a01b03166000908152600160208181526040928390208351808501909452805460ff1615158452909101549082015290565b6040805182511515815260209283015192810192909252016100d8565b61015d7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc81565b6100cc61023d3660046107ff565b610458565b61015d600081565b61013861025836600461082b565b610481565b61013861026b3660046107ff565b6105e8565b60006001600160e01b03198216637965db0b60e01b14806102a157506301ffc9a760e01b6001600160e01b03198316145b92915050565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6102d18161060d565b6001600160a01b03831661031f5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526001602052604090205460ff161561037d5760405162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b6044820152606401610316565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff19169015151785559051939092019290925591518481527f90c9734131c1e4fb36cde2d71e6feb93fb258f71be8a85411c173d25e1516e80910160405180910390a2505050565b6000828152602081905260409020600101546104108161060d565b61041a838361061a565b50505050565b6001600160a01b03811633146104495760405163334bd91960e11b815260040160405180910390fd5b61045382826106ac565b505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6104ab8161060d565b6001600160a01b0384166104f45760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b6044820152606401610316565b6001600160a01b03841660009081526001602052604090205460ff16806105185750825b6105645760405162461bcd60e51b815260206004820152601760248201527f70726f7669646572206e6f7420726567697374657265640000000000000000006044820152606401610316565b60408051808201825284151580825260208083018681526001600160a01b03891660008181526001808552908790209551865460ff1916901515178655915194909101939093558351918252810185905290917fe226f4be7d881611b5a3ddc83f2e771728014b8012359a29890cd3d670c43dc8910160405180910390a250505050565b6000828152602081905260409020600101546106038161060d565b61041a83836106ac565b6106178133610717565b50565b60006106268383610458565b6106a4576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561065c3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102a1565b5060006102a1565b60006106b88383610458565b156106a4576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102a1565b6107218282610458565b6107505760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610316565b5050565b60006020828403121561076657600080fd5b81356001600160e01b03198116811461077e57600080fd5b9392505050565b80356001600160a01b038116811461079c57600080fd5b919050565b6000602082840312156107b357600080fd5b61077e82610785565b600080604083850312156107cf57600080fd5b6107d883610785565b946020939093013593505050565b6000602082840312156107f857600080fd5b5035919050565b6000806040838503121561081257600080fd5b8235915061082260208401610785565b90509250929050565b60008060006060848603121561084057600080fd5b61084984610785565b92506020840135801515811461085e57600080fd5b92959294505050604091909101359056fea2646970667358221220dcf376f102b1bc83ced9d7af3d5eb71077444d1080da7a114dd7fe4bff0ad28664736f6c63430008180033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80633ae25916116100715780633ae25916146101915780636b366cb51461020857806391d148541461022f578063a217fddf14610242578063d11905651461024a578063d547741f1461025d57600080fd5b806301ffc9a7146100b95780630787bc27146100e15780631af431a714610125578063248a9ca31461013a5780632f2ff15d1461016b57806336568abe1461017e575b600080fd5b6100cc6100c7366004610754565b610270565b60405190151581526020015b60405180910390f35b61010e6100ef3660046107a1565b6001602081905260009182526040909120805491015460ff9091169082565b6040805192151583526020830191909152016100d8565b6101386101333660046107bc565b6102a7565b005b61015d6101483660046107e6565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6101386101793660046107ff565b6103f5565b61013861018c3660046107ff565b610420565b6101eb61019f3660046107a1565b6040805180820190915260008082526020820152506001600160a01b03166000908152600160208181526040928390208351808501909452805460ff1615158452909101549082015290565b6040805182511515815260209283015192810192909252016100d8565b61015d7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc81565b6100cc61023d3660046107ff565b610458565b61015d600081565b61013861025836600461082b565b610481565b61013861026b3660046107ff565b6105e8565b60006001600160e01b03198216637965db0b60e01b14806102a157506301ffc9a760e01b6001600160e01b03198316145b92915050565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6102d18161060d565b6001600160a01b03831661031f5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526001602052604090205460ff161561037d5760405162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b6044820152606401610316565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff19169015151785559051939092019290925591518481527f90c9734131c1e4fb36cde2d71e6feb93fb258f71be8a85411c173d25e1516e80910160405180910390a2505050565b6000828152602081905260409020600101546104108161060d565b61041a838361061a565b50505050565b6001600160a01b03811633146104495760405163334bd91960e11b815260040160405180910390fd5b61045382826106ac565b505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6104ab8161060d565b6001600160a01b0384166104f45760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b6044820152606401610316565b6001600160a01b03841660009081526001602052604090205460ff16806105185750825b6105645760405162461bcd60e51b815260206004820152601760248201527f70726f7669646572206e6f7420726567697374657265640000000000000000006044820152606401610316565b60408051808201825284151580825260208083018681526001600160a01b03891660008181526001808552908790209551865460ff1916901515178655915194909101939093558351918252810185905290917fe226f4be7d881611b5a3ddc83f2e771728014b8012359a29890cd3d670c43dc8910160405180910390a250505050565b6000828152602081905260409020600101546106038161060d565b61041a83836106ac565b6106178133610717565b50565b60006106268383610458565b6106a4576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561065c3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102a1565b5060006102a1565b60006106b88383610458565b156106a4576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102a1565b6107218282610458565b6107505760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610316565b5050565b60006020828403121561076657600080fd5b81356001600160e01b03198116811461077e57600080fd5b9392505050565b80356001600160a01b038116811461079c57600080fd5b919050565b6000602082840312156107b357600080fd5b61077e82610785565b600080604083850312156107cf57600080fd5b6107d883610785565b946020939093013593505050565b6000602082840312156107f857600080fd5b5035919050565b6000806040838503121561081257600080fd5b8235915061082260208401610785565b90509250929050565b60008060006060848603121561084057600080fd5b61084984610785565b92506020840135801515811461085e57600080fd5b92959294505050604091909101359056fea2646970667358221220dcf376f102b1bc83ced9d7af3d5eb71077444d1080da7a114dd7fe4bff0ad28664736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} }