Files
aitbc/contracts/artifacts/contracts/AgentMarketplaceV2.sol/AgentMarketplaceV2.json
aitbc 7c51f3490b Remove outdated GPU marketplace endpoint and fix staking service logic
- Remove duplicate `/marketplace/gpu/{gpu_id}` endpoint from marketplace_gpu.py
- Remove marketplace_gpu router inclusion from main.py (already included elsewhere)
- Fix staking service staker_count logic to check existing stakes before increment/decrement
- Add minimum stake amount validation (100 AITBC)
- Add proper error handling for stake not found cases
- Fix staking pool update to commit and refresh after modifications
- Update CLI send_transaction to use chain
2026-04-13 22:07:51 +02:00

643 lines
37 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "AgentMarketplaceV2",
"sourceName": "contracts/AgentMarketplaceV2.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_aitbcToken",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "capabilityId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "provider",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "metadataURI",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "pricePerCall",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "subscriptionPrice",
"type": "uint256"
}
],
"name": "CapabilityListed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "capabilityId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "pricePaid",
"type": "uint256"
}
],
"name": "CapabilityPurchased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "capabilityId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newScore",
"type": "uint256"
}
],
"name": "CapabilityReputationUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "capabilityId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "pricePerCall",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "subscriptionPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "isActive",
"type": "bool"
}
],
"name": "CapabilityUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "newFeePercentage",
"type": "uint256"
}
],
"name": "PlatformFeeUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "subscriptionId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "capabilityId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "subscriber",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "expiryTimestamp",
"type": "uint256"
}
],
"name": "SubscriptionCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"inputs": [],
"name": "aitbcToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "capabilities",
"outputs": [
{
"internalType": "uint256",
"name": "capabilityId",
"type": "uint256"
},
{
"internalType": "address",
"name": "providerAgent",
"type": "address"
},
{
"internalType": "string",
"name": "metadataURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "pricePerCall",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "subscriptionPrice",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isSubscriptionEnabled",
"type": "bool"
},
{
"internalType": "bool",
"name": "isActive",
"type": "bool"
},
{
"internalType": "uint256",
"name": "totalCalls",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalRevenue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reputationScore",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "capabilityCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_subscriptionId",
"type": "uint256"
}
],
"name": "checkSubscription",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_metadataURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "_pricePerCall",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_subscriptionPrice",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_isSubscriptionEnabled",
"type": "bool"
}
],
"name": "listCapability",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "platformFeePercentage",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "providerCapabilities",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_capabilityId",
"type": "uint256"
}
],
"name": "purchaseCall",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_capabilityId",
"type": "uint256"
}
],
"name": "subscribeToCapability",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "subscriberSubscriptions",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "subscriptionCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "subscriptions",
"outputs": [
{
"internalType": "uint256",
"name": "subscriptionId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "capabilityId",
"type": "uint256"
},
{
"internalType": "address",
"name": "subscriberAgent",
"type": "address"
},
{
"internalType": "uint256",
"name": "expiryTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isActive",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_capabilityId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_pricePerCall",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_subscriptionPrice",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_isSubscriptionEnabled",
"type": "bool"
},
{
"internalType": "bool",
"name": "_isActive",
"type": "bool"
}
],
"name": "updateCapability",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_capabilityId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_newScore",
"type": "uint256"
}
],
"name": "updateCapabilityReputation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newFee",
"type": "uint256"
}
],
"name": "updatePlatformFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawPlatformFees",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60803461011557601f6117e638819003918201601f19168301916001600160401b0383118484101761011a5780849260209460405283398101031261011557516001600160a01b038082169190828203610115576000543360018060a01b0319821617600055604051913391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3600180556002549260fa600555156100d357506001600160a81b031990911660089190911b610100600160a81b0316176002556040516116b590816101318239f35b62461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e206164647265737300000000000000000000006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806302ac942e146110965780630bd0638b1461104c5780630cce480b14610eeb5780632d5bbf6014610e875780633f4ba83a14610df35780635c975abb14610dd0578063715018a614610d77578063754bf69514610c655780637d9c328714610a505780638456cb59146109f657806386e918b4146108a85780638da5cb5b1461087f578063903a829814610861578063a8fef4a7146107d9578063aa0b59881461074f578063acc166cf14610731578063cdd78cfc14610713578063d0b7830b1461062d578063d1a7789314610600578063e03eac331461022f578063edefdf8d146101d75763f2fde38b1461010e57600080fd5b346101d25760203660031901126101d257610127611100565b61012f61120b565b6001600160a01b0390811690811561017e57600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b600080fd5b346101d25760403660031901126101d2576101f0611100565b6001600160a01b03166000908152600860205260409020805460243591908210156101d25760209161022191611116565b90546040519160031b1c8152f35b346101d25760803660031901126101d25767ffffffffffffffff600435116101d2573660236004350112156101d25767ffffffffffffffff60043560040135116101d257366024600435600401356004350101116101d25761028f611144565b6102976112c8565b60043560040135156105cd576003546102af81611263565b60035560405191610140830183811067ffffffffffffffff8211176105b7576040528183523360208401526102e960043560040135611272565b6102f660405191826111a9565b6004803590810135808352906024016020830137600060206004356004013583010152604084015260243560608401526044356080840152151560a0830152600160c0830152600060e0830152600061010083015260006101208301528060005260066020526040600020825181556001810160018060a01b036020850151166001600160601b0360a01b825416179055604083015192835167ffffffffffffffff81116105b7576103ab6002840154611153565b94601f8611610570575b602095508590601f83116001146104fc57918060089492610120946000926104f1575b50508160011b916000199060031b1c19161760028501555b60608101516003850155608081015160048501556104426005850161042760a08401511515829060ff801983541691151516179055565b60c0830151815461ff00191690151560081b61ff0016179055565b60e0810151600685015561010081015160078501550151910155336000526008825261047281604060002061128e565b604051606080825260048035908101359183018290526024016080830137600060806004356004013583010152602435838201526044356040820152817f974baca05ef46bb7be54457f0f8962e4aa3dd1ca4ee7694cd1758b8ccbe4db6f3392608081601f19601f6004356004013501168101030190a3604051908152f35b0151905088806103d8565b9060028501600052866000209160005b601f1985168110610559575092600894926001926101209583601f19811610610540575b505050811b0160028501556103f0565b015160001960f88460031b161c19169055888080610530565b91928860018192868501518155019401920161050c565b600284016000526020600020601f830160051c8101602084106105b0575b601f880160051c820181106105a45750506103b5565b6000815560010161058e565b508061058e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642055524960a81b6044820152606490fd5b346101d25760003660031901126101d25760025460405160089190911c6001600160a01b03168152602090f35b346101d25760003660031901126101d25761064661120b565b6002546040516370a0823160e01b81523060048201526001600160a01b039160081c8216602082602481845afa918215610707576000926106d4575b5081156106995761069792600054169061141d565b005b60405162461bcd60e51b81526020600482015260136024820152724e6f206665657320746f20776974686472617760681b6044820152606490fd5b9091506020813d82116106ff575b816106ef602093836111a9565b810103126101d257519083610682565b3d91506106e2565b6040513d6000823e3d90fd5b346101d25760003660031901126101d2576020600554604051908152f35b346101d25760003660031901126101d2576020600354604051908152f35b346101d25760203660031901126101d25760043561076b61120b565b6103e881116107a5576020817f45610d581145924dd7090a5017e5f2b1d6f42213bb2e95707ff86846bbfcb1ca92600555604051908152a1005b60405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260206080604060002060405161080a8161118d565b8154815260018201548482015260028201546001600160a01b0316604082015260038201546060820181905260049092015460ff161515920182905281610857575b506040519015158152f35b905042108261084c565b346101d25760003660031901126101d2576020600454604051908152f35b346101d25760003660031901126101d2576000546040516001600160a01b039091168152602090f35b346101d2576020806003193601126101d25760043560005260068152604060002080549060019060018060a01b0382820154169084600282016040519485916000918154916108f683611153565b808652928281169081156109d35750600114610994575b50505061091c925003846111a9565b60038101549260ff600483015460058401549061095f60068601549460086007880154970154976040519b8c9b8c528b01526101408060408c01528a01906111cb565b9660608901526080880152818116151560a088015260081c16151560c086015260e08501526101008401526101208301520390f35b600090815285812095935091905b8183106109bb57508994505082010161091c898061090d565b855489840185015294850194889450918301916109a2565b9250505061091c94925060ff191682840152151560051b8201018792898061090d565b346101d25760003660031901126101d257610a0f61120b565b610a176112c8565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101d2576020806003193601126101d257600435610a6d6113c7565b610a756112c8565b610a82600354821061130c565b8060005260068252604060002060ff6005820154610aa4828260081c16611358565b1615610c2057600481015490610afe6007610ace612710610ac76005548761139a565b04856113ad565b6002546001600160a01b0395919491610aef913090339060081c891661146f565b83610c02575b019182546113ba565b905560045491610b0d83611263565b60045562278d00420191824211610bec57610b9e90600460405191610b318361118d565b868352878301908582526040840133815260608501918883526080860193600185528a60005260078c52604060002096518755516001870155600286019151166001600160601b0360a01b82541617905551600384015551151591019060ff801983541691151516179055565b3360005260098452610bb483604060002061128e565b604051918252827fbd86ae7c057a07b4cce4ace781f75b323a5d5f22cb0dc58d410d80c9b21e3d60853394a460018055604051908152f35b634e487b7160e01b600052601160045260246000fd5b610c1b848660025460081c16876001850154169061141d565b610af5565b60405162461bcd60e51b815260048101849052601960248201527f537562736372697074696f6e73206e6f7420656e61626c6564000000000000006044820152606490fd5b346101d25760a03660031901126101d257600435604435602435610c87611144565b9060843592831515908185036101d257610ca4600354871061130c565b600086815260066020526040902060018101546001600160a01b03163303610d3f577f8cd005cd39c9f16a5aae4fcb8a19a49b848a6d1a42f1b2f02065ec339103009895606095610d14600584886003610d2c9701558660048201550191829060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b60405192835260208301526040820152a2005b60405162461bcd60e51b815260206004820152601060248201526f2737ba103a343290383937bb34b232b960811b6044820152606490fd5b346101d25760003660031901126101d257610d9061120b565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d25760003660031901126101d257602060ff600254166040519015158152f35b346101d25760003660031901126101d257610e0c61120b565b60025460ff811615610e4b5760ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b60405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260a06040600020805490600181015490600180851b0360028201541660ff60046003840154930154169260405194855260208501526040840152606083015215156080820152f35b346101d25760203660031901126101d257600435610f076113c7565b610f0f6112c8565b610f1c600354821061130c565b8060005260066020526040600020610f3d60ff600583015460081c16611358565b6003810190815490811561100757610f64612710610f5d6005548561139a565b04836113ad565b60025490926001600160a01b0391610f8591903090339060081c851661146f565b8280610fe7575b50506006810180549160018301809311610bec57610fb19260079255019182546113ba565b905554906040519182527f43370b7f6ce1b95b26a4858f1a468f60a858265ddc952bcfb4cadcbdc1a712ce60203393a360018055005b816110009260025460081c16906001850154169061141d565b8482610f8c565b60405162461bcd60e51b815260206004820152601d60248201527f4e6f7420617661696c61626c6520666f722073696e676c652063616c6c0000006044820152606490fd5b346101d25760403660031901126101d257611065611100565b6001600160a01b03166000908152600960205260409020805460243591908210156101d25760209161022191611116565b346101d25760403660031901126101d2576004357fd08d6deb34d6ccaebd0c16538fb603991cfc8c0b033ecc66434bbeb6d88245ef60206024356110d861120b565b6110e5600354851061130c565b836000526006825280600860406000200155604051908152a2005b600435906001600160a01b03821682036101d257565b805482101561112e5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b6064359081151582036101d257565b90600182811c92168015611183575b602083101461116d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611162565b60a0810190811067ffffffffffffffff8211176105b757604052565b90601f8019910116810190811067ffffffffffffffff8211176105b757604052565b919082519283825260005b8481106111f7575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016111d6565b6000546001600160a01b0316330361121f57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6000198114610bec5760010190565b67ffffffffffffffff81116105b757601f01601f191660200190565b8054680100000000000000008110156105b7576112b091600182018155611116565b819291549060031b91821b91600019901b1916179055565b60ff600254166112d457565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b1561131357565b60405162461bcd60e51b815260206004820152601960248201527f4361706162696c69747920646f6573206e6f74206578697374000000000000006044820152606490fd5b1561135f57565b60405162461bcd60e51b81526020600482015260136024820152724361706162696c69747920696e61637469766560681b6044820152606490fd5b81810292918115918404141715610bec57565b91908203918211610bec57565b91908201809211610bec57565b6002600154146113d8576002600155565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff8311828410176105b75761146d926040526114b1565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261146d916114b18261118d565b60018060a01b031690604051604081019080821067ffffffffffffffff8311176105b757611541916040526020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d156115de573d9161152683611272565b9261153460405194856111a9565b83523d868885013e6115e2565b8051918215918483156115b3575b50505090501561155c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126115da578201519081151582036115d757508038808461154f565b80fd5b5080fd5b6060915b9192901561164457508151156115f6575090565b3b156115ff5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156116575750805190602001fd5b60405162461bcd60e51b81526020600482015290819061167b9060248301906111cb565b0390fdfea2646970667358221220e3f984827ee3c04aefc2a7009a08fd2534d20a700c96ce5260c328e3fbf8722b64736f6c63430008130033",
"deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806302ac942e146110965780630bd0638b1461104c5780630cce480b14610eeb5780632d5bbf6014610e875780633f4ba83a14610df35780635c975abb14610dd0578063715018a614610d77578063754bf69514610c655780637d9c328714610a505780638456cb59146109f657806386e918b4146108a85780638da5cb5b1461087f578063903a829814610861578063a8fef4a7146107d9578063aa0b59881461074f578063acc166cf14610731578063cdd78cfc14610713578063d0b7830b1461062d578063d1a7789314610600578063e03eac331461022f578063edefdf8d146101d75763f2fde38b1461010e57600080fd5b346101d25760203660031901126101d257610127611100565b61012f61120b565b6001600160a01b0390811690811561017e57600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b600080fd5b346101d25760403660031901126101d2576101f0611100565b6001600160a01b03166000908152600860205260409020805460243591908210156101d25760209161022191611116565b90546040519160031b1c8152f35b346101d25760803660031901126101d25767ffffffffffffffff600435116101d2573660236004350112156101d25767ffffffffffffffff60043560040135116101d257366024600435600401356004350101116101d25761028f611144565b6102976112c8565b60043560040135156105cd576003546102af81611263565b60035560405191610140830183811067ffffffffffffffff8211176105b7576040528183523360208401526102e960043560040135611272565b6102f660405191826111a9565b6004803590810135808352906024016020830137600060206004356004013583010152604084015260243560608401526044356080840152151560a0830152600160c0830152600060e0830152600061010083015260006101208301528060005260066020526040600020825181556001810160018060a01b036020850151166001600160601b0360a01b825416179055604083015192835167ffffffffffffffff81116105b7576103ab6002840154611153565b94601f8611610570575b602095508590601f83116001146104fc57918060089492610120946000926104f1575b50508160011b916000199060031b1c19161760028501555b60608101516003850155608081015160048501556104426005850161042760a08401511515829060ff801983541691151516179055565b60c0830151815461ff00191690151560081b61ff0016179055565b60e0810151600685015561010081015160078501550151910155336000526008825261047281604060002061128e565b604051606080825260048035908101359183018290526024016080830137600060806004356004013583010152602435838201526044356040820152817f974baca05ef46bb7be54457f0f8962e4aa3dd1ca4ee7694cd1758b8ccbe4db6f3392608081601f19601f6004356004013501168101030190a3604051908152f35b0151905088806103d8565b9060028501600052866000209160005b601f1985168110610559575092600894926001926101209583601f19811610610540575b505050811b0160028501556103f0565b015160001960f88460031b161c19169055888080610530565b91928860018192868501518155019401920161050c565b600284016000526020600020601f830160051c8101602084106105b0575b601f880160051c820181106105a45750506103b5565b6000815560010161058e565b508061058e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642055524960a81b6044820152606490fd5b346101d25760003660031901126101d25760025460405160089190911c6001600160a01b03168152602090f35b346101d25760003660031901126101d25761064661120b565b6002546040516370a0823160e01b81523060048201526001600160a01b039160081c8216602082602481845afa918215610707576000926106d4575b5081156106995761069792600054169061141d565b005b60405162461bcd60e51b81526020600482015260136024820152724e6f206665657320746f20776974686472617760681b6044820152606490fd5b9091506020813d82116106ff575b816106ef602093836111a9565b810103126101d257519083610682565b3d91506106e2565b6040513d6000823e3d90fd5b346101d25760003660031901126101d2576020600554604051908152f35b346101d25760003660031901126101d2576020600354604051908152f35b346101d25760203660031901126101d25760043561076b61120b565b6103e881116107a5576020817f45610d581145924dd7090a5017e5f2b1d6f42213bb2e95707ff86846bbfcb1ca92600555604051908152a1005b60405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260206080604060002060405161080a8161118d565b8154815260018201548482015260028201546001600160a01b0316604082015260038201546060820181905260049092015460ff161515920182905281610857575b506040519015158152f35b905042108261084c565b346101d25760003660031901126101d2576020600454604051908152f35b346101d25760003660031901126101d2576000546040516001600160a01b039091168152602090f35b346101d2576020806003193601126101d25760043560005260068152604060002080549060019060018060a01b0382820154169084600282016040519485916000918154916108f683611153565b808652928281169081156109d35750600114610994575b50505061091c925003846111a9565b60038101549260ff600483015460058401549061095f60068601549460086007880154970154976040519b8c9b8c528b01526101408060408c01528a01906111cb565b9660608901526080880152818116151560a088015260081c16151560c086015260e08501526101008401526101208301520390f35b600090815285812095935091905b8183106109bb57508994505082010161091c898061090d565b855489840185015294850194889450918301916109a2565b9250505061091c94925060ff191682840152151560051b8201018792898061090d565b346101d25760003660031901126101d257610a0f61120b565b610a176112c8565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101d2576020806003193601126101d257600435610a6d6113c7565b610a756112c8565b610a82600354821061130c565b8060005260068252604060002060ff6005820154610aa4828260081c16611358565b1615610c2057600481015490610afe6007610ace612710610ac76005548761139a565b04856113ad565b6002546001600160a01b0395919491610aef913090339060081c891661146f565b83610c02575b019182546113ba565b905560045491610b0d83611263565b60045562278d00420191824211610bec57610b9e90600460405191610b318361118d565b868352878301908582526040840133815260608501918883526080860193600185528a60005260078c52604060002096518755516001870155600286019151166001600160601b0360a01b82541617905551600384015551151591019060ff801983541691151516179055565b3360005260098452610bb483604060002061128e565b604051918252827fbd86ae7c057a07b4cce4ace781f75b323a5d5f22cb0dc58d410d80c9b21e3d60853394a460018055604051908152f35b634e487b7160e01b600052601160045260246000fd5b610c1b848660025460081c16876001850154169061141d565b610af5565b60405162461bcd60e51b815260048101849052601960248201527f537562736372697074696f6e73206e6f7420656e61626c6564000000000000006044820152606490fd5b346101d25760a03660031901126101d257600435604435602435610c87611144565b9060843592831515908185036101d257610ca4600354871061130c565b600086815260066020526040902060018101546001600160a01b03163303610d3f577f8cd005cd39c9f16a5aae4fcb8a19a49b848a6d1a42f1b2f02065ec339103009895606095610d14600584886003610d2c9701558660048201550191829060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b60405192835260208301526040820152a2005b60405162461bcd60e51b815260206004820152601060248201526f2737ba103a343290383937bb34b232b960811b6044820152606490fd5b346101d25760003660031901126101d257610d9061120b565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d25760003660031901126101d257602060ff600254166040519015158152f35b346101d25760003660031901126101d257610e0c61120b565b60025460ff811615610e4b5760ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b60405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260a06040600020805490600181015490600180851b0360028201541660ff60046003840154930154169260405194855260208501526040840152606083015215156080820152f35b346101d25760203660031901126101d257600435610f076113c7565b610f0f6112c8565b610f1c600354821061130c565b8060005260066020526040600020610f3d60ff600583015460081c16611358565b6003810190815490811561100757610f64612710610f5d6005548561139a565b04836113ad565b60025490926001600160a01b0391610f8591903090339060081c851661146f565b8280610fe7575b50506006810180549160018301809311610bec57610fb19260079255019182546113ba565b905554906040519182527f43370b7f6ce1b95b26a4858f1a468f60a858265ddc952bcfb4cadcbdc1a712ce60203393a360018055005b816110009260025460081c16906001850154169061141d565b8482610f8c565b60405162461bcd60e51b815260206004820152601d60248201527f4e6f7420617661696c61626c6520666f722073696e676c652063616c6c0000006044820152606490fd5b346101d25760403660031901126101d257611065611100565b6001600160a01b03166000908152600960205260409020805460243591908210156101d25760209161022191611116565b346101d25760403660031901126101d2576004357fd08d6deb34d6ccaebd0c16538fb603991cfc8c0b033ecc66434bbeb6d88245ef60206024356110d861120b565b6110e5600354851061130c565b836000526006825280600860406000200155604051908152a2005b600435906001600160a01b03821682036101d257565b805482101561112e5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b6064359081151582036101d257565b90600182811c92168015611183575b602083101461116d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611162565b60a0810190811067ffffffffffffffff8211176105b757604052565b90601f8019910116810190811067ffffffffffffffff8211176105b757604052565b919082519283825260005b8481106111f7575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016111d6565b6000546001600160a01b0316330361121f57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6000198114610bec5760010190565b67ffffffffffffffff81116105b757601f01601f191660200190565b8054680100000000000000008110156105b7576112b091600182018155611116565b819291549060031b91821b91600019901b1916179055565b60ff600254166112d457565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b1561131357565b60405162461bcd60e51b815260206004820152601960248201527f4361706162696c69747920646f6573206e6f74206578697374000000000000006044820152606490fd5b1561135f57565b60405162461bcd60e51b81526020600482015260136024820152724361706162696c69747920696e61637469766560681b6044820152606490fd5b81810292918115918404141715610bec57565b91908203918211610bec57565b91908201809211610bec57565b6002600154146113d8576002600155565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff8311828410176105b75761146d926040526114b1565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261146d916114b18261118d565b60018060a01b031690604051604081019080821067ffffffffffffffff8311176105b757611541916040526020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d156115de573d9161152683611272565b9261153460405194856111a9565b83523d868885013e6115e2565b8051918215918483156115b3575b50505090501561155c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126115da578201519081151582036115d757508038808461154f565b80fd5b5080fd5b6060915b9192901561164457508151156115f6575090565b3b156115ff5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156116575750805190602001fd5b60405162461bcd60e51b81526020600482015290819061167b9060248301906111cb565b0390fdfea2646970667358221220e3f984827ee3c04aefc2a7009a08fd2534d20a700c96ce5260c328e3fbf8722b64736f6c63430008130033",
"linkReferences": {},
"deployedLinkReferences": {}
}