[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "address", "name": "_bridgeOperator", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "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": true, "internalType": "address", "name": "newOperator", "type": "address" } ], "name": "BridgeOperatorSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "BridgeSwap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" } ], "name": "CheckBridgeAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": 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" }, { "inputs": [], "name": "acceptOwnership", "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": "value", "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": [], "name": "bridgeOperator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "bridgeSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setBridgeOperator", "outputs": [], "stateMutability": "nonpayable", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620013713803806200137183398101604081905262000034916200035f565b838333806200005e57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200006981620000bb565b50600562000078838262000483565b50600662000087828262000483565b5050600780546001600160a01b0319166001600160a01b03841617905550620000b13383620000d9565b5050505062000577565b600180546001600160a01b0319169055620000d68162000117565b50565b6001600160a01b038216620001055760405163ec442f0560e01b81526000600482015260240162000055565b620001136000838362000167565b5050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620001965780600460008282546200018a91906200054f565b909155506200020a9050565b6001600160a01b03831660009081526002602052604090205481811015620001eb5760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640162000055565b6001600160a01b03841660009081526002602052604090209082900390555b6001600160a01b038216620002285760048054829003905562000247565b6001600160a01b03821660009081526002602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200028d91815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620002c257600080fd5b81516001600160401b0380821115620002df57620002df6200029a565b604051601f8301601f19908116603f011681019082821181831017156200030a576200030a6200029a565b816040528381526020925086838588010111156200032757600080fd5b600091505b838210156200034b57858201830151818301840152908201906200032c565b600093810190920192909252949350505050565b600080600080608085870312156200037657600080fd5b84516001600160401b03808211156200038e57600080fd5b6200039c88838901620002b0565b95506020870151915080821115620003b357600080fd5b50620003c287828801620002b0565b60408701516060880151919550935090506001600160a01b0381168114620003e957600080fd5b939692955090935050565b600181811c908216806200040957607f821691505b6020821081036200042a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200047e57600081815260208120601f850160051c81016020861015620004595750805b601f850160051c820191505b818110156200047a5782815560010162000465565b5050505b505050565b81516001600160401b038111156200049f576200049f6200029a565b620004b781620004b08454620003f4565b8462000430565b602080601f831160018114620004ef5760008415620004d65750858301515b600019600386901b1c1916600185901b1785556200047a565b600085815260208120601f198616915b828110156200052057888601518255948401946001909101908401620004ff565b50858210156200053f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200057157634e487b7160e01b600052601160045260246000fd5b92915050565b610dea80620005876000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806379ba5097116100ad578063a9059cbb11610071578063a9059cbb14610248578063af77ad8c1461025b578063dd62ed3e1461026e578063e30c3978146102a7578063f2fde38b146102b857600080fd5b806379ba50971461020c5780638da5cb5b1461021457806395d89b4114610225578063965a803a1461022d5780639dc29fac1461023557600080fd5b8063313ce567116100f4578063313ce5671461018c57806340c10f191461019b578063590665c2146101b057806370a08231146101db578063715018a61461020457600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102cb565b60405161013b9190610b83565b60405180910390f35b610157610152366004610bed565b61035d565b604051901515815260200161013b565b6004545b60405190815260200161013b565b610157610187366004610c17565b610377565b6040516012815260200161013b565b6101ae6101a9366004610bed565b61039b565b005b6007546101c3906001600160a01b031681565b6040516001600160a01b03909116815260200161013b565b61016b6101e9366004610c53565b6001600160a01b031660009081526002602052604090205490565b6101ae610432565b6101ae610446565b6000546001600160a01b03166101c3565b61012e61048a565b6101ae610499565b6101ae610243366004610bed565b6104d9565b610157610256366004610bed565b61055f565b6101ae610269366004610c75565b61056d565b61016b61027c366004610c8e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6001546001600160a01b03166101c3565b6101ae6102c6366004610c53565b61071e565b6060600580546102da90610cc1565b80601f016020809104026020016040519081016040528092919081815260200182805461030690610cc1565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905090565b60003361036b81858561078f565b60019150505b92915050565b6000336103858582856107a1565b61039085858561081f565b506001949350505050565b6007546001600160a01b03163314806103be57506000546001600160a01b031633145b6103e35760405162461bcd60e51b81526004016103da90610cfb565b60405180910390fd5b6103ed828261087e565b6040518181526001600160a01b0383169033907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8906020015b60405180910390a35050565b61043a6108b8565b61044460006108e5565b565b60015433906001600160a01b0316811461047e5760405163118cdaa760e01b81526001600160a01b03821660048201526024016103da565b610487816108e5565b50565b6060600680546102da90610cc1565b600780546001600160a01b031916339081179091556040517feb1ea191765b0057a7cee9b896fe7020681c354e1e743e4464054550446c934a90600090a2565b6007546001600160a01b03163314806104fc57506000546001600160a01b031633145b6105185760405162461bcd60e51b81526004016103da90610cfb565b61052282826108fe565b6040518181526001600160a01b0383169033907fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b945390602001610426565b60003361036b81858561081f565b600081116105bd5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f60448201526064016103da565b604051636eb1769f60e11b8152336004820152306024820181905260009163dd62ed3e90604401602060405180830381865afa158015610601573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106259190610d58565b9050818110156106705760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016103da565b6040516323b872dd60e01b8152336004820152306024820181905260448201849052906323b872dd906064016020604051808303816000875af11580156106bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190610d71565b506106ea30836104d9565b604051828152339030907f1b4c5e52ae2ee88dfcc63788a5a917ed2b002313bc33a1bf232735ccda3b76e590602001610426565b6107266108b8565b600180546001600160a01b0383166001600160a01b031990911681179091556107576000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61079c8383836001610934565b505050565b6001600160a01b038381166000908152600360209081526040808320938616835292905220546000198114610819578181101561080a57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103da565b61081984848484036000610934565b50505050565b6001600160a01b03831661084957604051634b637e8f60e11b8152600060048201526024016103da565b6001600160a01b0382166108735760405163ec442f0560e01b8152600060048201526024016103da565b61079c838383610a09565b6001600160a01b0382166108a85760405163ec442f0560e01b8152600060048201526024016103da565b6108b460008383610a09565b5050565b6000546001600160a01b031633146104445760405163118cdaa760e01b81523360048201526024016103da565b600180546001600160a01b031916905561048781610b33565b6001600160a01b03821661092857604051634b637e8f60e11b8152600060048201526024016103da565b6108b482600083610a09565b6001600160a01b03841661095e5760405163e602df0560e01b8152600060048201526024016103da565b6001600160a01b03831661098857604051634a1406b160e11b8152600060048201526024016103da565b6001600160a01b038085166000908152600360209081526040808320938716835292905220829055801561081957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109fb91815260200190565b60405180910390a350505050565b6001600160a01b038316610a34578060046000828254610a299190610d93565b90915550610aa69050565b6001600160a01b03831660009081526002602052604090205481811015610a875760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103da565b6001600160a01b03841660009081526002602052604090209082900390555b6001600160a01b038216610ac257600480548290039055610ae1565b6001600160a01b03821660009081526002602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2691815260200190565b60405180910390a3505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015610bb057858101830151858201604001528201610b94565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610be857600080fd5b919050565b60008060408385031215610c0057600080fd5b610c0983610bd1565b946020939093013593505050565b600080600060608486031215610c2c57600080fd5b610c3584610bd1565b9250610c4360208501610bd1565b9150604084013590509250925092565b600060208284031215610c6557600080fd5b610c6e82610bd1565b9392505050565b600060208284031215610c8757600080fd5b5035919050565b60008060408385031215610ca157600080fd5b610caa83610bd1565b9150610cb860208401610bd1565b90509250929050565b600181811c90821680610cd557607f821691505b602082108103610cf557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252603d908201527f4f6e6c7920617070726f76656420627269646765206f70657261746f72206f7260408201527f206f776e65722063616e2063616c6c20746869732066756e6374696f6e000000606082015260800190565b600060208284031215610d6a57600080fd5b5051919050565b600060208284031215610d8357600080fd5b81518015158114610c6e57600080fd5b8082018082111561037157634e487b7160e01b600052601160045260246000fdfea264697066735822122098fc79ddfed36a5067a7f6fb192675cff00c847ad89ccb912573ef77ec64638b64736f6c63430008150033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000021e0c0013070adc0000000000000000000000000000f9d64d54d32ee2bdceaabfa60c4c438e224427d0000000000000000000000000000000000000000000000000000000000000000954657374546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025454000000000000000000000000000000000000000000000000000000000000