@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
634 lines • 66.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "AirDropV3",
"sourceName": "contracts/presets/AirDropV3.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
},
{
"components": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address",
"name": "rewardToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "rewardAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "startTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"indexed": false,
"internalType": "struct ACampaignAirDrop.Campaign",
"name": "campaign",
"type": "tuple"
}
],
"name": "CampaignSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "RewardClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [],
"name": "AIR_DROP_V3_RESOURCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "resource_",
"type": "string"
},
{
"internalType": "string",
"name": "relatedExpertPanelName_",
"type": "string"
}
],
"name": "__AirDropV3_init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "registry_",
"type": "address"
},
{
"internalType": "string",
"name": "resource_",
"type": "string"
},
{
"internalType": "string",
"name": "relatedExpertPanelName_",
"type": "string"
}
],
"name": "__AirDropV3_initAndSetDeps",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "campaignCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
}
],
"name": "campaigns",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address",
"name": "rewardToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "rewardAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "startTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "member_",
"type": "address"
},
{
"internalType": "string",
"name": "permission_",
"type": "string"
}
],
"name": "checkPermission",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId_",
"type": "uint256"
},
{
"internalType": "address",
"name": "account_",
"type": "address"
},
{
"internalType": "bytes32[]",
"name": "merkleProof_",
"type": "bytes32[]"
}
],
"name": "claimReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "rewardToken_",
"type": "address"
},
{
"internalType": "uint256",
"name": "rewardAmount_",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "merkleRoot_",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "startTimestamp_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp_",
"type": "uint256"
}
],
"name": "createCampaign",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getInjector",
"outputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getResource",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getResourceRecords",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "existingRole",
"type": "string"
},
{
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"internalType": "string[]",
"name": "permissions",
"type": "string[]"
}
],
"internalType": "struct IDAOIntegration.ResourceRecords[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isUserClaimed",
"outputs": [
{
"internalType": "bool",
"name": "isClaimed",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId_",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "leaf_",
"type": "bytes32"
},
{
"internalType": "bytes32[]",
"name": "merkleProof_",
"type": "bytes32[]"
}
],
"name": "isWhitelisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId_",
"type": "uint256"
},
{
"internalType": "address",
"name": "user_",
"type": "address"
},
{
"internalType": "bytes32[]",
"name": "merkleProof_",
"type": "bytes32[]"
}
],
"name": "isWhitelistedUser",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "permissionManager",
"outputs": [
{
"internalType": "contract IPermissionManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "registry_",
"type": "address"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "setDependencies",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"name": "setInjector",
"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": "uint256",
"name": "campaignId_",
"type": "uint256"
},
{
"internalType": "address",
"name": "rewardToken_",
"type": "address"
},
{
"internalType": "uint256",
"name": "rewardAmount_",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "merkleRoot_",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "startTimestamp_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp_",
"type": "uint256"
}
],
"name": "updateCampaign",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b62000115565b600354610100900460ff16156200005a5760405162461bcd60e51b81526004016200005190620000b3565b60405180910390fd5b60035460ff90811614620000b1576003805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891620000a89162000105565b60405180910390a15b565b60208082528101620000ff81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff8216815260208101620000ff565b6080516132e36200014d6000396000818161050d01528181610556015281816105f00152818161063001526106ac01526132e36000f3fe6080604052600436106101405760003560e01c80637274e30d116100b6578063b491dc1f1161006f578063b491dc1f146103d0578063bb65dc83146103f0578063cc7a204914610412578063d8ad4e1c1461043f578063de7539631461045f578063f13bdd4d1461047457600080fd5b80637274e30d146102ff578063743ede76146103155780638cb941cc1461033557806395ab76341461035557806396826c5314610375578063a332aa9f146103b057600080fd5b80634f1ef286116101085780634f1ef2861461025557806352d1902d1461026857806358f36fcb1461028a5780635c60da1b146102aa57806369130451146102bf5780636a25f269146102df57600080fd5b806301ffc9a714610145578063141961bc1461017b5780633659cfe6146101e85780633917caf21461020a5780633e3b5b191461022a575b600080fd5b34801561015157600080fd5b50610165610160366004611dec565b610496565b6040516101729190611e17565b60405180910390f35b34801561018757600080fd5b506101d6610196366004611e36565b60016020819052600091825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919086565b60405161017296959493929190611e77565b3480156101f457600080fd5b50610208610203366004611eda565b610503565b005b34801561021657600080fd5b50610208610225366004611f4d565b6105d4565b34801561023657600080fd5b50600080516020613247833981519152545b6040516101729190611fbb565b6102086102633660046120c4565b6105e6565b34801561027457600080fd5b5061027d61069f565b604051610172919061211c565b34801561029657600080fd5b506102086102a536600461212a565b6106fc565b3480156102b657600080fd5b506102486107ff565b3480156102cb57600080fd5b506102086102da3660046120c4565b61080e565b3480156102eb57600080fd5b506101656102fa366004611f4d565b6108b3565b34801561030b57600080fd5b5061027d60005481565b34801561032157600080fd5b506101656103303660046121b0565b6108f2565b34801561034157600080fd5b50610208610350366004611eda565b610912565b34801561036157600080fd5b5061027d6103703660046121e6565b610930565b34801561038157600080fd5b5061016561039036600461225e565b600260209081526000928352604080842090915290825290205460ff1681565b3480156103bc57600080fd5b506102086103cb366004612291565b610970565b3480156103dc57600080fd5b506102086103eb36600461231b565b610a0d565b3480156103fc57600080fd5b50610405610ae0565b60405161017291906123ad565b34801561041e57600080fd5b50600554610432906001600160a01b031681565b6040516101729190612400565b34801561044b57600080fd5b5061016561045a3660046120c4565b610b72565b34801561046b57600080fd5b50610405610bef565b34801561048057600080fd5b50610489610c7d565b604051610172919061253d565b60006001600160e01b031982166363c8929f60e01b14806104c757506001600160e01b0319821663f13bdd4d60e01b145b806104e257506001600160e01b031982166336e447a160e21b145b806104fd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105545760405162461bcd60e51b815260040161054b90612597565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661058661121f565b6001600160a01b0316146105ac5760405162461bcd60e51b815260040161054b906125ee565b6105b58161123b565b604080516000808252602082019092526105d191839190611334565b50565b6105e084848484611416565b50505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361062e5760405162461bcd60e51b815260040161054b90612597565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066061121f565b6001600160a01b0316146106865760405162461bcd60e51b815260040161054b906125ee565b61068f8261123b565b61069b82826001611334565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106e95760405162461bcd60e51b815260040161054b90612656565b5060008051602061326783398151915290565b600354610100900460ff161580801561071c5750600354600160ff909116105b806107365750303b158015610736575060035460ff166001145b6107525760405162461bcd60e51b815260040161054b906126af565b6003805460ff191660011790558015610775576003805461ff0019166101001790555b60408051600081526020810190915261078f90859061080e565b6107a58460008051602061324783398151915255565b6107af83836115ea565b80156105e0576003805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906107f1906001906126d3565b60405180910390a150505050565b600061080961121f565b905090565b610816611603565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d91906126ec565b600580546001600160a01b0319166001600160a01b03929092169190911790555033600080516020613247833981519152555050565b60006108e785856040516020016108ca9190612735565b6040516020818303038152906040528051906020012085856108f2565b90505b949350505050565b6000848152600160205260408120600501546108e7908490849087611657565b61091a611603565b6105d18160008051602061324783398151915255565b60006109596040518060400160405280600681526020016543524541544560d01b81525061166f565b6109668686858588611695565b9695505050505050565b6109976040518060400160405280600681526020016555504441544560d01b81525061166f565b6000868152600160205260408120548791036109c55760405162461bcd60e51b815260040161054b9061278c565b60008781526001602052604090206003015442106109f55760405162461bcd60e51b815260040161054b906127e6565b610a038787878686896116c6565b5050505050505050565b600354610100900460ff1615808015610a2d5750600354600160ff909116105b80610a475750303b158015610a47575060035460ff166001145b610a635760405162461bcd60e51b815260040161054b906126af565b6003805460ff191660011790558015610a86576003805461ff0019166101001790555b610a9083836115ea565b8015610adb576003805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610ad2906001906126d3565b60405180910390a15b505050565b606060048054610aef9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1b9061280c565b8015610b685780601f10610b3d57610100808354040283529160200191610b68565b820191906000526020600020905b815481529060010190602001808311610b4b57829003601f168201915b5050505050905090565b600554604051633ca8e36d60e11b81526000916001600160a01b031690637951c6da90610ba7908690600490879082016128b2565b602060405180830381865afa158015610bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be891906128f9565b9392505050565b60048054610bfc9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c289061280c565b8015610c755780601f10610c4a57610100808354040283529160200191610c75565b820191906000526020600020905b815481529060010190602001808311610c5857829003601f168201915b505050505081565b6040805160038082526080820190925260609160009190816020015b610cbd60405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610c995790505090506000610d3660405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b815250815250611767565b90506040518060600160405280610dd660068054610d539061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7f9061280c565b8015610dcc5780601f10610da157610100808354040283529160200191610dcc565b820191906000526020600020905b815481529060010190602001808311610daf57829003601f168201915b50505050506117e0565b600081518110610de857610de861291a565b6020026020010151815260200160048054610e029061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2e9061280c565b8015610e7b5780601f10610e5057610100808354040283529160200191610e7b565b820191906000526020600020905b815481529060010190602001808311610e5e57829003601f168201915b505050505081526020018281525082600081518110610e9c57610e9c61291a565b60200260200101819052506000610ede60405180602001604052806040518060400160405280600681526020016511561411549560d21b815250815250611814565b90506040518060600160405280610f7e60068054610efb9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f279061280c565b8015610f745780601f10610f4957610100808354040283529160200191610f74565b820191906000526020600020905b815481529060010190602001808311610f5757829003601f168201915b5050505050611858565b600081518110610f9057610f9061291a565b6020026020010151815260200160048054610faa9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd69061280c565b80156110235780601f10610ff857610100808354040283529160200191611023565b820191906000526020600020905b81548152906001019060200180831161100657829003601f168201915b5050505050815260200182815250836001815181106110445761104461291a565b602002602001018190525060405180606001604052806110ed6006805461106a9061280c565b80601f01602080910402602001604051908101604052809291908181526020018280546110969061280c565b80156110e35780601f106110b8576101008083540402835291602001916110e3565b820191906000526020600020905b8154815290600101906020018083116110c657829003601f168201915b5050505050611879565b6000815181106110ff576110ff61291a565b60200260200101518152602001600480546111199061280c565b80601f01602080910402602001604051908101604052809291908181526020018280546111459061280c565b80156111925780601f1061116757610100808354040283529160200191611192565b820191906000526020600020905b81548152906001019060200180831161117557829003601f168201915b505050505081526020016111f560405180604001604052806040518060400160405280600681526020016543524541544560d01b81525081526020016040518060400160405280600681526020016555504441544560d01b815250815250611767565b8152508360028151811061120b5761120b61291a565b602002602001018190525082935050505090565b600080516020613267833981519152546001600160a01b031690565b60055460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa158015611285573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a9919061294f565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a91906126ec565b9050336001600160a01b0382161461069b5760405162461bcd60e51b815260040161054b906129b3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561136757610adb8361189a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156113c1575060408051601f3d908101601f191682019092526113be918101906129ce565b60015b6113dd5760405162461bcd60e51b815260040161054b90612a38565b600080516020613267833981519152811461140a5760405162461bcd60e51b815260040161054b90612a8c565b50610adb8383836118f0565b6000848152600160205260408120548591036114445760405162461bcd60e51b815260040161054b9061278c565b60008581526002602090815260408083206001600160a01b03881684529091529020548590859060ff161561148b5760405162461bcd60e51b815260040161054b90612ae5565b8686868661149b848484846108b3565b6114b75760405162461bcd60e51b815260040161054b90612b3a565b60008b8152600160205260409020600301544210156114e85760405162461bcd60e51b815260040161054b90612b93565b60008b8152600160205260409020600401544211156115195760405162461bcd60e51b815260040161054b90612beb565b6001600260008d815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600160008d815260200190815260200160002090506115a58160010160009054906101000a90046001600160a01b03168c8360020154611915565b80546040516001600160a01b038d1691907f5dd59f4285b36241394b73f8f7ae03d0290b030a86803cf2562ecf33eeb617bd90600090a3505050505050505050505050565b60046115f68382612c8c565b506006610adb8282612c8c565b600061161b6000805160206132478339815191525490565b90506001600160a01b038116158061163b57506001600160a01b03811633145b6105d15760405162461bcd60e51b815260040161054b90612d7e565b6000826116658686856119da565b1495945050505050565b6116793382610b72565b6105d15760405162461bcd60e51b815260040161054b90612dc0565b60008060008081546116a690612de6565b918290555090506116bb8188888888886116c6565b509695505050505050565b60006116d58686868686611a26565b60008781526001602081905260409182902089815590810180546001600160a01b0319166001600160a01b038a1617905560028101879055600381018690556004810185905560058101849055905188907f76c63a84d266ca3b59e504a21147cd4e1b777747bbe163d4eeed9f2be951f11a90611753908490612eba565b60405180910390a250959695505050505050565b6040805160028082526060828101909352816020015b606081526020019060019003908161177d575050825181519192509082906000906117aa576117aa61291a565b60209081029190910101528160016020020151816001815181106117d0576117d061291a565b6020026020010181905250919050565b60606104fd6040518060200160405280846040516020016118019190612eea565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b606081526020019060019003908161182b575050825181519192509082906000906117d0576117d061291a565b60606104fd6040518060200160405280846040516020016118019190612f0c565b60606104fd6040518060200160405280846040516020016118019190612f25565b6001600160a01b0381163b6118c15760405162461bcd60e51b815260040161054b90612f86565b60008051602061326783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118f983611acf565b6000825111806119065750805b15610adb576105e08383611b0f565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016119c657600080836001600160a01b03168360405161195490612f96565b60006040518083038185875af1925050503d8060008114611991576040519150601f19603f3d011682016040523d82523d6000602084013e611996565b606091505b50915091506119be828260405180606001604052806035815260200161321260359139611b34565b505050505050565b610adb6001600160a01b0384168383611b4d565b600081815b84811015611a1d57611a09828787848181106119fd576119fd61291a565b90506020020135611ba3565b915080611a1581612de6565b9150506119df565b50949350505050565b42831015611a465760405162461bcd60e51b815260040161054b90612fed565b828211611a655760405162461bcd60e51b815260040161054b9061304c565b80611a825760405162461bcd60e51b815260040161054b9061309d565b6001600160a01b038516611aa85760405162461bcd60e51b815260040161054b906130f2565b60008411611ac85760405162461bcd60e51b815260040161054b90613145565b5050505050565b611ad88161189a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610be8838360405180606001604052806027815260200161328760279139611bd2565b60608315611b43575081610be8565b610be88383611c40565b610adb8363a9059cbb60e01b8484604051602401611b6c929190613155565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611c6a565b6000818310611bbf576000828152602084905260409020610be8565b6000838152602083905260409020610be8565b6060600080856001600160a01b031685604051611bef9190613170565b600060405180830381855af49150503d8060008114611c2a576040519150601f19603f3d011682016040523d82523d6000602084013e611c2f565b606091505b509150915061096686838387611cfc565b815115611c505781518083602001fd5b8060405162461bcd60e51b815260040161054b91906123ad565b6000611cbf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d459092919063ffffffff16565b9050805160001480611ce0575080806020019051810190611ce091906128f9565b610adb5760405162461bcd60e51b815260040161054b906131bf565b60608315611d3b578251600003611d34576001600160a01b0385163b611d345760405162461bcd60e51b815260040161054b90613201565b50816108ea565b6108ea8383611c40565b60606108ea848460008585600080866001600160a01b03168587604051611d6c9190613170565b60006040518083038185875af1925050503d8060008114611da9576040519150601f19603f3d011682016040523d82523d6000602084013e611dae565b606091505b5091509150611dbf87838387611cfc565b979650505050505050565b6001600160e01b031981165b81146105d157600080fd5b80356104fd81611dca565b600060208284031215611e0157611e01600080fd5b60006108ea8484611de1565b8015155b82525050565b602081016104fd8284611e0d565b80611dd6565b80356104fd81611e25565b600060208284031215611e4b57611e4b600080fd5b60006108ea8484611e2b565b80611e11565b60006001600160a01b0382166104fd565b611e1181611e5d565b60c08101611e858289611e57565b611e926020830188611e6e565b611e9f6040830187611e57565b611eac6060830186611e57565b611eb96080830185611e57565b611dbf60a0830184611e57565b611dd681611e5d565b80356104fd81611ec6565b600060208284031215611eef57611eef600080fd5b60006108ea8484611ecf565b60008083601f840112611f1057611f10600080fd5b50813567ffffffffffffffff811115611f2b57611f2b600080fd5b602083019150836020820283011115611f4657611f46600080fd5b9250929050565b60008060008060608587031215611f6657611f66600080fd5b6000611f728787611e2b565b9450506020611f8387828801611ecf565b935050604085013567ffffffffffffffff811115611fa357611fa3600080fd5b611faf87828801611efb565b95989497509550505050565b602081016104fd8284611e6e565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561200557612005611fc9565b6040525050565b600061201760405190565b90506120238282611fdf565b919050565b600067ffffffffffffffff82111561204257612042611fc9565b601f19601f83011660200192915050565b82818337506000910152565b600061207261206d84612028565b61200c565b90508281526020810184848401111561208d5761208d600080fd5b612098848285612053565b509392505050565b600082601f8301126120b4576120b4600080fd5b81356108ea84826020860161205f565b600080604083850312156120da576120da600080fd5b60006120e68585611ecf565b925050602083013567ffffffffffffffff81111561210657612106600080fd5b612112858286016120a0565b9150509250929050565b602081016104fd8284611e57565b60008060006060848603121561214257612142600080fd5b600061214e8686611ecf565b935050602084013567ffffffffffffffff81111561216e5761216e600080fd5b61217a868287016120a0565b925050604084013567ffffffffffffffff81111561219a5761219a600080fd5b6121a6868287016120a0565b9150509250925092565b600080600080606085870312156121c9576121c9600080fd5b60006121d58787611e2b565b9450506020611f8387828801611e2b565b600080600080600060a0868803121561220157612201600080fd5b600061220d8888611ecf565b955050602061221e88828901611e2b565b945050604061222f88828901611e2b565b935050606061224088828901611e2b565b925050608061225188828901611e2b565b9150509295509295909350565b6000806040838503121561227457612274600080fd5b60006122808585611e2b565b925050602061211285828601611ecf565b60008060008060008060c087890312156122ad576122ad600080fd5b60006122b98989611e2b565b96505060206122ca89828a01611ecf565b95505060406122db89828a01611e2b565b94505060606122ec89828a01611e2b565b93505060806122fd89828a01611e2b565b92505060a061230e89828a01611e2b565b9150509295509295509295565b6000806040838503121561233157612331600080fd5b823567ffffffffffffffff81111561234b5761234b600080fd5b6120e6858286016120a0565b60005b8381101561237257818101518382015260200161235a565b50506000910152565b6000612385825190565b80845260208401935061239c818560208601612357565b601f01601f19169290920192915050565b60208082528101610be8818461237b565b60006104fd6001600160a01b0383166123d5565b90565b6001600160a01b031690565b60006104fd826123be565b60006104fd826123e1565b611e11816123ec565b602081016104fd82846123f7565b6000610be8838361237b565b60200190565b600061242a825190565b808452602084019350836020820285016124448560200190565b60005b848110156124785783830388528151612460848261240e565b93505060208201602098909801979150600101612447565b50909695505050505050565b805160608084526000919084019061249c828261237b565b915050602083015184820360208601526124b6828261237b565b915050604083015184820360408601526124d08282612420565b95945050505050565b6000610be88383612484565b60006124ef825190565b808452602084019350836020820285016125098560200190565b60005b84811015612478578383038852815161252584826124d9565b9350506020820160209890980197915060010161250c565b60208082528101610be881846124e5565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b19195b1959d85d1958d85b1b60a21b602082015290505b60400190565b602080825281016104fd8161254e565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b6163746976652070726f787960a01b60208201529050612591565b602080825281016104fd816125a7565b60388152602081017f555550535570677261646561626c653a206d757374206e6f742062652063616c81527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060208201529050612591565b602080825281016104fd816125fe565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529050612591565b602080825281016104fd81612666565b600060ff82166104fd565b611e11816126bf565b602081016104fd82846126ca565b80516104fd81611ec6565b60006020828403121561270157612701600080fd5b60006108ea84846126e1565b60006104fd8260601b90565b60006104fd8261270d565b611e1161273082611e5d565b612719565b61273f8183612724565b601401919050565b602a8152602081017f4143616d706169676e41697244726f703a2063616d706169676e20646f6573208152693737ba1032bc34b9ba1760b11b60208201529050612591565b602080825281016104fd81612747565b602f8152602081017f4143616d706169676e41697244726f703a2063616d706169676e20686173206181526e363932b0b23c9039ba30b93a32b21760891b60208201529050612591565b602080825281016104fd8161279c565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061282057607f821691505b602082108103612832576128326127f6565b50919050565b600081546128458161280c565b808552602085019450600182168015612865576001811461287b576128a9565b60ff1983168652602082151502860193506128a9565b60008581526020902060005b838110156128a357815488820152600190910190602001612887565b87019450505b50505092915050565b606081016128c08286611e6e565b81810360208301526128d28185612838565b905081810360408301526108e7818461237b565b801515611dd6565b80516104fd816128e6565b60006020828403121561290e5761290e600080fd5b60006108ea84846128ee565b634e487b7160e01b600052603260045260246000fd5b60006104fd82611e5d565b611dd681612930565b80516104fd8161293b565b60006020828403121561296457612964600080fd5b60006108ea8484612944565b60288152602081017f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f208152673ab833b930b2329760c11b60208201529050612591565b602080825281016104fd81612970565b80516104fd81611e25565b6000602082840312156129e3576129e3600080fd5b60006108ea84846129c3565b602e8152602081017f45524331393637557067726164653a206e657720696d706c656d656e7461746981526d6f6e206973206e6f74205555505360901b60208201529050612591565b602080825281016104fd816129ef565b60298152602081017f45524331393637557067726164653a20756e737570706f727465642070726f788152681a58589b195555525160ba1b60208201529050612591565b602080825281016104fd81612a48565b602e8152602081017f4143616d706169676e41697244726f703a207573657220616c7265616479206381526d3630b4b6b2b2103932bbb0b9321760911b60208201529050612591565b602080825281016104fd81612a9c565b602a8152602081017f4143616d706169676e41697244726f703a2075736572206973206e6f7420776881526934ba32b634b9ba32b21760b11b60208201529050612591565b602080825281016104fd81612af5565b602e8152602081017f4143616d706169676e41697244726f703a2063616d706169676e206973206e6f81526d3a1039ba30b93a32b2103cb2ba1760911b60208201529050612591565b602080825281016104fd81612b4a565b602d8152602081017f4143616d706169676e41697244726f703a2063616d706169676e20686173206181526c363932b0b23c9032b73232b21760991b60208201529050612591565b602080825281016104fd81612ba3565b60006104fd6123d28381565b612c1083612bfb565b815460001960089490940293841b1916921b91909117905550565b6000610adb818484612c07565b8181101561069b57612c4b600082612c2b565b600101612c38565b601f821115610adb576000818152602090206020601f85010481016020851015612c7a5750805b611ac86020601f860104830182612c38565b815167ffffffffffffffff811115612ca657612ca6611fc9565b612cb0825461280c565b612cbb828285612c53565b506020601f821160018114612cf05760008315612cd85750848201515b600019600885021c1981166002850217855550611ac8565b600084815260208120601f198516915b82811015612d205787850151825560209485019460019092019101612d00565b5084821015612d3d5783870151600019601f87166008021c191681555b50505050600202600101905550565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f720000000000008152905061241a565b602080825281016104fd81612d4c565b601d8152602081017f41697244726f7056333a207065726d697373696f6e2064656e6965642e0000008152905061241a565b602080825281016104fd81612d8e565b634e487b7160e01b600052601160045260246000fd5b600060018201612df857612df8612dd0565b5060010190565b6000816104fd565b60006104fd826123d5565b8054612e1d81612dff565b612e278482611e57565b50506001810154612e3781612e07565b612e446020850182611e6e565b50506002810154612e5481612dff565b612e616040850182611e57565b50506003810154612e7181612dff565b612e7e6060850182611e57565b50506004810154612e8e81612dff565b612e9b6080850182611e57565b50506005810154612eab81612dff565b9050610adb60a0840182611e57565b60c081016104fd8284612e12565b6000612ed2825190565b612ee0818560208601612357565b9290920192915050565b6d2220a7a6b2b6b132b92937b6329d60911b81525b600e016104fd8183612ec8565b6d2220a7a2bc3832b93a2937b6329d60911b8152612eff565b6d2220a7ab37ba34b733a937b6329d60911b8152612eff565b602d8152602081017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529050612591565b602080825281016104fd81612f3e565b612023816123d2565b60338152602081017f4143616d706169676e41697244726f703a2073746172742074696d65206d75738152723a1031329034b7103a343290333aba3ab9329760691b60208201529050612591565b602080825281016104fd81612f9f565b60348152602081017f4143616d706169676e41697244726f703a20656e642074696d65206d7573742081527331329030b33a32b91039ba30b93a103a34b6b29760611b60208201529050612591565b602080825281016104fd81612ffd565b60268152602081017f4143616d706169676e41697244726f703a206d65726b6c6520726f6f74206973815265103d32b9379760d11b60208201529050612591565b602080825281016104fd8161305c565b602a8152602081017f4143616d706169676e41697244726f703a2072657761726420746f6b656e2069815269399034b73b30b634b21760b11b60208201529050612591565b602080825281016104fd816130ad565b60288152602081017f4143616d706169676e41697244726f703a2072657761726420616d6f756e742081526734b9903d32b9379760c11b60208201529050612591565b602080825281016104fd81613102565b604081016131638285611e6e565b610be86020830184611e57565b6104fd8183612ec8565b602a8152602081017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529050612591565b602080825281016104fd8161317a565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000008152905061241a565b602080825281016104fd816131cf56fe5b5147444b2d3031393030305d2d5472616e7366657272696e67206f66206e61746976652063757272656e6379206661696c65642e3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a0ece14ad814ad521ab9d2d9cf2e8e73af9adb66c3ca0c7437e68324f8851a1664736f6c63430008140033",
"deployedBytecode": "0x6080604052600436106101405760003560e01c80637274e30d116100b6578063b491dc1f1161006f578063b491dc1f146103d0578063bb65dc83146103f0578063cc7a204914610412578063d8ad4e1c1461043f578063de7539631461045f578063f13bdd4d1461047457600080fd5b80637274e30d146102ff578063743ede76146103155780638cb941cc1461033557806395ab76341461035557806396826c5314610375578063a332aa9f146103b057600080fd5b80634f1ef286116101085780634f1ef2861461025557806352d1902d1461026857806358f36fcb1461028a5780635c60da1b146102aa57806369130451146102bf5780636a25f269146102df57600080fd5b806301ffc9a714610145578063141961bc1461017b5780633659cfe6146101e85780633917caf21461020a5780633e3b5b191461022a575b600080fd5b34801561015157600080fd5b50610165610160366004611dec565b610496565b6040516101729190611e17565b60405180910390f35b34801561018757600080fd5b506101d6610196366004611e36565b60016020819052600091825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919086565b60405161017296959493929190611e77565b3480156101f457600080fd5b50610208610203366004611eda565b610503565b005b34801561021657600080fd5b50610208610225366004611f4d565b6105d4565b34801561023657600080fd5b50600080516020613247833981519152545b6040516101729190611fbb565b6102086102633660046120c4565b6105e6565b34801561027457600080fd5b5061027d61069f565b604051610172919061211c565b34801561029657600080fd5b506102086102a536600461212a565b6106fc565b3480156102b657600080fd5b506102486107ff565b3480156102cb57600080fd5b506102086102da3660046120c4565b61080e565b3480156102eb57600080fd5b506101656102fa366004611f4d565b6108b3565b34801561030b57600080fd5b5061027d60005481565b34801561032157600080fd5b506101656103303660046121b0565b6108f2565b34801561034157600080fd5b50610208610350366004611eda565b610912565b34801561036157600080fd5b5061027d6103703660046121e6565b610930565b34801561038157600080fd5b5061016561039036600461225e565b600260209081526000928352604080842090915290825290205460ff1681565b3480156103bc57600080fd5b506102086103cb366004612291565b610970565b3480156103dc57600080fd5b506102086103eb36600461231b565b610a0d565b3480156103fc57600080fd5b50610405610ae0565b60405161017291906123ad565b34801561041e57600080fd5b50600554610432906001600160a01b031681565b6040516101729190612400565b34801561044b57600080fd5b5061016561045a3660046120c4565b610b72565b34801561046b57600080fd5b50610405610bef565b34801561048057600080fd5b50610489610c7d565b604051610172919061253d565b60006001600160e01b031982166363c8929f60e01b14806104c757506001600160e01b0319821663f13bdd4d60e01b145b806104e257506001600160e01b031982166336e447a160e21b145b806104fd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105545760405162461bcd60e51b815260040161054b90612597565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661058661121f565b6001600160a01b0316146105ac5760405162461bcd60e51b815260040161054b906125ee565b6105b58161123b565b604080516000808252602082019092526105d191839190611334565b50565b6105e084848484611416565b50505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361062e5760405162461bcd60e51b815260040161054b90612597565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066061121f565b6001600160a01b0316146106865760405162461bcd60e51b815260040161054b906125ee565b61068f8261123b565b61069b82826001611334565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106e95760405162461bcd60e51b815260040161054b90612656565b5060008051602061326783398151915290565b600354610100900460ff161580801561071c5750600354600160ff909116105b806107365750303b158015610736575060035460ff166001145b6107525760405162461bcd60e51b815260040161054b906126af565b6003805460ff191660011790558015610775576003805461ff0019166101001790555b60408051600081526020810190915261078f90859061080e565b6107a58460008051602061324783398151915255565b6107af83836115ea565b80156105e0576003805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906107f1906001906126d3565b60405180910390a150505050565b600061080961121f565b905090565b610816611603565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d91906126ec565b600580546001600160a01b0319166001600160a01b03929092169190911790555033600080516020613247833981519152555050565b60006108e785856040516020016108ca9190612735565b6040516020818303038152906040528051906020012085856108f2565b90505b949350505050565b6000848152600160205260408120600501546108e7908490849087611657565b61091a611603565b6105d18160008051602061324783398151915255565b60006109596040518060400160405280600681526020016543524541544560d01b81525061166f565b6109668686858588611695565b9695505050505050565b6109976040518060400160405280600681526020016555504441544560d01b81525061166f565b6000868152600160205260408120548791036109c55760405162461bcd60e51b815260040161054b9061278c565b60008781526001602052604090206003015442106109f55760405162461bcd60e51b815260040161054b906127e6565b610a038787878686896116c6565b5050505050505050565b600354610100900460ff1615808015610a2d5750600354600160ff909116105b80610a475750303b158015610a47575060035460ff166001145b610a635760405162461bcd60e51b815260040161054b906126af565b6003805460ff191660011790558015610a86576003805461ff0019166101001790555b610a9083836115ea565b8015610adb576003805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610ad2906001906126d3565b60405180910390a15b505050565b606060048054610aef9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1b9061280c565b8015610b685780601f10610b3d57610100808354040283529160200191610b68565b820191906000526020600020905b815481529060010190602001808311610b4b57829003601f168201915b5050505050905090565b600554604051633ca8e36d60e11b81526000916001600160a01b031690637951c6da90610ba7908690600490879082016128b2565b602060405180830381865afa158015610bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be891906128f9565b9392505050565b60048054610bfc9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c289061280c565b8015610c755780601f10610c4a57610100808354040283529160200191610c75565b820191906000526020600020905b815481529060010190602001808311610c5857829003601f168201915b505050505081565b6040805160038082526080820190925260609160009190816020015b610cbd60405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610c995790505090506000610d3660405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b815250815250611767565b90506040518060600160405280610dd660068054610d539061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7f9061280c565b8015610dcc5780601f10610da157610100808354040283529160200191610dcc565b820191906000526020600020905b815481529060010190602001808311610daf57829003601f168201915b50505050506117e0565b600081518110610de857610de861291a565b6020026020010151815260200160048054610e029061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2e9061280c565b8015610e7b5780601f10610e5057610100808354040283529160200191610e7b565b820191906000526020600020905b815481529060010190602001808311610e5e57829003601f168201915b505050505081526020018281525082600081518110610e9c57610e9c61291a565b60200260200101819052506000610ede60405180602001604052806040518060400160405280600681526020016511561411549560d21b815250815250611814565b90506040518060600160405280610f7e60068054610efb9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f279061280c565b8015610f745780601f10610f4957610100808354040283529160200191610f74565b820191906000526020600020905b815481529060010190602001808311610f5757829003601f168201915b5050505050611858565b600081518110610f9057610f9061291a565b6020026020010151815260200160048054610faa9061280c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd69061280c565b80156110235780601f10610ff857610100808354040283529160200191611023565b820191906000526020600020905b81548152906001019060200180831161100657829003601f168201915b5050505050815260200182815250836001815181106110445761104461291a565b602002602001018190525060405180606001604052806110ed6006805461106a9061280c565b80601f01602080910402602001604051908101604052809291908181526020018280546110969061280c565b80156110e35780601f106110b8576101008083540402835291602001916110e3565b820191906000526020600020905b8154815290600101906020018083116110c657829003601f168201915b5050505050611879565b6000815181106110ff576110ff61291a565b60200260200101518152602001600480546111199061280c565b80601f01602080910402602001604051908101604052809291908181526020018280546111459061280c565b80156111925780601f1061116757610100808354040283529160200191611192565b820191906000526020600020905b81548152906001019060200180831161117557829003601f168201915b505050505081526020016111f560405180604001604052806040518060400160405280600681526020016543524541544560d01b81525081526020016040518060400160405280600681526020016555504441544560d01b815250815250611767565b8152508360028151811061120b5761120b61291a565b602002602001018190525082935050505090565b600080516020613267833981519152546001600160a01b031690565b60055460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa158