[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "guy", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "dst", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "dst", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "Withdrawal", "type": "event" }, { "inputs": [], "name": "adminAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "guy", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "guy", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "approveSwap", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "guy", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "approveWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deposit", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "listAddress", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "address", "name": "approveFor", "type": "address" } ], "name": "disAproveBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "exchangeAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_exchangeAddress", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "seenHash", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "dst", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b50611854806100206000396000f3fe6080604052600436106101095760003560e01c80639cd0160511610095578063c4d66de811610064578063c4d66de8146102f1578063d0e30db014610311578063dd62ed3e14610319578063f9ad7a4e14610351578063fc6f94681461037157600080fd5b80639cd01605146102565780639f06f5891461028e578063a9059cbb146102be578063b9832c40146102de57600080fd5b8063313ce567116100dc578063313ce567146101a857806352bf38f3146101d45780636e0c5f40146101f457806370a082311461021457806395d89b411461024157600080fd5b806306fdde031461010e57806318160ddd1461013957806323b872dd146101565780632e1a7d4d14610186575b600080fd5b34801561011a57600080fd5b50610123610391565b604051610130919061121b565b60405180910390f35b34801561014557600080fd5b50475b604051908152602001610130565b34801561016257600080fd5b50610176610171366004611285565b61041f565b6040519015158152602001610130565b34801561019257600080fd5b506101a66101a13660046112c1565b6106d5565b005b3480156101b457600080fd5b506002546101c29060ff1681565b60405160ff9091168152602001610130565b3480156101e057600080fd5b506101a66101ef3660046113b0565b6107be565b34801561020057600080fd5b506101a661020f366004611480565b610a09565b34801561022057600080fd5b5061014861022f366004611539565b60036020526000908152604090205481565b34801561024d57600080fd5b50610123610b72565b34801561026257600080fd5b50600654610276906001600160a01b031681565b6040516001600160a01b039091168152602001610130565b34801561029a57600080fd5b506101766102a93660046112c1565b60056020526000908152604090205460ff1681565b3480156102ca57600080fd5b506101766102d9366004611554565b610b7f565b6101a66102ec366004611480565b610b95565b3480156102fd57600080fd5b506101a661030c366004611539565b610cd0565b6101a6610d64565b34801561032557600080fd5b5061014861033436600461157e565b600460209081526000928352604080842090915290825290205481565b34801561035d57600080fd5b5061017661036c366004611480565b610dbf565b34801561037d57600080fd5b50600754610276906001600160a01b031681565b6000805461039e906115b1565b80601f01602080910402602001604051908101604052809291908181526020018280546103ca906115b1565b80156104175780601f106103ec57610100808354040283529160200191610417565b820191906000526020600020905b8154815290600101906020018083116103fa57829003601f168201915b505050505081565b6001600160a01b03831660009081526003602052604081205482111561048c5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e742062616c616e6365000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660008181526004602090815260408083206006549095168352938152838220549282526003905291909120546104ce908490611601565b811115806104e657506006546001600160a01b031633145b6105325760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20546f6b656e20616c7265616479206c6f636b656400000000006044820152606401610483565b6001600160a01b038516331480159061057057506001600160a01b038516600090815260046020908152604080832033845290915290205460001914155b15610621576001600160a01b03851660009081526004602090815260408083203384529091529020548311156105e85760405162461bcd60e51b815260206004820152601d60248201527f4572726f723a20496e73756666696369656e7420616c6c6f77616e63650000006044820152606401610483565b6001600160a01b03851660009081526004602090815260408083203384529091528120805485929061061b908490611601565b90915550505b6001600160a01b03851660009081526003602052604081208054859290610649908490611601565b90915550506001600160a01b03841660009081526003602052604081208054859290610676908490611614565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106c291815260200190565b60405180910390a3506001949350505050565b336000908152600360205260409020548111156107345760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e742062616c616e636500000000006044820152606401610483565b3360009081526003602052604081208054839290610753908490611601565b9091555050604051339082156108fc029083906000818181858888f19350505050158015610785573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b6007546001600160a01b031633146108185760405162461bcd60e51b815260206004820181905260248201527f4572726f723a204f6e6c792061646d696e2063616e20646973617070726f76656044820152606401610483565b81518351146108615760405162461bcd60e51b81526020600482015260156024820152744572726f723a20496e76616c696420706172616d7360581b6044820152606401610483565b60005b8351811015610a035760006004600086848151811061088557610885611627565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000846001600160a01b03166001600160a01b031681526020019081526020016000205490508382815181106108e5576108e5611627565b6020026020010151811061098857600084838151811061090757610907611627565b60200260200101518261091a9190611601565b9050806004600088868151811061093357610933611627565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550506109f0565b6000600460008785815181106109a0576109a0611627565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b03168152602001908152602001600020819055505b50806109fb8161163d565b915050610864565b50505050565b8383838342610a1a83610258611614565b11610a375760405162461bcd60e51b815260040161048390611656565b6000848484604051602001610a4e93929190611681565b6040516020818303038152906040528051906020012090506000610a7182610f6e565b6007549091506001600160a01b0316610a8a8285610fa1565b6001600160a01b031614610ab05760405162461bcd60e51b8152600401610483906116ab565b60008181526005602052604090205460ff1615610adf5760405162461bcd60e51b8152600401610483906116d6565b6000818152600560209081526040808320805460ff1916600117905533808452600483528184206001600160a01b038f16855283528184208d905583526003909152812080548b9290610b33908490611601565b909155505060405133908a156108fc02908b906000818181858888f19350505050158015610b65573d6000803e3d6000fd5b5050505050505050505050565b6001805461039e906115b1565b6000610b8c33848461041f565b90505b92915050565b8383838342610ba683610258611614565b11610bc35760405162461bcd60e51b815260040161048390611656565b6000848484604051602001610bda93929190611681565b6040516020818303038152906040528051906020012090506000610bfd82610f6e565b6007549091506001600160a01b0316610c168285610fa1565b6001600160a01b031614610c3c5760405162461bcd60e51b8152600401610483906116ab565b60008181526005602052604090205460ff1615610c6b5760405162461bcd60e51b8152600401610483906116d6565b6000818152600560209081526040808320805460ff1916600117905533808452600483528184206001600160a01b038f16855283528184208d90558352600390915281208054349290610cbf908490611614565b909155505050505050505050505050565b600680546001600160a01b0383166001600160a01b031991821617909155600780549091163317905560408051808201909152600d81526c2bb930b83832b21022ba3432b960991b6020820152600090610d2a9082611748565b506040805180820190915260048152630ae8aa8960e31b6020820152600190610d539082611748565b50506002805460ff19166012179055565b3360009081526003602052604081208054349290610d83908490611614565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b60008484848442610dd283610258611614565b11610def5760405162461bcd60e51b815260040161048390611656565b6000848484604051602001610e0693929190611681565b6040516020818303038152906040528051906020012090506000610e2982610f6e565b6007549091506001600160a01b0316610e428285610fa1565b6001600160a01b031614610e685760405162461bcd60e51b8152600401610483906116ab565b60008181526005602052604090205460ff1615610e975760405162461bcd60e51b8152600401610483906116d6565b60016005600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508960046000336001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020819055508a6001600160a01b0316336001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258c604051610f5591815260200190565b60405180910390a35060019a9950505050505050505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b6000806000610fb08585610fc5565b91509150610fbd8161100a565b509392505050565b6000808251604103610ffb5760208301516040840151606085015160001a610fef87828585611157565b94509450505050611003565b506000905060025b9250929050565b600081600481111561101e5761101e611808565b036110265750565b600181600481111561103a5761103a611808565b036110875760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610483565b600281600481111561109b5761109b611808565b036110e85760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610483565b60038160048111156110fc576110fc611808565b036111545760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610483565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561118e5750600090506003611212565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156111e2573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661120b57600060019250925050611212565b9150600090505b94509492505050565b600060208083528351808285015260005b818110156112485785810183015185820160400152820161122c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461128057600080fd5b919050565b60008060006060848603121561129a57600080fd5b6112a384611269565b92506112b160208501611269565b9150604084013590509250925092565b6000602082840312156112d357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611319576113196112da565b604052919050565b600067ffffffffffffffff82111561133b5761133b6112da565b5060051b60200190565b600082601f83011261135657600080fd5b8135602061136b61136683611321565b6112f0565b82815260059290921b8401810191818101908684111561138a57600080fd5b8286015b848110156113a5578035835291830191830161138e565b509695505050505050565b6000806000606084860312156113c557600080fd5b833567ffffffffffffffff808211156113dd57600080fd5b818601915086601f8301126113f157600080fd5b8135602061140161136683611321565b82815260059290921b8401810191818101908a84111561142057600080fd5b948201945b838610156114455761143686611269565b82529482019490820190611425565b9750508701359250508082111561145b57600080fd5b5061146886828701611345565b92505061147760408501611269565b90509250925092565b6000806000806080858703121561149657600080fd5b61149f85611269565b9350602080860135935060408601359250606086013567ffffffffffffffff808211156114cb57600080fd5b818801915088601f8301126114df57600080fd5b8135818111156114f1576114f16112da565b611503601f8201601f191685016112f0565b9150808252898482850101111561151957600080fd5b808484018584013760008482840101525080935050505092959194509250565b60006020828403121561154b57600080fd5b610b8c82611269565b6000806040838503121561156757600080fd5b61157083611269565b946020939093013593505050565b6000806040838503121561159157600080fd5b61159a83611269565b91506115a860208401611269565b90509250929050565b600181811c908216806115c557607f821691505b6020821081036115e557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b8f57610b8f6115eb565b80820180821115610b8f57610b8f6115eb565b634e487b7160e01b600052603260045260246000fd5b60006001820161164f5761164f6115eb565b5060010190565b6020808252601190820152700496e76616c69642074696d657374616d7607c1b604082015260600190565b60609390931b6bffffffffffffffffffffffff191683526014830191909152603482015260540190565b602080825260119082015270496e76616c6964207369676e617475726560781b604082015260600190565b6020808252600990820152680aae6cac840d0c2e6d60bb1b604082015260600190565b601f82111561174357600081815260208120601f850160051c810160208610156117205750805b601f850160051c820191505b8181101561173f5782815560010161172c565b5050505b505050565b815167ffffffffffffffff811115611762576117626112da565b6117768161177084546115b1565b846116f9565b602080601f8311600181146117ab57600084156117935750858301515b600019600386901b1c1916600185901b17855561173f565b600085815260208120601f198616915b828110156117da578886015182559484019460019091019084016117bb565b50858210156117f85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea264697066735822122034c47c0bece60b8f6a5af457d6be79e698c13539f3e699ddcfd2e411fd56c4a364736f6c63430008140033