@gooddollar/goodprotocol
Version:
GoodDollar Protocol
545 lines (544 loc) • 44.8 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "FuseFaucetV2",
"sourceName": "contracts/fuseFaucet/FuseFaucetV2.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "whitelistedRoot",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "relayerOrWhitelisted",
"type": "address"
}
],
"name": "WalletTopped",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "canTop",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentDay",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "dailyNewWalletsCount",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gasPrice",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gasRefund",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gasTopping",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getIdentity",
"outputs": [
{
"internalType": "contract IIdentityV2",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getToppingAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "goodDollar_unused",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract NameService",
"name": "_ns",
"type": "address"
},
{
"internalType": "uint64",
"name": "_gasPrice",
"type": "uint64"
},
{
"internalType": "address",
"name": "_relayer",
"type": "address"
},
{
"internalType": "uint64",
"name": "gweiTopping",
"type": "uint64"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "maxDailyNewWallets",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxDailyToppings",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxPerWeekMultiplier",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxSwapAmount",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minTopping",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nameService",
"outputs": [
{
"internalType": "contract NameService",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "notFirstTime",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_from",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "onTokenTransfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "perDayRoughLimit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "relayer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "_price",
"type": "uint64"
}
],
"name": "setGasPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_gasUnits",
"type": "uint256"
}
],
"name": "setGasTopping",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "_minTop",
"type": "uint8"
}
],
"name": "setMinTopping",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "startTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_user",
"type": "address"
}
],
"name": "topWallet",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "toppings",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_relayer",
"type": "address"
},
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "contract NameService",
"name": "_ns",
"type": "address"
}
],
"name": "upgrade",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract NameService",
"name": "_ns",
"type": "address"
}
],
"name": "upgrade2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "upgrade3",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "wallets",
"outputs": [
{
"internalType": "uint128",
"name": "lastDayTopped",
"type": "uint128"
},
{
"internalType": "uint32",
"name": "dailyToppingCount",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506120d5806100206000396000f3fe6080604052600436106101775760003560e01c806315126799146101835780631ece9b12146101ab5780632f5a3d15146101d857806336afc6fa146101ee5780633771dcf8146102035780633e6326fc1461022557806354fd4d50146102455780635b61e2c11461027e5780635bc758e2146102bd5780635c9302c9146102d35780636bdd7242146102e957806370c635911461030957806378e97925146103295780637befab101461033f5780638406c0791461036357806389b08f111461038a5780638da5cb5b146103f357806393a08de414610413578063a4c0ed3614610430578063aa31e45914610460578063aaab4c1d14610490578063c25673d5146104c3578063c573cb40146104d8578063c5da1033146104f8578063c8eb754914610530578063cce987d414610550578063d1c8e12514610574578063e97eefd214610594578063f000999e146105b4578063f83ecf99146105d4578063f84b40f5146105f4578063fe173b971461060a57600080fd5b3661017e57005b600080fd5b34801561018f57600080fd5b50610198610631565b6040519081526020015b60405180910390f35b3480156101b757600080fd5b50600b546101cb906001600160a01b031681565b6040516101a29190611b3e565b3480156101e457600080fd5b5061019860025481565b3480156101fa57600080fd5b506101cb61065a565b34801561020f57600080fd5b5061022361021e366004611b6a565b6106e0565b005b34801561023157600080fd5b506006546101cb906001600160a01b031681565b34801561025157600080fd5b50600d5461026990600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101a2565b34801561028a57600080fd5b50600b546102a590600160a01b90046001600160401b031681565b6040516001600160401b0390911681526020016101a2565b3480156102c957600080fd5b5061019860035481565b3480156102df57600080fd5b5061019860055481565b3480156102f557600080fd5b50610223610304366004611baa565b610c70565b34801561031557600080fd5b50610223610324366004611bc5565b610cc6565b34801561033557600080fd5b5061019860045481565b34801561034b57600080fd5b50600a5461026990600160601b900463ffffffff1681565b34801561036f57600080fd5b50600c546101cb90600160401b90046001600160a01b031681565b34801561039657600080fd5b506103cf6103a5366004611b6a565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff9091166020830152016101a2565b3480156103ff57600080fd5b50600d546101cb906001600160a01b031681565b34801561041f57600080fd5b50600a546102699063ffffffff1681565b34801561043c57600080fd5b5061045061044b366004611bde565b610d06565b60405190151581526020016101a2565b34801561046c57600080fd5b5061045061047b366004611b6a565b60086020526000908152604090205460ff1681565b34801561049c57600080fd5b50600d546104b190600160c01b900460ff1681565b60405160ff90911681526020016101a2565b3480156104cf57600080fd5b50610223610f3d565b3480156104e457600080fd5b50600c546102a5906001600160401b031681565b34801561050457600080fd5b50610198610513366004611c66565b600760209081526000928352604080842090915290825290205481565b34801561053c57600080fd5b5061022361054b366004611c96565b610ff2565b34801561055c57600080fd5b50600a5461026990600160801b900463ffffffff1681565b34801561058057600080fd5b5061022361058f366004611cb9565b61103c565b3480156105a057600080fd5b506104506105af366004611b6a565b611220565b3480156105c057600080fd5b506102236105cf366004611d11565b6115e7565b3480156105e057600080fd5b506102236105ef366004611b6a565b6116e5565b34801561060057600080fd5b5061019860015481565b34801561061657600080fd5b50600a546102a590600160201b90046001600160401b031681565b600a5460025460009161065591600160201b9091046001600160401b031690611d72565b905090565b60065460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156106bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106559190611d8f565b60005a90508160006106f061065a565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b815260040161071b9190611b3e565b602060405180830381865afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c9190611d8f565b90506001600160a01b038116156107735780610775565b815b600554909250610783611788565b806005541461079d57600c80546001600160401b03191690555b6005546001600160a01b0384166000908152600960205260409020546001600160801b0390811691161415806107ff5750600a546001600160a01b03841660009081526009602052604090205463ffffffff918216600160801b909104909116105b6108455760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090205460ff161580156108855750600b54600c546001600160401b03600160a01b90920482169116105b8061089857506001600160a01b03821615155b6108f35760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b606482015260840161083c565b600060076005546109049190611dc2565b6001600160a01b0385166000908152600960205260408120546005549293509091610938916001600160801b031690611dd6565b905060078111610948578061094b565b60075b905081811161095a5780610965565b610965826001611de9565b9050600081610975846001611de9565b61097f9190611dd6565b90505b8281116109f7576001600160a01b038616600090815260096020526040812060010182600781106109b5576109b5611dfc565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555080806109ef90611e12565b915050610982565b506000805b838111610a6d576001600160a01b03871660009081526009602052604090206001018160078110610a2f57610a2f611dfc565b600291828204019190066010029054906101000a90046001600160801b031682610a599190611e2b565b915080610a6581611e12565b9150506109fc565b50600a54600154600160601b820463ffffffff1691610a9d91600160201b9091046001600160401b031690611d72565b610aa79190611d72565b816001600160801b031610610b1b5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b606482015260840161083c565b876000610b2661065a565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610b519190611b3e565b602060405180830381865afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611d8f565b6001600160a01b0316141580610bb95750600c54600160401b90046001600160a01b031633145b610bf65760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015260640161083c565b610bff896117a9565b505050505050505a610c119082611dd6565b610c1d9061a410611de9565b600a5490915033906108fc90610c4390600160201b90046001600160401b031684611d72565b6040518115909202916000818181858888f19350505050158015610c6b573d6000803e3d6000fd5b505050565b600d546001600160a01b03163314610c9a5760405162461bcd60e51b815260040161083c90611e52565b600a80546001600160401b03909216600160201b02600160201b600160601b0319909216919091179055565b600d546001600160a01b03163314610cf05760405162461bcd60e51b815260040161083c90611e52565b6002818155610d00908290611d72565b60015550565b600a54600090600160801b900463ffffffff16841115610d535760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b604482015260640161083c565b6000610d6183850185611b6a565b60408051600280825260608201835292935083926000926020830190803683370190505090503381600081518110610d9b57610d9b611dfc565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d9190611d8f565b81600181518110610e3057610e30611dfc565b6001600160a01b03928316602091820292909201015260405163095ea7b360e01b815290841660048201526000196024820152339063095ea7b3906044016020604051808303816000875af1158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190611e8b565b506040516318cbafe560e01b81526001600160a01b038316906318cbafe590610ee7908a9060009086908e904290600401611ead565b6000604051808303816000875af1158015610f06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f2e9190810190611f1e565b50600198975050505050505050565b6003610f4a600182611fdb565b600d54600160a01b900463ffffffff908116911614610f7b5760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff16906014610f9883612027565b91906101000a81548163ffffffff021916908363ffffffff16021790555050600a60049054906101000a90046001600160401b03166001600160401b0316600254610fe3919061204a565b6002818155610d009190611d72565b600d546001600160a01b0316331461101c5760405162461bcd60e51b815260040161083c90611e52565b600d805460ff909216600160c01b0260ff60c01b19909216919091179055565b600054610100900460ff161580801561105c5750600054600160ff909116105b806110765750303b158015611076575060005460ff166001145b6110d95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083c565b6000805460ff1916600117905580156110fc576000805461ff0019166101001790555b600c8054600160401b600160e01b031916600160401b6001600160a01b03861602179055600a8054600160201b600160601b031916600160201b6001600160401b0387811691909102919091179091558216600281815561115d9190611d72565b600155600a805442600455600680546001600160a01b0319166001600160a01b03891617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b8054600160a01b600160e01b03191661027160a31b179055600d805460ff60c01b1916600f60c01b1790558015611219576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000816001600160a01b031631611235610631565b101561124357506000919050565b6000826001600160a01b031631611258610631565b6112629190611dd6565b600d54909150600160c01b900460ff1661127a610631565b611285836064611d72565b61128f919061204a565b101561129e5750600092915050565b60006112a861065a565b6001600160a01b0316632d0e9b46856040518263ffffffff1660e01b81526004016112d39190611b3e565b602060405180830381865afa1580156112f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113149190611d8f565b90506001600160a01b0381161561132b578061132d565b835b9350600062015180600454426113439190611dd6565b61134d919061204a565b6001600160a01b038616600090815260096020526040812054919250906001600160801b0380841691161415806113aa57506001600160a01b0386166000908152600960205260409020546003600160801b90910463ffffffff16105b801561140457506001600160a01b03861660009081526008602052604090205460ff161580156113f15750600b54600c546001600160401b03600160a01b90920482169116105b8061140457506001600160a01b03831615155b6001600160a01b038716600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f010492830192600103820291508084116114385790505050505050905060006007846114909190611dc2565b6001600160a01b038916600090815260096020526040812054919250906114c0906001600160801b031686611dd6565b9050600781116114d057806114d3565b60075b90508181116114e257806114ed565b6114ed826001611de9565b90506000816114fd846001611de9565b6115079190611dd6565b90505b82811161154a57600084826007811061152557611525611dfc565b6001600160801b0390921660209290920201528061154281611e12565b91505061150a565b506000805b83811161158b5784816007811061156857611568611dfc565b60200201516115779083611e2b565b91508061158381611e12565b91505061154f565b508480156115d95750600a54600154600160601b820463ffffffff16916115c391600160201b9091046001600160401b031690611d72565b6115cd9190611d72565b816001600160801b0316105b9a9950505050505050505050565b60016115f38180611fdb565b600d54600160a01b900463ffffffff9081169116146116245760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff1690601461164183612027565b82546101009290920a63ffffffff81810219909316919092169190910217905550600d80546001600160a01b0319166001600160a01b038516179055600b54600160a01b90046001600160401b03166000036116b257600b8054600160a01b600160e01b03191661027160a31b1790555b600c8054600160401b600160e01b031916600160401b6001600160a01b038716021790556116df826116e5565b50505050565b60026116f2600182611fdb565b600d54600160a01b900463ffffffff9081169116146117235760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff1690601461174083612027565b82546101009290920a63ffffffff81810219909316919092169190910217905550600680546001600160a01b0319166001600160a01b038416179055611784610f3d565b5050565b620151806004544261179a9190611dd6565b6117a4919061204a565b600555565b8060006117b461065a565b6001600160a01b0316632d0e9b46846040518263ffffffff1660e01b81526004016117df9190611b3e565b602060405180830381865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118209190611d8f565b90506001600160a01b038116156118375780611839565b825b92506000836001600160a01b031631611850610631565b61185a9190611dd6565b600d54909150600160c01b900460ff16611872610631565b61187d836064611d72565b611887919061204a565b10156118c15760405162461bcd60e51b815260206004820152600960248201526806c6f7720746f546f760bc1b604482015260640161083c565b600060076005546118d29190611dc2565b6005546001600160a01b0387166000908152600960205260409020549192506001600160801b0390811691160361195f576001600160a01b038516600090815260096020526040902080546001919060109061193c908490600160801b900463ffffffff1661205e565b92506101000a81548163ffffffff021916908363ffffffff16021790555061198c565b6001600160a01b0385166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038616600090815260096020526040902080546001600160801b0319166001600160801b03909216919091178155829060010182600781106119da576119da611dfc565b600291828204019190066010028282829054906101000a90046001600160801b0316611a069190611e2b565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b03851660009081526008602052604090205460ff16158015611a5957506001600160a01b038316155b15611a9d57600c80546001600160401b0316906000611a778361207b565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b6001600160a01b03808616600090815260086020526040808220805460ff19166001179055519186169184156108fc0291859190818181858888f19350505050158015611aee573d6000803e3d6000fd5b50604080518381526001600160a01b0385811660208301523392908716917f7872034fbcc87890e73d66eac55389e0ffdba157b89a73bd2011157ebac1d66e910160405180910390a35050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0381168114611b6757600080fd5b50565b600060208284031215611b7c57600080fd5b8135611b8781611b52565b9392505050565b80356001600160401b0381168114611ba557600080fd5b919050565b600060208284031215611bbc57600080fd5b611b8782611b8e565b600060208284031215611bd757600080fd5b5035919050565b60008060008060608587031215611bf457600080fd5b8435611bff81611b52565b93506020850135925060408501356001600160401b0380821115611c2257600080fd5b818701915087601f830112611c3657600080fd5b813581811115611c4557600080fd5b886020828501011115611c5757600080fd5b95989497505060200194505050565b60008060408385031215611c7957600080fd5b823591506020830135611c8b81611b52565b809150509250929050565b600060208284031215611ca857600080fd5b813560ff81168114611b8757600080fd5b60008060008060808587031215611ccf57600080fd5b8435611cda81611b52565b9350611ce860208601611b8e565b92506040850135611cf881611b52565b9150611d0660608601611b8e565b905092959194509250565b600080600060608486031215611d2657600080fd5b8335611d3181611b52565b92506020840135611d4181611b52565b91506040840135611d5181611b52565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611d8957611d89611d5c565b92915050565b600060208284031215611da157600080fd5b8151611b8781611b52565b634e487b7160e01b600052601260045260246000fd5b600082611dd157611dd1611dac565b500690565b81810381811115611d8957611d89611d5c565b80820180821115611d8957611d89611d5c565b634e487b7160e01b600052603260045260246000fd5b600060018201611e2457611e24611d5c565b5060010190565b6001600160801b03818116838216019080821115611e4b57611e4b611d5c565b5092915050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611e9d57600080fd5b81518015158114611b8757600080fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611efd5784516001600160a01b031683529383019391830191600101611ed8565b50506001600160a01b03969096166060850152505050608001529392505050565b60006020808385031215611f3157600080fd5b82516001600160401b0380821115611f4857600080fd5b818501915085601f830112611f5c57600080fd5b815181811115611f6e57611f6e611e75565b8060051b604051601f19603f83011681018181108582111715611f9357611f93611e75565b604052918252848201925083810185019188831115611fb157600080fd5b938501935b82851015611fcf57845184529385019392850192611fb6565b98975050505050505050565b63ffffffff828116828216039080821115611e4b57611e4b611d5c565b6020808252601590820152743bb937b733903ab833b930b232903b32b939b4b7b760591b604082015260600190565b600063ffffffff80831681810361204057612040611d5c565b6001019392505050565b60008261205957612059611dac565b500490565b63ffffffff818116838216019080821115611e4b57611e4b611d5c565b60006001600160401b038281166002600160401b0319810161204057612040611d5c56fea2646970667358221220e69bb691be88966a855bf532234285843e15e22e9d9637a1df57efade2d0a46564736f6c63430008130033",
"deployedBytecode": "0x6080604052600436106101775760003560e01c806315126799146101835780631ece9b12146101ab5780632f5a3d15146101d857806336afc6fa146101ee5780633771dcf8146102035780633e6326fc1461022557806354fd4d50146102455780635b61e2c11461027e5780635bc758e2146102bd5780635c9302c9146102d35780636bdd7242146102e957806370c635911461030957806378e97925146103295780637befab101461033f5780638406c0791461036357806389b08f111461038a5780638da5cb5b146103f357806393a08de414610413578063a4c0ed3614610430578063aa31e45914610460578063aaab4c1d14610490578063c25673d5146104c3578063c573cb40146104d8578063c5da1033146104f8578063c8eb754914610530578063cce987d414610550578063d1c8e12514610574578063e97eefd214610594578063f000999e146105b4578063f83ecf99146105d4578063f84b40f5146105f4578063fe173b971461060a57600080fd5b3661017e57005b600080fd5b34801561018f57600080fd5b50610198610631565b6040519081526020015b60405180910390f35b3480156101b757600080fd5b50600b546101cb906001600160a01b031681565b6040516101a29190611b3e565b3480156101e457600080fd5b5061019860025481565b3480156101fa57600080fd5b506101cb61065a565b34801561020f57600080fd5b5061022361021e366004611b6a565b6106e0565b005b34801561023157600080fd5b506006546101cb906001600160a01b031681565b34801561025157600080fd5b50600d5461026990600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101a2565b34801561028a57600080fd5b50600b546102a590600160a01b90046001600160401b031681565b6040516001600160401b0390911681526020016101a2565b3480156102c957600080fd5b5061019860035481565b3480156102df57600080fd5b5061019860055481565b3480156102f557600080fd5b50610223610304366004611baa565b610c70565b34801561031557600080fd5b50610223610324366004611bc5565b610cc6565b34801561033557600080fd5b5061019860045481565b34801561034b57600080fd5b50600a5461026990600160601b900463ffffffff1681565b34801561036f57600080fd5b50600c546101cb90600160401b90046001600160a01b031681565b34801561039657600080fd5b506103cf6103a5366004611b6a565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff9091166020830152016101a2565b3480156103ff57600080fd5b50600d546101cb906001600160a01b031681565b34801561041f57600080fd5b50600a546102699063ffffffff1681565b34801561043c57600080fd5b5061045061044b366004611bde565b610d06565b60405190151581526020016101a2565b34801561046c57600080fd5b5061045061047b366004611b6a565b60086020526000908152604090205460ff1681565b34801561049c57600080fd5b50600d546104b190600160c01b900460ff1681565b60405160ff90911681526020016101a2565b3480156104cf57600080fd5b50610223610f3d565b3480156104e457600080fd5b50600c546102a5906001600160401b031681565b34801561050457600080fd5b50610198610513366004611c66565b600760209081526000928352604080842090915290825290205481565b34801561053c57600080fd5b5061022361054b366004611c96565b610ff2565b34801561055c57600080fd5b50600a5461026990600160801b900463ffffffff1681565b34801561058057600080fd5b5061022361058f366004611cb9565b61103c565b3480156105a057600080fd5b506104506105af366004611b6a565b611220565b3480156105c057600080fd5b506102236105cf366004611d11565b6115e7565b3480156105e057600080fd5b506102236105ef366004611b6a565b6116e5565b34801561060057600080fd5b5061019860015481565b34801561061657600080fd5b50600a546102a590600160201b90046001600160401b031681565b600a5460025460009161065591600160201b9091046001600160401b031690611d72565b905090565b60065460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156106bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106559190611d8f565b60005a90508160006106f061065a565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b815260040161071b9190611b3e565b602060405180830381865afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c9190611d8f565b90506001600160a01b038116156107735780610775565b815b600554909250610783611788565b806005541461079d57600c80546001600160401b03191690555b6005546001600160a01b0384166000908152600960205260409020546001600160801b0390811691161415806107ff5750600a546001600160a01b03841660009081526009602052604090205463ffffffff918216600160801b909104909116105b6108455760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090205460ff161580156108855750600b54600c546001600160401b03600160a01b90920482169116105b8061089857506001600160a01b03821615155b6108f35760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b606482015260840161083c565b600060076005546109049190611dc2565b6001600160a01b0385166000908152600960205260408120546005549293509091610938916001600160801b031690611dd6565b905060078111610948578061094b565b60075b905081811161095a5780610965565b610965826001611de9565b9050600081610975846001611de9565b61097f9190611dd6565b90505b8281116109f7576001600160a01b038616600090815260096020526040812060010182600781106109b5576109b5611dfc565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555080806109ef90611e12565b915050610982565b506000805b838111610a6d576001600160a01b03871660009081526009602052604090206001018160078110610a2f57610a2f611dfc565b600291828204019190066010029054906101000a90046001600160801b031682610a599190611e2b565b915080610a6581611e12565b9150506109fc565b50600a54600154600160601b820463ffffffff1691610a9d91600160201b9091046001600160401b031690611d72565b610aa79190611d72565b816001600160801b031610610b1b5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b606482015260840161083c565b876000610b2661065a565b6001600160a01b0316632d0e9b46836040518263ffffffff1660e01b8152600401610b519190611b3e565b602060405180830381865afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611d8f565b6001600160a01b0316141580610bb95750600c54600160401b90046001600160a01b031633145b610bf65760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015260640161083c565b610bff896117a9565b505050505050505a610c119082611dd6565b610c1d9061a410611de9565b600a5490915033906108fc90610c4390600160201b90046001600160401b031684611d72565b6040518115909202916000818181858888f19350505050158015610c6b573d6000803e3d6000fd5b505050565b600d546001600160a01b03163314610c9a5760405162461bcd60e51b815260040161083c90611e52565b600a80546001600160401b03909216600160201b02600160201b600160601b0319909216919091179055565b600d546001600160a01b03163314610cf05760405162461bcd60e51b815260040161083c90611e52565b6002818155610d00908290611d72565b60015550565b600a54600090600160801b900463ffffffff16841115610d535760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b604482015260640161083c565b6000610d6183850185611b6a565b60408051600280825260608201835292935083926000926020830190803683370190505090503381600081518110610d9b57610d9b611dfc565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d9190611d8f565b81600181518110610e3057610e30611dfc565b6001600160a01b03928316602091820292909201015260405163095ea7b360e01b815290841660048201526000196024820152339063095ea7b3906044016020604051808303816000875af1158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190611e8b565b506040516318cbafe560e01b81526001600160a01b038316906318cbafe590610ee7908a9060009086908e904290600401611ead565b6000604051808303816000875af1158015610f06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f2e9190810190611f1e565b50600198975050505050505050565b6003610f4a600182611fdb565b600d54600160a01b900463ffffffff908116911614610f7b5760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff16906014610f9883612027565b91906101000a81548163ffffffff021916908363ffffffff16021790555050600a60049054906101000a90046001600160401b03166001600160401b0316600254610fe3919061204a565b6002818155610d009190611d72565b600d546001600160a01b0316331461101c5760405162461bcd60e51b815260040161083c90611e52565b600d805460ff909216600160c01b0260ff60c01b19909216919091179055565b600054610100900460ff161580801561105c5750600054600160ff909116105b806110765750303b158015611076575060005460ff166001145b6110d95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083c565b6000805460ff1916600117905580156110fc576000805461ff0019166101001790555b600c8054600160401b600160e01b031916600160401b6001600160a01b03861602179055600a8054600160201b600160601b031916600160201b6001600160401b0387811691909102919091179091558216600281815561115d9190611d72565b600155600a805442600455600680546001600160a01b0319166001600160a01b03891617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b8054600160a01b600160e01b03191661027160a31b179055600d805460ff60c01b1916600f60c01b1790558015611219576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000816001600160a01b031631611235610631565b101561124357506000919050565b6000826001600160a01b031631611258610631565b6112629190611dd6565b600d54909150600160c01b900460ff1661127a610631565b611285836064611d72565b61128f919061204a565b101561129e5750600092915050565b60006112a861065a565b6001600160a01b0316632d0e9b46856040518263ffffffff1660e01b81526004016112d39190611b3e565b602060405180830381865afa1580156112f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113149190611d8f565b90506001600160a01b0381161561132b578061132d565b835b9350600062015180600454426113439190611dd6565b61134d919061204a565b6001600160a01b038616600090815260096020526040812054919250906001600160801b0380841691161415806113aa57506001600160a01b0386166000908152600960205260409020546003600160801b90910463ffffffff16105b801561140457506001600160a01b03861660009081526008602052604090205460ff161580156113f15750600b54600c546001600160401b03600160a01b90920482169116105b8061140457506001600160a01b03831615155b6001600160a01b038716600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f010492830192600103820291508084116114385790505050505050905060006007846114909190611dc2565b6001600160a01b038916600090815260096020526040812054919250906114c0906001600160801b031686611dd6565b9050600781116114d057806114d3565b60075b90508181116114e257806114ed565b6114ed826001611de9565b90506000816114fd846001611de9565b6115079190611dd6565b90505b82811161154a57600084826007811061152557611525611dfc565b6001600160801b0390921660209290920201528061154281611e12565b91505061150a565b506000805b83811161158b5784816007811061156857611568611dfc565b60200201516115779083611e2b565b91508061158381611e12565b91505061154f565b508480156115d95750600a54600154600160601b820463ffffffff16916115c391600160201b9091046001600160401b031690611d72565b6115cd9190611d72565b816001600160801b0316105b9a9950505050505050505050565b60016115f38180611fdb565b600d54600160a01b900463ffffffff9081169116146116245760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff1690601461164183612027565b82546101009290920a63ffffffff81810219909316919092169190910217905550600d80546001600160a01b0319166001600160a01b038516179055600b54600160a01b90046001600160401b03166000036116b257600b8054600160a01b600160e01b03191661027160a31b1790555b600c8054600160401b600160e01b031916600160401b6001600160a01b038716021790556116df826116e5565b50505050565b60026116f2600182611fdb565b600d54600160a01b900463ffffffff9081169116146117235760405162461bcd60e51b815260040161083c90611ff8565b600d8054600160a01b900463ffffffff1690601461174083612027565b82546101009290920a63ffffffff81810219909316919092169190910217905550600680546001600160a01b0319166001600160a01b038416179055611784610f3d565b5050565b620151806004544261179a9190611dd6565b6117a4919061204a565b600555565b8060006117b461065a565b6001600160a01b0316632d0e9b46846040518263ffffffff1660e01b81526004016117df9190611b3e565b602060405180830381865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118209190611d8f565b90506001600160a01b038116156118375780611839565b825b92506000836001600160a01b031631611850610631565b61185a9190611dd6565b600d54909150600160c01b900460ff16611872610631565b61187d836064611d72565b611887919061204a565b10156118c15760405162461bcd60e51b815260206004820152600960248201526806c6f7720746f546f760bc1b604482015260640161083c565b600060076005546118d29190611dc2565b6005546001600160a01b0387166000908152600960205260409020549192506001600160801b0390811691160361195f576001600160a01b038516600090815260096020526040902080546001919060109061193c908490600160801b900463ffffffff1661205e565b92506101000a81548163ffffffff021916908363ffffffff16021790555061198c565b6001600160a01b0385166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038616600090815260096020526040902080546001600160801b0319166001600160801b03909216919091178155829060010182600781106119da576119da611dfc565b600291828204019190066010028282829054906101000a90046001600160801b0316611a069190611e2b565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b03851660009081526008602052604090205460ff16158015611a5957506001600160a01b038316155b15611a9d57600c80546001600160401b0316906000611a778361207b565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b6001600160a01b03808616600090815260086020526040808220805460ff19166001179055519186169184156108fc0291859190818181858888f19350505050158015611aee573d6000803e3d6000fd5b50604080518381526001600160a01b0385811660208301523392908716917f7872034fbcc87890e73d66eac55389e0ffdba157b89a73bd2011157ebac1d66e910160405180910390a35050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0381168114611b6757600080fd5b50565b600060208284031215611b7c57600080fd5b8135611b8781611b52565b9392505050565b80356001600160401b0381168114611ba557600080fd5b919050565b600060208284031215611bbc57600080fd5b611b8782611b8e565b600060208284031215611bd757600080fd5b5035919050565b60008060008060608587031215611bf457600080fd5b8435611bff81611b52565b93506020850135925060408501356001600160401b0380821115611c2257600080fd5b818701915087601f830112611c3657600080fd5b813581811115611c4557600080fd5b886020828501011115611c5757600080fd5b95989497505060200194505050565b60008060408385031215611c7957600080fd5b823591506020830135611c8b81611b52565b809150509250929050565b600060208284031215611ca857600080fd5b813560ff81168114611b8757600080fd5b60008060008060808587031215611ccf57600080fd5b8435611cda81611b52565b9350611ce860208601611b8e565b92506040850135611cf881611b52565b9150611d0660608601611b8e565b905092959194509250565b600080600060608486031215611d2657600080fd5b8335611d3181611b52565b92506020840135611d4181611b52565b91506040840135611d5181611b52565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611d8957611d89611d5c565b92915050565b600060208284031215611da157600080fd5b8151611b8781611b52565b634e487b7160e01b600052601260045260246000fd5b600082611dd157611dd1611dac565b500690565b81810381811115611d8957611d89611d5c565b80820180821115611d8957611d89611d5c565b634e487b7160e01b600052603260045260246000fd5b600060018201611e2457611e24611d5c565b5060010190565b6001600160801b03818116838216019080821115611e4b57611e4b611d5c565b5092915050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611e9d57600080fd5b81518015158114611b8757600080fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611efd5784516001600160a01b031683529383019391830191600101611ed8565b50506001600160a01b03969096166060850152505050608001529392505050565b60006020808385031215611f3157600080fd5b82516001600160401b0380821115611f4857600080fd5b818501915085601f830112611f5c57600080fd5b815181811115611f6e57611f6e611e75565b8060051b604051601f19603f83011681018181108582111715611f9357611f93611e75565b604052918252848201925083810185019188831115611fb157600080fd5b938501935b82851015611fcf57845184529385019392850192611fb6565b98975050505050505050565b63ffffffff828116828216039080821115611e4b57611e4b611d5c565b6020808252601590820152743bb937b733903ab833b930b232903b32b939b4b7b760591b604082015260600190565b600063ffffffff80831681810361204057612040611d5c565b6001019392505050565b60008261205957612059611dac565b500490565b63ffffffff818116838216019080821115611e4b57611e4b611d5c565b60006001600160401b038281166002600160401b0319810161204057612040611d5c56fea2646970667358221220e69bb691be88966a855bf532234285843e15e22e9d9637a1df57efade2d0a46564736f6c63430008130033",
"linkReferences": {},
"deployedLinkReferences": {}
}