- 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
650 lines
37 KiB
JSON
650 lines
37 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "AgentServiceMarketplace",
|
|
"sourceName": "contracts/AgentServiceMarketplace.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_aitbcToken",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"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": "serviceId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "buyer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "pricePaid",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ServicePurchased",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "serviceId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "provider",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "capabilityURI",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "pricePerUse",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ServiceRegistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "serviceId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "newScore",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ServiceReputationUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "serviceId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "pricePerUse",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bool",
|
|
"name": "isActive",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "ServiceUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "subscriptionId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "serviceId",
|
|
"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": true,
|
|
"internalType": "uint256",
|
|
"name": "subscriptionId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "newExpiryTimestamp",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "SubscriptionRenewed",
|
|
"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": "_subscriptionId",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "checkSubscription",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"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": "providerServices",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_serviceId",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "purchaseService",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "_capabilityURI",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_pricePerUse",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_subscriptionPricePerMonth",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "_isSubscriptionAvailable",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "registerService",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "renounceOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "serviceCounter",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "services",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "serviceId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "providerAgent",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "capabilityURI",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "pricePerUse",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "subscriptionPricePerMonth",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "isSubscriptionAvailable",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "isActive",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalUses",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalRevenue",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "reputationScore",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_serviceId",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "subscribeToService",
|
|
"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": "serviceId",
|
|
"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": "_newFee",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "updatePlatformFee",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_serviceId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_pricePerUse",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_subscriptionPricePerMonth",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "_isSubscriptionAvailable",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "_isActive",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "updateService",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_serviceId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_newScore",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "updateServiceReputation",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "withdrawPlatformFees",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x60803461011557601f6117d638819003918201601f19168301916001600160401b0383118484101761011a5780849260209460405283398101031261011557516001600160a01b038082169190828203610115576000543360018060a01b0319821617600055604051913391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3600180556002549260fa600555156100d357506001600160a81b031990911660089190911b610100600160a81b0316176002556040516116a590816101318239f35b62461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e206164647265737300000000000000000000006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806303731b9e146110b05780630bd0638b146110585780632d5bbf6014610ff45780633f4ba83a14610f605780635c975abb14610f3d57806360c34ae614610ddc5780636a1ddf8814610bc7578063715018a614610b6e5780637a0db5db14610b045780637defdd7314610ae65780638456cb5914610a8c5780638615ace71461097f5780638da5cb5b14610956578063903a82981461093857806396c793c514610568578063a8fef4a7146104e0578063aa0b598814610456578063c22c4f4314610308578063cdd78cfc146102ea578063d0b7830b14610204578063d1a77893146101d75763f2fde38b1461010e57600080fd5b346101d25760203660031901126101d2576101276110fa565b61012f611205565b6001600160a01b0390811690811561017e57600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b600080fd5b346101d25760003660031901126101d25760025460405160089190911c6001600160a01b03168152602090f35b346101d25760003660031901126101d25761021d611205565b6002546040516370a0823160e01b81523060048201526001600160a01b039160081c8216602082602481845afa9182156102de576000926102ab575b5081156102705761026e92600054169061140d565b005b60405162461bcd60e51b81526020600482015260136024820152724e6f206665657320746f20776974686472617760681b6044820152606490fd5b9091506020813d82116102d6575b816102c6602093836111a3565b810103126101d257519083610259565b3d91506102b9565b6040513d6000823e3d90fd5b346101d25760003660031901126101d2576020600554604051908152f35b346101d2576020806003193601126101d25760043560005260068152604060002080549060019060018060a01b0382820154169084600282016040519485916000918154916103568361114d565b8086529282811690811561043357506001146103f4575b50505061037c925003846111a3565b60038101549260ff60048301546005840154906103bf60068601549460086007880154970154976040519b8c9b8c528b01526101408060408c01528a01906111c5565b9660608901526080880152818116151560a088015260081c16151560c086015260e08501526101008401526101208301520390f35b600090815285812095935091905b81831061041b57508994505082010161037c898061036d565b85548984018501529485019488945091830191610402565b9250505061037c94925060ff191682840152151560051b8201018792898061036d565b346101d25760203660031901126101d257600435610472611205565b6103e881116104ac576020817f45610d581145924dd7090a5017e5f2b1d6f42213bb2e95707ff86846bbfcb1ca92600555604051908152a1005b60405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260206080604060002060405161051181611187565b8154815260018201548482015260028201546001600160a01b0316604082015260038201546060820181905260049092015460ff16151592018290528161055e575b506040519015158152f35b9050421082610553565b346101d25760803660031901126101d25767ffffffffffffffff600435116101d2573660236004350112156101d25767ffffffffffffffff60043560040135116101d257366024600435600401356004350101116101d2576105c861113e565b6105d06112c2565b6004356004013515610905576003546105e88161125d565b60035560405191610140830183811067ffffffffffffffff8211176108ef576040528183523360208401526106226004356004013561126c565b61062f60405191826111a3565b6004803590810135808352906024016020830137600060206004356004013583010152604084015260243560608401526044356080840152151560a0830152600160c0830152600060e0830152600061010083015260006101208301528060005260066020526040600020825181556001810160018060a01b036020850151166001600160601b0360a01b825416179055604083015192835167ffffffffffffffff81116108ef576106e4600284015461114d565b94601f86116108a8575b602095508590601f83116001146108345791806008949261012094600092610829575b50508160011b916000199060031b1c19161760028501555b606081015160038501556080810151600485015561077b6005850161076060a08401511515829060ff801983541691151516179055565b60c0830151815461ff00191690151560081b61ff0016179055565b60e081015160068501556101008101516007850155015191015533600052600882526107ab816040600020611288565b6040516040815260043560040135604082015260043560040135602460043501606083013760006060600435600401358301015260243583820152817f67be3c810154c389fd2646b1c47628f982539f07681810b2d5f736f6df245a083392606081601f19601f6004356004013501168101030190a3604051908152f35b015190508880610711565b9060028501600052866000209160005b601f1985168110610891575092600894926001926101209583601f19811610610878575b505050811b016002850155610729565b015160001960f88460031b161c19169055888080610868565b919288600181928685015181550194019201610844565b600284016000526020600020601f830160051c8101602084106108e8575b601f880160051c820181106108dc5750506106ee565b600081556001016108c6565b50806108c6565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642055524960a81b6044820152606490fd5b346101d25760003660031901126101d2576020600454604051908152f35b346101d25760003660031901126101d2576000546040516001600160a01b039091168152602090f35b346101d25760a03660031901126101d25760043560243561099e61113e565b608435918215158084036101d2576109b96003548610611306565b600085815260066020526040902060018101546001600160a01b03163303610a50577fd987ade72cd5688b6a9b9190d3b6985db058bc979526fec6cbdb91dec541d40194604094610a2b600584876003610a4397015560443560048201550191829060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b82519182526020820152a2005b60405162461bcd60e51b81526020600482015260146024820152732737ba1039b2b93b34b1b290383937bb34b232b960611b6044820152606490fd5b346101d25760003660031901126101d257610aa5611205565b610aad6112c2565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101d25760003660031901126101d2576020600354604051908152f35b346101d25760403660031901126101d2576004357f92da4333f5258a9998ae4e3a407854bd68c3d36ea75fb2c1b055247bb307b3686020602435610b46611205565b610b536003548510611306565b836000526006825280600860406000200155604051908152a2005b346101d25760003660031901126101d257610b87611205565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d2576020806003193601126101d257600435610be46113b7565b610bec6112c2565b610bf96003548210611306565b8060005260068252604060002060ff6005820154610c1b828260081c1661134b565b1615610d9757600481015490610c756007610c45612710610c3e6005548761138a565b048561139d565b6002546001600160a01b0395919491610c66913090339060081c891661145f565b83610d79575b019182546113aa565b905560045491610c848361125d565b60045562278d00420191824211610d6357610d1590600460405191610ca883611187565b868352878301908582526040840133815260608501918883526080860193600185528a60005260078c52604060002096518755516001870155600286019151166001600160601b0360a01b82541617905551600384015551151591019060ff801983541691151516179055565b3360005260098452610d2b836040600020611288565b604051918252827fbd86ae7c057a07b4cce4ace781f75b323a5d5f22cb0dc58d410d80c9b21e3d60853394a460018055604051908152f35b634e487b7160e01b600052601160045260246000fd5b610d92848660025460081c16876001850154169061140d565b610c6c565b60405162461bcd60e51b815260048101849052601960248201527f537562736372697074696f6e73206e6f7420656e61626c6564000000000000006044820152606490fd5b346101d25760203660031901126101d257600435610df86113b7565b610e006112c2565b610e0d6003548210611306565b8060005260066020526040600020610e2e60ff600583015460081c1661134b565b60038101908154908115610ef857610e55612710610e4e6005548561138a565b048361139d565b60025490926001600160a01b0391610e7691903090339060081c851661145f565b8280610ed8575b50506006810180549160018301809311610d6357610ea29260079255019182546113aa565b905554906040519182527f6989fd04c5bc56c8995f68ff4d4a94e67e56cf4efa352219e731185ac2736df560203393a360018055005b81610ef19260025460081c16906001850154169061140d565b8482610e7d565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f7420617661696c61626c6520666f722073696e676c6520757365000000006044820152606490fd5b346101d25760003660031901126101d257602060ff600254166040519015158152f35b346101d25760003660031901126101d257610f79611205565b60025460ff811615610fb85760ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b60405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260a06040600020805490600181015490600180851b0360028201541660ff60046003840154930154169260405194855260208501526040840152606083015215156080820152f35b346101d25760403660031901126101d2576110716110fa565b6001600160a01b03166000908152600960205260409020805460243591908210156101d2576020916110a291611110565b90546040519160031b1c8152f35b346101d25760403660031901126101d2576110c96110fa565b6001600160a01b03166000908152600860205260409020805460243591908210156101d2576020916110a291611110565b600435906001600160a01b03821682036101d257565b80548210156111285760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b6064359081151582036101d257565b90600182811c9216801561117d575b602083101461116757565b634e487b7160e01b600052602260045260246000fd5b91607f169161115c565b60a0810190811067ffffffffffffffff8211176108ef57604052565b90601f8019910116810190811067ffffffffffffffff8211176108ef57604052565b919082519283825260005b8481106111f1575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016111d0565b6000546001600160a01b0316330361121957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6000198114610d635760010190565b67ffffffffffffffff81116108ef57601f01601f191660200190565b8054680100000000000000008110156108ef576112aa91600182018155611110565b819291549060031b91821b91600019901b1916179055565b60ff600254166112ce57565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b1561130d57565b60405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d948191bd95cc81b9bdd08195e1a5cdd60521b6044820152606490fd5b1561135257565b60405162461bcd60e51b815260206004820152601060248201526f5365727669636520696e61637469766560801b6044820152606490fd5b81810292918115918404141715610d6357565b91908203918211610d6357565b91908201809211610d6357565b6002600154146113c8576002600155565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff8311828410176108ef5761145d926040526114a1565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261145d916114a182611187565b60018060a01b031690604051604081019080821067ffffffffffffffff8311176108ef57611531916040526020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d156115ce573d916115168361126c565b9261152460405194856111a3565b83523d868885013e6115d2565b8051918215918483156115a3575b50505090501561154c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126115ca578201519081151582036115c757508038808461153f565b80fd5b5080fd5b6060915b9192901561163457508151156115e6575090565b3b156115ef5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156116475750805190602001fd5b60405162461bcd60e51b81526020600482015290819061166b9060248301906111c5565b0390fdfea26469706673582212200da37b00b06d9552ef22fc448a1ee2b241c932f06c11711ffc27ae6a182137a664736f6c63430008130033",
|
|
"deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806303731b9e146110b05780630bd0638b146110585780632d5bbf6014610ff45780633f4ba83a14610f605780635c975abb14610f3d57806360c34ae614610ddc5780636a1ddf8814610bc7578063715018a614610b6e5780637a0db5db14610b045780637defdd7314610ae65780638456cb5914610a8c5780638615ace71461097f5780638da5cb5b14610956578063903a82981461093857806396c793c514610568578063a8fef4a7146104e0578063aa0b598814610456578063c22c4f4314610308578063cdd78cfc146102ea578063d0b7830b14610204578063d1a77893146101d75763f2fde38b1461010e57600080fd5b346101d25760203660031901126101d2576101276110fa565b61012f611205565b6001600160a01b0390811690811561017e57600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b600080fd5b346101d25760003660031901126101d25760025460405160089190911c6001600160a01b03168152602090f35b346101d25760003660031901126101d25761021d611205565b6002546040516370a0823160e01b81523060048201526001600160a01b039160081c8216602082602481845afa9182156102de576000926102ab575b5081156102705761026e92600054169061140d565b005b60405162461bcd60e51b81526020600482015260136024820152724e6f206665657320746f20776974686472617760681b6044820152606490fd5b9091506020813d82116102d6575b816102c6602093836111a3565b810103126101d257519083610259565b3d91506102b9565b6040513d6000823e3d90fd5b346101d25760003660031901126101d2576020600554604051908152f35b346101d2576020806003193601126101d25760043560005260068152604060002080549060019060018060a01b0382820154169084600282016040519485916000918154916103568361114d565b8086529282811690811561043357506001146103f4575b50505061037c925003846111a3565b60038101549260ff60048301546005840154906103bf60068601549460086007880154970154976040519b8c9b8c528b01526101408060408c01528a01906111c5565b9660608901526080880152818116151560a088015260081c16151560c086015260e08501526101008401526101208301520390f35b600090815285812095935091905b81831061041b57508994505082010161037c898061036d565b85548984018501529485019488945091830191610402565b9250505061037c94925060ff191682840152151560051b8201018792898061036d565b346101d25760203660031901126101d257600435610472611205565b6103e881116104ac576020817f45610d581145924dd7090a5017e5f2b1d6f42213bb2e95707ff86846bbfcb1ca92600555604051908152a1005b60405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260206080604060002060405161051181611187565b8154815260018201548482015260028201546001600160a01b0316604082015260038201546060820181905260049092015460ff16151592018290528161055e575b506040519015158152f35b9050421082610553565b346101d25760803660031901126101d25767ffffffffffffffff600435116101d2573660236004350112156101d25767ffffffffffffffff60043560040135116101d257366024600435600401356004350101116101d2576105c861113e565b6105d06112c2565b6004356004013515610905576003546105e88161125d565b60035560405191610140830183811067ffffffffffffffff8211176108ef576040528183523360208401526106226004356004013561126c565b61062f60405191826111a3565b6004803590810135808352906024016020830137600060206004356004013583010152604084015260243560608401526044356080840152151560a0830152600160c0830152600060e0830152600061010083015260006101208301528060005260066020526040600020825181556001810160018060a01b036020850151166001600160601b0360a01b825416179055604083015192835167ffffffffffffffff81116108ef576106e4600284015461114d565b94601f86116108a8575b602095508590601f83116001146108345791806008949261012094600092610829575b50508160011b916000199060031b1c19161760028501555b606081015160038501556080810151600485015561077b6005850161076060a08401511515829060ff801983541691151516179055565b60c0830151815461ff00191690151560081b61ff0016179055565b60e081015160068501556101008101516007850155015191015533600052600882526107ab816040600020611288565b6040516040815260043560040135604082015260043560040135602460043501606083013760006060600435600401358301015260243583820152817f67be3c810154c389fd2646b1c47628f982539f07681810b2d5f736f6df245a083392606081601f19601f6004356004013501168101030190a3604051908152f35b015190508880610711565b9060028501600052866000209160005b601f1985168110610891575092600894926001926101209583601f19811610610878575b505050811b016002850155610729565b015160001960f88460031b161c19169055888080610868565b919288600181928685015181550194019201610844565b600284016000526020600020601f830160051c8101602084106108e8575b601f880160051c820181106108dc5750506106ee565b600081556001016108c6565b50806108c6565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642055524960a81b6044820152606490fd5b346101d25760003660031901126101d2576020600454604051908152f35b346101d25760003660031901126101d2576000546040516001600160a01b039091168152602090f35b346101d25760a03660031901126101d25760043560243561099e61113e565b608435918215158084036101d2576109b96003548610611306565b600085815260066020526040902060018101546001600160a01b03163303610a50577fd987ade72cd5688b6a9b9190d3b6985db058bc979526fec6cbdb91dec541d40194604094610a2b600584876003610a4397015560443560048201550191829060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b82519182526020820152a2005b60405162461bcd60e51b81526020600482015260146024820152732737ba1039b2b93b34b1b290383937bb34b232b960611b6044820152606490fd5b346101d25760003660031901126101d257610aa5611205565b610aad6112c2565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101d25760003660031901126101d2576020600354604051908152f35b346101d25760403660031901126101d2576004357f92da4333f5258a9998ae4e3a407854bd68c3d36ea75fb2c1b055247bb307b3686020602435610b46611205565b610b536003548510611306565b836000526006825280600860406000200155604051908152a2005b346101d25760003660031901126101d257610b87611205565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d2576020806003193601126101d257600435610be46113b7565b610bec6112c2565b610bf96003548210611306565b8060005260068252604060002060ff6005820154610c1b828260081c1661134b565b1615610d9757600481015490610c756007610c45612710610c3e6005548761138a565b048561139d565b6002546001600160a01b0395919491610c66913090339060081c891661145f565b83610d79575b019182546113aa565b905560045491610c848361125d565b60045562278d00420191824211610d6357610d1590600460405191610ca883611187565b868352878301908582526040840133815260608501918883526080860193600185528a60005260078c52604060002096518755516001870155600286019151166001600160601b0360a01b82541617905551600384015551151591019060ff801983541691151516179055565b3360005260098452610d2b836040600020611288565b604051918252827fbd86ae7c057a07b4cce4ace781f75b323a5d5f22cb0dc58d410d80c9b21e3d60853394a460018055604051908152f35b634e487b7160e01b600052601160045260246000fd5b610d92848660025460081c16876001850154169061140d565b610c6c565b60405162461bcd60e51b815260048101849052601960248201527f537562736372697074696f6e73206e6f7420656e61626c6564000000000000006044820152606490fd5b346101d25760203660031901126101d257600435610df86113b7565b610e006112c2565b610e0d6003548210611306565b8060005260066020526040600020610e2e60ff600583015460081c1661134b565b60038101908154908115610ef857610e55612710610e4e6005548561138a565b048361139d565b60025490926001600160a01b0391610e7691903090339060081c851661145f565b8280610ed8575b50506006810180549160018301809311610d6357610ea29260079255019182546113aa565b905554906040519182527f6989fd04c5bc56c8995f68ff4d4a94e67e56cf4efa352219e731185ac2736df560203393a360018055005b81610ef19260025460081c16906001850154169061140d565b8482610e7d565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f7420617661696c61626c6520666f722073696e676c6520757365000000006044820152606490fd5b346101d25760003660031901126101d257602060ff600254166040519015158152f35b346101d25760003660031901126101d257610f79611205565b60025460ff811615610fb85760ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b60405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606490fd5b346101d25760203660031901126101d257600435600052600760205260a06040600020805490600181015490600180851b0360028201541660ff60046003840154930154169260405194855260208501526040840152606083015215156080820152f35b346101d25760403660031901126101d2576110716110fa565b6001600160a01b03166000908152600960205260409020805460243591908210156101d2576020916110a291611110565b90546040519160031b1c8152f35b346101d25760403660031901126101d2576110c96110fa565b6001600160a01b03166000908152600860205260409020805460243591908210156101d2576020916110a291611110565b600435906001600160a01b03821682036101d257565b80548210156111285760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b6064359081151582036101d257565b90600182811c9216801561117d575b602083101461116757565b634e487b7160e01b600052602260045260246000fd5b91607f169161115c565b60a0810190811067ffffffffffffffff8211176108ef57604052565b90601f8019910116810190811067ffffffffffffffff8211176108ef57604052565b919082519283825260005b8481106111f1575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016111d0565b6000546001600160a01b0316330361121957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6000198114610d635760010190565b67ffffffffffffffff81116108ef57601f01601f191660200190565b8054680100000000000000008110156108ef576112aa91600182018155611110565b819291549060031b91821b91600019901b1916179055565b60ff600254166112ce57565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b1561130d57565b60405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d948191bd95cc81b9bdd08195e1a5cdd60521b6044820152606490fd5b1561135257565b60405162461bcd60e51b815260206004820152601060248201526f5365727669636520696e61637469766560801b6044820152606490fd5b81810292918115918404141715610d6357565b91908203918211610d6357565b91908201809211610d6357565b6002600154146113c8576002600155565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff8311828410176108ef5761145d926040526114a1565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261145d916114a182611187565b60018060a01b031690604051604081019080821067ffffffffffffffff8311176108ef57611531916040526020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d156115ce573d916115168361126c565b9261152460405194856111a3565b83523d868885013e6115d2565b8051918215918483156115a3575b50505090501561154c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126115ca578201519081151582036115c757508038808461153f565b80fd5b5080fd5b6060915b9192901561163457508151156115e6575090565b3b156115ef5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156116475750805190602001fd5b60405162461bcd60e51b81526020600482015290819061166b9060248301906111c5565b0390fdfea26469706673582212200da37b00b06d9552ef22fc448a1ee2b241c932f06c11711ffc27ae6a182137a664736f6c63430008130033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|