UNPKG

blackbull-sdk

Version:

An SDK for building applications on top of Blackbullswap

626 lines (625 loc) 41.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "BridgeToken", "sourceName": "contracts/pangolin-periphery/test/BridgeToken.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "chainId", "type": "uint256" } ], "name": "AddSupportedChainId", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "supplyIncrement", "type": "uint256" } ], "name": "AddSwapToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newBridgeRoleAddress", "type": "address" } ], "name": "MigrateBridgeRole", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "feeAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "feeAmount", "type": "uint256" }, { "indexed": false, "internalType": "bytes32", "name": "originTxId", "type": "bytes32" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "supplyDecrement", "type": "uint256" } ], "name": "RemoveSwapToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "chainId", "type": "uint256" } ], "name": "Unwrap", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" } ], "name": "addSupportedChainId", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" }, { "internalType": "uint256", "name": "supplyIncrement", "type": "uint256" } ], "name": "addSwapToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "chainIds", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newBridgeRoleAddress", "type": "address" } ], "name": "migrateBridgeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "feeAddress", "type": "address" }, { "internalType": "uint256", "name": "feeAmount", "type": "uint256" }, { "internalType": "bytes32", "name": "originTxId", "type": "bytes32" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" }, { "internalType": "uint256", "name": "supplyDecrement", "type": "uint256" } ], "name": "removeSwapToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "swap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "swapSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" } ], "name": "unwrap", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252600d81526c22bc30b6b83632902a37b5b2b760991b60208083019182528351808501909452600684526545584d502e6560d01b9084015281519192916200006591600391620001ce565b5080516200007b906004906020840190620001ce565b505060058054601260ff1990911617905550620000a6600633620000e1602090811b620011b817901c565b6000805260086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805460ff191660011790556200027a565b620000ed828262000165565b1562000140576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620001ae5760405162461bcd60e51b815260040180806020018281038252602281526020018062001d046022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000206576000855562000251565b82601f106200022157805160ff191683800117855562000251565b8280016001018555821562000251579182015b828111156200025157825182559160200191906001019062000234565b506200025f92915062000263565b5090565b5b808211156200025f576000815560010162000264565b611a7a806200028a6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80636e286671116100d8578063a457c2d71161008c578063d004f0f711610066578063d004f0f7146104c4578063dd62ed3e146104f0578063eff038301461051e57610182565b8063a457c2d714610446578063a9059cbb14610472578063ab32dbb71461049e57610182565b806379cc6790116100bd57806379cc6790146103e65780637c38b4571461041257806395d89b411461043e57610182565b80636e2866711461039d57806370a08231146103c057610182565b8063313ce5671161013a5780635d9898d3116101145780635d9898d31461031a57806366de3b361461034057806367fc19bb1461035d57610182565b8063313ce567146102b157806339509351146102cf57806342966c68146102fb57610182565b806318160ddd1161016b57806318160ddd1461024457806321d930901461025e57806323b872dd1461027b57610182565b806306fdde0314610187578063095ea7b314610204575b600080fd5b61018f61054a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c95781810151838201526020016101b1565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102306004803603604081101561021a57600080fd5b506001600160a01b0381351690602001356105e0565b604080519115158252519081900360200190f35b61024c6105fd565b60408051918252519081900360200190f35b6102306004803603602081101561027457600080fd5b5035610603565b6102306004803603606081101561029157600080fd5b506001600160a01b03813581169160208101359091169060400135610618565b6102b961069f565b6040805160ff9092168252519081900360200190f35b610230600480360360408110156102e557600080fd5b506001600160a01b0381351690602001356106a4565b6103186004803603602081101561031157600080fd5b50356106f2565b005b6103186004803603602081101561033057600080fd5b50356001600160a01b0316610706565b6103186004803603602081101561035657600080fd5b50356107a7565b610318600480360360a081101561037357600080fd5b506001600160a01b03813581169160208101359160408201351690606081013590608001356108bd565b610318600480360360408110156103b357600080fd5b5080359060200135610982565b61024c600480360360208110156103d657600080fd5b50356001600160a01b0316610a87565b610318600480360360408110156103fc57600080fd5b506001600160a01b038135169060200135610aa2565b6103186004803603604081101561042857600080fd5b506001600160a01b038135169060200135610afc565b61018f610ce8565b6102306004803603604081101561045c57600080fd5b506001600160a01b038135169060200135610d49565b6102306004803603604081101561048857600080fd5b506001600160a01b038135169060200135610db1565b61024c600480360360208110156104b457600080fd5b50356001600160a01b0316610dc5565b610318600480360360408110156104da57600080fd5b506001600160a01b038135169060200135610de3565b61024c6004803603604081101561050657600080fd5b506001600160a01b0381358116916020013516611005565b6103186004803603604081101561053457600080fd5b506001600160a01b038135169060200135611030565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105d65780601f106105ab576101008083540402835291602001916105d6565b820191906000526020600020905b8154815290600101906020018083116105b957829003601f168201915b5050505050905090565b60006105f46105ed611239565b848461123d565b50600192915050565b60025490565b60086020526000908152604090205460ff1681565b6000610625848484611329565b61069584610631611239565b61069085604051806060016040528060288152602001611948602891396001600160a01b038a1660009081526001602052604081209061066f611239565b6001600160a01b031681526020810191909152604001600020549190611484565b61123d565b5060019392505050565b601290565b60006105f46106b1611239565b8461069085600160006106c2611239565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061151b565b6107036106fd611239565b8261157c565b50565b610711600633611678565b610752576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b61075d6006336116df565b6107686006826111b8565b604080516001600160a01b038316815290517f871b00a4e20f8436702d0174eb87d84d7cd1dd5c34d4bb1b4e75438b3398d5129181900360200190a150565b6107b2600633611678565b6107f3576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b4681811415610849576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74206164642063757272656e7420636861696e2049442e00000000604482015290519081900360640190fd5b60008281526008602052604090205460ff1615156001141561086b5750610703565b600082815260086020908152604091829020805460ff19166001179055815184815291517f677e2d9a4ed9201aa86725fef875137fc53876e6b68036b974404762682bd1229281900390910190a15050565b6108c8600633611678565b610909576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b6109138585611746565b8115610923576109238383611746565b604080516001600160a01b03808816825260208201879052851681830152606081018490526080810183905290517f918d77674bb88eaf75afb307c9723ea6037706de68d6fc07dd0c6cba423a52509181900360a00190a15050505050565b3233146109d6576040805162461bcd60e51b815260206004820152601d60248201527f436f6e74726163742063616c6c73206e6f7420737570706f727465642e000000604482015290519081900360640190fd5b60008181526008602052604090205460ff161515600114610a3e576040805162461bcd60e51b815260206004820152601760248201527f436861696e204944206e6f7420737570706f727465642e000000000000000000604482015290519081900360640190fd5b610a48338361157c565b604080518381526020810183905281517f37a06799a3500428a773d00284aa706101f5ad94dae9ec37e1c3773aa54c3304929181900390910190a15050565b6001600160a01b031660009081526020819052604090205490565b6000610ad98260405180606001604052806024815260200161199260249139610ad286610acd611239565b611005565b9190611484565b9050610aed83610ae7611239565b8361123d565b610af7838361157c565b505050565b610b07600633611678565b610b58576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b610b6182611836565b610bb2576040805162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420636f6e74726163742e0000000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526007602052604090205416610c1e576040805162461bcd60e51b815260206004820152601860248201527f5377617020746f6b656e206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b6001600160a01b038216600090815260076020526040902060010154811015610c68576001600160a01b038216600090815260076020526040902060010180548290039055610ca0565b6001600160a01b0382166000908152600760205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600101555b604080516001600160a01b03841681526020810183905281517fd3b4025ff115b79bf2ec5a73c9c784ba8aa9f8f6ba9186b255895c1a9f9042a3929181900390910190a15050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105d65780601f106105ab576101008083540402835291602001916105d6565b60006105f4610d56611239565b8461069085604051806060016040528060258152602001611a206025913960016000610d80611239565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611484565b60006105f4610dbe611239565b8484611329565b6001600160a01b031660009081526007602052604090206001015490565b610dec82611836565b610e3d576040805162461bcd60e51b815260206004820152601860248201527f546f6b656e206973206e6f74206120636f6e74726163742e0000000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526007602052604090205416610ea9576040805162461bcd60e51b815260206004820152601d60248201527f5377617020746f6b656e206973206e6f74206120636f6e74726163742e000000604482015290519081900360640190fd5b6001600160a01b038216600090815260076020526040902060010154811115610f19576040805162461bcd60e51b815260206004820181905260248201527f5377617020616d6f756e74206973206d6f7265207468616e20737570706c792e604482015290519081900360640190fd5b6001600160a01b0380831660009081526007602052604080822060018101805486900390555481517f79cc679000000000000000000000000000000000000000000000000000000000815233600482015260248101869052915193169283926379cc6790926044808201939182900301818387803b158015610f9a57600080fd5b505af1158015610fae573d6000803e3d6000fd5b50505050610fbc3383611746565b604080516001600160a01b03851681526020810184905281517f562c219552544ec4c9d7a8eb850f80ea152973e315372bf4999fe7c953ea004f929181900390910190a1505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61103b600633611678565b61107c576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b61108582611836565b6110d6576040805162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420636f6e74726163742e0000000000000000604482015290519081900360640190fd5b6001600160a01b038281166000908152600760205260409020541661114e576040805180820182526001600160a01b038481168083526020808401868152600092835260079091529390209151825473ffffffffffffffffffffffffffffffffffffffff191691161781559051600190910155611170565b6001600160a01b03821660009081526007602052604090206001018054820190555b604080516001600160a01b03841681526020810183905281517f3e4fdfb0f47da284fe8b5b3a7e5d10b211e323c9a0c144c421ae1d211873f853929181900390910190a15050565b6111c28282611678565b15611214576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b3390565b6001600160a01b0383166112825760405162461bcd60e51b81526004018080602001828103825260248152602001806119fc6024913960400191505060405180910390fd5b6001600160a01b0382166112c75760405162461bcd60e51b81526004018080602001828103825260228152602001806118df6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661136e5760405162461bcd60e51b81526004018080602001828103825260258152602001806119d76025913960400191505060405180910390fd5b6001600160a01b0382166113b35760405162461bcd60e51b815260040180806020018281038252602381526020018061189a6023913960400191505060405180910390fd5b6113be838383610af7565b6113fb81604051806060016040528060268152602001611901602691396001600160a01b0386166000908152602081905260409020549190611484565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461142a908261151b565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156115135760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114d85781810151838201526020016114c0565b50505050905090810190601f1680156115055780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611575576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166115c15760405162461bcd60e51b81526004018080602001828103825260218152602001806119b66021913960400191505060405180910390fd5b6115cd82600083610af7565b61160a816040518060600160405280602281526020016118bd602291396001600160a01b0385166000908152602081905260409020549190611484565b6001600160a01b038316600090815260208190526040902055600254611630908261183c565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006001600160a01b0382166116bf5760405162461bcd60e51b81526004018080602001828103825260228152602001806119706022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6116e98282611678565b6117245760405162461bcd60e51b81526004018080602001828103825260218152602001806119276021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b0382166117a1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6117ad60008383610af7565b6002546117ba908261151b565b6002556001600160a01b0382166000908152602081905260409020546117e0908261151b565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3b151590565b600082821115611893576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203ca3bcbcafc60e9c370c4ed4718851c905e795f263c83d4f7fb92b608e31958b64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c80636e286671116100d8578063a457c2d71161008c578063d004f0f711610066578063d004f0f7146104c4578063dd62ed3e146104f0578063eff038301461051e57610182565b8063a457c2d714610446578063a9059cbb14610472578063ab32dbb71461049e57610182565b806379cc6790116100bd57806379cc6790146103e65780637c38b4571461041257806395d89b411461043e57610182565b80636e2866711461039d57806370a08231146103c057610182565b8063313ce5671161013a5780635d9898d3116101145780635d9898d31461031a57806366de3b361461034057806367fc19bb1461035d57610182565b8063313ce567146102b157806339509351146102cf57806342966c68146102fb57610182565b806318160ddd1161016b57806318160ddd1461024457806321d930901461025e57806323b872dd1461027b57610182565b806306fdde0314610187578063095ea7b314610204575b600080fd5b61018f61054a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c95781810151838201526020016101b1565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102306004803603604081101561021a57600080fd5b506001600160a01b0381351690602001356105e0565b604080519115158252519081900360200190f35b61024c6105fd565b60408051918252519081900360200190f35b6102306004803603602081101561027457600080fd5b5035610603565b6102306004803603606081101561029157600080fd5b506001600160a01b03813581169160208101359091169060400135610618565b6102b961069f565b6040805160ff9092168252519081900360200190f35b610230600480360360408110156102e557600080fd5b506001600160a01b0381351690602001356106a4565b6103186004803603602081101561031157600080fd5b50356106f2565b005b6103186004803603602081101561033057600080fd5b50356001600160a01b0316610706565b6103186004803603602081101561035657600080fd5b50356107a7565b610318600480360360a081101561037357600080fd5b506001600160a01b03813581169160208101359160408201351690606081013590608001356108bd565b610318600480360360408110156103b357600080fd5b5080359060200135610982565b61024c600480360360208110156103d657600080fd5b50356001600160a01b0316610a87565b610318600480360360408110156103fc57600080fd5b506001600160a01b038135169060200135610aa2565b6103186004803603604081101561042857600080fd5b506001600160a01b038135169060200135610afc565b61018f610ce8565b6102306004803603604081101561045c57600080fd5b506001600160a01b038135169060200135610d49565b6102306004803603604081101561048857600080fd5b506001600160a01b038135169060200135610db1565b61024c600480360360208110156104b457600080fd5b50356001600160a01b0316610dc5565b610318600480360360408110156104da57600080fd5b506001600160a01b038135169060200135610de3565b61024c6004803603604081101561050657600080fd5b506001600160a01b0381358116916020013516611005565b6103186004803603604081101561053457600080fd5b506001600160a01b038135169060200135611030565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105d65780601f106105ab576101008083540402835291602001916105d6565b820191906000526020600020905b8154815290600101906020018083116105b957829003601f168201915b5050505050905090565b60006105f46105ed611239565b848461123d565b50600192915050565b60025490565b60086020526000908152604090205460ff1681565b6000610625848484611329565b61069584610631611239565b61069085604051806060016040528060288152602001611948602891396001600160a01b038a1660009081526001602052604081209061066f611239565b6001600160a01b031681526020810191909152604001600020549190611484565b61123d565b5060019392505050565b601290565b60006105f46106b1611239565b8461069085600160006106c2611239565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061151b565b6107036106fd611239565b8261157c565b50565b610711600633611678565b610752576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b61075d6006336116df565b6107686006826111b8565b604080516001600160a01b038316815290517f871b00a4e20f8436702d0174eb87d84d7cd1dd5c34d4bb1b4e75438b3398d5129181900360200190a150565b6107b2600633611678565b6107f3576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b4681811415610849576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74206164642063757272656e7420636861696e2049442e00000000604482015290519081900360640190fd5b60008281526008602052604090205460ff1615156001141561086b5750610703565b600082815260086020908152604091829020805460ff19166001179055815184815291517f677e2d9a4ed9201aa86725fef875137fc53876e6b68036b974404762682bd1229281900390910190a15050565b6108c8600633611678565b610909576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b6109138585611746565b8115610923576109238383611746565b604080516001600160a01b03808816825260208201879052851681830152606081018490526080810183905290517f918d77674bb88eaf75afb307c9723ea6037706de68d6fc07dd0c6cba423a52509181900360a00190a15050505050565b3233146109d6576040805162461bcd60e51b815260206004820152601d60248201527f436f6e74726163742063616c6c73206e6f7420737570706f727465642e000000604482015290519081900360640190fd5b60008181526008602052604090205460ff161515600114610a3e576040805162461bcd60e51b815260206004820152601760248201527f436861696e204944206e6f7420737570706f727465642e000000000000000000604482015290519081900360640190fd5b610a48338361157c565b604080518381526020810183905281517f37a06799a3500428a773d00284aa706101f5ad94dae9ec37e1c3773aa54c3304929181900390910190a15050565b6001600160a01b031660009081526020819052604090205490565b6000610ad98260405180606001604052806024815260200161199260249139610ad286610acd611239565b611005565b9190611484565b9050610aed83610ae7611239565b8361123d565b610af7838361157c565b505050565b610b07600633611678565b610b58576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b610b6182611836565b610bb2576040805162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420636f6e74726163742e0000000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526007602052604090205416610c1e576040805162461bcd60e51b815260206004820152601860248201527f5377617020746f6b656e206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b6001600160a01b038216600090815260076020526040902060010154811015610c68576001600160a01b038216600090815260076020526040902060010180548290039055610ca0565b6001600160a01b0382166000908152600760205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600101555b604080516001600160a01b03841681526020810183905281517fd3b4025ff115b79bf2ec5a73c9c784ba8aa9f8f6ba9186b255895c1a9f9042a3929181900390910190a15050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105d65780601f106105ab576101008083540402835291602001916105d6565b60006105f4610d56611239565b8461069085604051806060016040528060258152602001611a206025913960016000610d80611239565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611484565b60006105f4610dbe611239565b8484611329565b6001600160a01b031660009081526007602052604090206001015490565b610dec82611836565b610e3d576040805162461bcd60e51b815260206004820152601860248201527f546f6b656e206973206e6f74206120636f6e74726163742e0000000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526007602052604090205416610ea9576040805162461bcd60e51b815260206004820152601d60248201527f5377617020746f6b656e206973206e6f74206120636f6e74726163742e000000604482015290519081900360640190fd5b6001600160a01b038216600090815260076020526040902060010154811115610f19576040805162461bcd60e51b815260206004820181905260248201527f5377617020616d6f756e74206973206d6f7265207468616e20737570706c792e604482015290519081900360640190fd5b6001600160a01b0380831660009081526007602052604080822060018101805486900390555481517f79cc679000000000000000000000000000000000000000000000000000000000815233600482015260248101869052915193169283926379cc6790926044808201939182900301818387803b158015610f9a57600080fd5b505af1158015610fae573d6000803e3d6000fd5b50505050610fbc3383611746565b604080516001600160a01b03851681526020810184905281517f562c219552544ec4c9d7a8eb850f80ea152973e315372bf4999fe7c953ea004f929181900390910190a1505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61103b600633611678565b61107c576040805162461bcd60e51b815260206004820152600d60248201526c2ab730baba3437b934bd32b21760991b604482015290519081900360640190fd5b61108582611836565b6110d6576040805162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420636f6e74726163742e0000000000000000604482015290519081900360640190fd5b6001600160a01b038281166000908152600760205260409020541661114e576040805180820182526001600160a01b038481168083526020808401868152600092835260079091529390209151825473ffffffffffffffffffffffffffffffffffffffff191691161781559051600190910155611170565b6001600160a01b03821660009081526007602052604090206001018054820190555b604080516001600160a01b03841681526020810183905281517f3e4fdfb0f47da284fe8b5b3a7e5d10b211e323c9a0c144c421ae1d211873f853929181900390910190a15050565b6111c28282611678565b15611214576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b3390565b6001600160a01b0383166112825760405162461bcd60e51b81526004018080602001828103825260248152602001806119fc6024913960400191505060405180910390fd5b6001600160a01b0382166112c75760405162461bcd60e51b81526004018080602001828103825260228152602001806118df6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661136e5760405162461bcd60e51b81526004018080602001828103825260258152602001806119d76025913960400191505060405180910390fd5b6001600160a01b0382166113b35760405162461bcd60e51b815260040180806020018281038252602381526020018061189a6023913960400191505060405180910390fd5b6113be838383610af7565b6113fb81604051806060016040528060268152602001611901602691396001600160a01b0386166000908152602081905260409020549190611484565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461142a908261151b565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156115135760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114d85781810151838201526020016114c0565b50505050905090810190601f1680156115055780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611575576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166115c15760405162461bcd60e51b81526004018080602001828103825260218152602001806119b66021913960400191505060405180910390fd5b6115cd82600083610af7565b61160a816040518060600160405280602281526020016118bd602291396001600160a01b0385166000908152602081905260409020549190611484565b6001600160a01b038316600090815260208190526040902055600254611630908261183c565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006001600160a01b0382166116bf5760405162461bcd60e51b81526004018080602001828103825260228152602001806119706022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6116e98282611678565b6117245760405162461bcd60e51b81526004018080602001828103825260218152602001806119276021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b0382166117a1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6117ad60008383610af7565b6002546117ba908261151b565b6002556001600160a01b0382166000908152602081905260409020546117e0908261151b565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3b151590565b600082821115611893576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203ca3bcbcafc60e9c370c4ed4718851c905e795f263c83d4f7fb92b608e31958b64736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} }