From d5692946483549b3c584e8a7c7e518c6915870af Mon Sep 17 00:00:00 2001 From: brunoedcf Date: Tue, 31 Jan 2023 14:38:34 -0300 Subject: [PATCH 01/10] Contracts addresses, getLiquidity function and blockchain (deposit, lock, release) methods corrected --- .env.example | 3 - src/blockchain/addresses.ts | 8 +- src/blockchain/buyerMethods.ts | 8 +- src/blockchain/events.ts | 39 +- src/blockchain/sellerMethods.ts | 1 + src/model/ValidDeposit.ts | 7 +- src/utils/smart_contract_files/MockToken.json | 4 +- src/utils/smart_contract_files/P2PIX.json | 369 ++++++++++++------ src/utils/smart_contract_files/goerli.json | 8 - src/utils/smart_contract_files/localhost.json | 8 - .../smart_contract_files/polygon-mumbai.json | 8 - src/utils/smart_contract_files/wallets.json | 6 - src/views/HomeView.vue | 8 +- 13 files changed, 305 insertions(+), 172 deletions(-) delete mode 100644 .env.example delete mode 100644 src/utils/smart_contract_files/goerli.json delete mode 100644 src/utils/smart_contract_files/localhost.json delete mode 100644 src/utils/smart_contract_files/polygon-mumbai.json delete mode 100644 src/utils/smart_contract_files/wallets.json diff --git a/.env.example b/.env.example deleted file mode 100644 index 30d4d77..0000000 --- a/.env.example +++ /dev/null @@ -1,3 +0,0 @@ -VITE_API_URL=http://localhost:8000/ -VITE_GOERLI_API_URL={GOERLI_API_URL_ALCHEMY} -VITE_MUMBAI_API_URL={MUMBAI_API_URL_ALCHEMY} \ No newline at end of file diff --git a/src/blockchain/addresses.ts b/src/blockchain/addresses.ts index 8fc74fe..53b647c 100644 --- a/src/blockchain/addresses.ts +++ b/src/blockchain/addresses.ts @@ -5,8 +5,8 @@ const getTokenAddress = (): string => { const etherStore = useEtherStore(); const possibleTokenAddresses: { [key: string]: string } = { - Ethereum: "0x294003F602c321627152c6b7DED3EAb5bEa853Ee", - Polygon: "0x294003F602c321627152c6b7DED3EAb5bEa853Ee", + Ethereum: "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00", + Polygon: "0xC86042E9F2977C62Da8c9dDF7F9c40fde4796A29", }; return possibleTokenAddresses[etherStore.networkName]; @@ -16,8 +16,8 @@ const getP2PixAddress = (): string => { const etherStore = useEtherStore(); const possibleP2PixAddresses: { [key: string]: string } = { - Ethereum: "0x5f3EFA9A90532914545CEf527C530658af87e196", - Polygon: "0x5f3EFA9A90532914545CEf527C530658af87e196", + Ethereum: "0xefa5cE4351cda51192509cf8De7d8881ADAE95DD", + Polygon: "0xA9258eBb157E4cf5e756b77FDD0DF09C2F73240b", }; return possibleP2PixAddresses[etherStore.networkName]; diff --git a/src/blockchain/buyerMethods.ts b/src/blockchain/buyerMethods.ts index 92cc2a8..b2e3a81 100644 --- a/src/blockchain/buyerMethods.ts +++ b/src/blockchain/buyerMethods.ts @@ -9,7 +9,8 @@ import { BigNumber, ethers } from "ethers"; import { parseEther } from "ethers/lib/utils"; const addLock = async ( - depositId: BigNumber, + seller: string, + token: string, amount: number ): Promise => { const etherStore = useEtherStore(); @@ -17,7 +18,8 @@ const addLock = async ( const p2pContract = getContract(); const lock = await p2pContract.lock( - depositId, // BigNumber + seller, + token, etherStore.walletAddress, // String "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" (Example) ethers.constants.AddressZero, // String "0x0000000000000000000000000000000000000000" 0, @@ -33,7 +35,7 @@ const addLock = async ( }; const releaseLock = async ( - pixKey: string, + pixKey: number, amount: number, e2eId: string, lockId: string diff --git a/src/blockchain/events.ts b/src/blockchain/events.ts index 0e5558e..8cf3d9f 100644 --- a/src/blockchain/events.ts +++ b/src/blockchain/events.ts @@ -20,19 +20,25 @@ const getNetworksLiquidity = async (): Promise => { ); // mumbai provider const p2pContractGoerli = new ethers.Contract( - "0x5f3EFA9A90532914545CEf527C530658af87e196", + "0xefa5cE4351cda51192509cf8De7d8881ADAE95DD", p2pix.abi, goerliProvider ); const p2pContractMumbai = new ethers.Contract( - "0x5f3EFA9A90532914545CEf527C530658af87e196", + "0xA9258eBb157E4cf5e756b77FDD0DF09C2F73240b", p2pix.abi, mumbaiProvider ); - const depositListGoerli = await getValidDeposits(p2pContractGoerli); + const depositListGoerli = await getValidDeposits( + "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00", + p2pContractGoerli + ); - const depositListMumbai = await getValidDeposits(p2pContractMumbai); + const depositListMumbai = await getValidDeposits( + "0xC86042E9F2977C62Da8c9dDF7F9c40fde4796A29", + p2pContractMumbai + ); etherStore.setDepositsValidListGoerli(depositListGoerli); console.log(depositListGoerli); @@ -42,6 +48,7 @@ const getNetworksLiquidity = async (): Promise => { }; const getValidDeposits = async ( + token: string, contract?: Contract ): Promise => { let p2pContract: Contract; @@ -59,18 +66,28 @@ const getValidDeposits = async ( const depositList = await Promise.all( eventsDeposits.map(async (deposit) => { - const mappedDeposit = await p2pContract.mapDeposits( - deposit.args?.depositID + // Get liquidity only for the selected token + if (deposit.args?.token != token) return null; + + const mappedBalance = await p2pContract.getBalance( + deposit.args?.seller, + token ); + + const mappedPixTarget = await p2pContract.getPixTarget( + deposit.args?.seller, + token + ); + let validDeposit: ValidDeposit | null = null; - if (mappedDeposit.valid) { + if (mappedBalance._hex) { validDeposit = { + token: token, blockNumber: deposit.blockNumber, - depositID: deposit.args?.depositID, - remaining: Number(formatEther(mappedDeposit.remaining)), - seller: mappedDeposit.seller, - pixKey: mappedDeposit.pixTarget, + remaining: Number(formatEther(mappedBalance._hex)), + seller: deposit.args?.seller, + pixKey: Number(mappedPixTarget._hex), }; } diff --git a/src/blockchain/sellerMethods.ts b/src/blockchain/sellerMethods.ts index 6385f7f..7e11641 100644 --- a/src/blockchain/sellerMethods.ts +++ b/src/blockchain/sellerMethods.ts @@ -33,6 +33,7 @@ const addDeposit = async (tokenQty: string, pixKey: string): Promise => { getTokenAddress(), parseEther(tokenQty), pixKey, + true, ethers.utils.formatBytes32String("") ); diff --git a/src/model/ValidDeposit.ts b/src/model/ValidDeposit.ts index d22693b..a57383e 100644 --- a/src/model/ValidDeposit.ts +++ b/src/model/ValidDeposit.ts @@ -1,10 +1,7 @@ -import type { BigNumber } from "ethers"; - export type ValidDeposit = { - depositID: BigNumber; + token: string; blockNumber: number; remaining: number; seller: string; - pixKey: string; - pixTarget?: string; + pixKey: number; }; diff --git a/src/utils/smart_contract_files/MockToken.json b/src/utils/smart_contract_files/MockToken.json index 02d3603..8b17455 100644 --- a/src/utils/smart_contract_files/MockToken.json +++ b/src/utils/smart_contract_files/MockToken.json @@ -330,8 +330,8 @@ "type": "function" } ], - "bytecode": "0x60e06040523480156200001157600080fd5b50604051620010bf380380620010bf833981016040819052620000349162000279565b6040805180820182526007815266135bd8dad0949360ca1b6020808301918252835180850190945260048452631350949360e21b908401528151919291601291620000839160009190620001d3565b50815162000099906001906020850190620001d3565b5060ff81166080524660a052620000af620000ca565b60c05250620000c391503390508262000166565b506200039b565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620000fe9190620002d0565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546200017a919062000374565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001e19062000293565b90600052602060002090601f01602090048101928262000205576000855562000250565b82601f106200022057805160ff191683800117855562000250565b8280016001018555821562000250579182015b828111156200025057825182559160200191906001019062000233565b506200025e92915062000262565b5090565b5b808211156200025e576000815560010162000263565b6000602082840312156200028c57600080fd5b5051919050565b600181811c90821680620002a857607f821691505b60208210811415620002ca57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620002ed57607f831692505b60208084108214156200030e57634e487b7160e01b86526022600452602486fd5b818015620003255760018114620003375762000366565b60ff1986168952848901965062000366565b60008a81526020902060005b868110156200035e5781548b82015290850190830162000343565b505084890196505b509498975050505050505050565b600082198211156200039657634e487b7160e01b600052601160045260246000fd5b500190565b60805160a05160c051610cf4620003cb60003960006104630152600061042e015260006101540152610cf46000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb146101d8578063d505accf146101eb578063dd62ed3e14610200578063ea66696c1461022b57600080fd5b806370a08231146101905780637ecebe00146101b057806395d89b41146101d057600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906108fc565b60405180910390f35b61011561011036600461096d565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610997565b610338565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e61042a565b61012e61019e3660046109d3565b60036020526000908152604090205481565b61012e6101be3660046109d3565b60056020526000908152604090205481565b6100ec610485565b6101156101e636600461096d565b610492565b6101fe6101f93660046109f5565b61050a565b005b61012e61020e366004610a68565b600460209081526000928352604080842090915290825290205481565b6101fe610239366004610ab1565b6107b1565b6000805461024b90610b7c565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610b7c565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103279086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146103945761036f8382610bcd565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b038516600090815260036020526040812080548592906103bc908490610bcd565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104179087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104605761045b6107f7565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001805461024b90610b7c565b336000908152600360205260408120805483919083906104b3908490610bcd565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103279086815260200190565b42841015610579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b6000600161058561042a565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f19010000000000000000000000000000000000000000000000000000000000006101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156106ac573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106e25750876001600160a01b0316816001600160a01b0316145b610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152606401610570565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b815160005b818110156107f1576107e18482815181106107d3576107d3610be4565b602002602001015184610891565b6107ea81610bfa565b90506107b6565b50505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108299190610c15565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546108a39190610ccf565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156109295785810183015185820160400152820161090d565b8181111561093b576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461096857600080fd5b919050565b6000806040838503121561098057600080fd5b61098983610951565b946020939093013593505050565b6000806000606084860312156109ac57600080fd5b6109b584610951565b92506109c360208501610951565b9150604084013590509250925092565b6000602082840312156109e557600080fd5b6109ee82610951565b9392505050565b600080600080600080600060e0888a031215610a1057600080fd5b610a1988610951565b9650610a2760208901610951565b95506040880135945060608801359350608088013560ff81168114610a4b57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610a7b57600080fd5b610a8483610951565b9150610a9260208401610951565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610ac457600080fd5b823567ffffffffffffffff80821115610adc57600080fd5b818501915085601f830112610af057600080fd5b8135602082821115610b0457610b04610a9b565b8160051b604051601f19603f83011681018181108682111715610b2957610b29610a9b565b604052928352818301935084810182019289841115610b4757600080fd5b948201945b83861015610b6c57610b5d86610951565b85529482019493820193610b4c565b9997909101359750505050505050565b600181811c90821680610b9057607f821691505b60208210811415610bb157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610bdf57610bdf610bb7565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610c0e57610c0e610bb7565b5060010190565b600080835481600182811c915080831680610c3157607f831692505b6020808410821415610c5157634e487b7160e01b86526022600452602486fd5b818015610c655760018114610c9457610cc1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650610cc1565b60008a81526020902060005b86811015610cb95781548b820152908501908301610ca0565b505084890196505b509498975050505050505050565b60008219821115610ce257610ce2610bb7565b50019056fea164736f6c6343000809000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb146101d8578063d505accf146101eb578063dd62ed3e14610200578063ea66696c1461022b57600080fd5b806370a08231146101905780637ecebe00146101b057806395d89b41146101d057600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906108fc565b60405180910390f35b61011561011036600461096d565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610997565b610338565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e61042a565b61012e61019e3660046109d3565b60036020526000908152604090205481565b61012e6101be3660046109d3565b60056020526000908152604090205481565b6100ec610485565b6101156101e636600461096d565b610492565b6101fe6101f93660046109f5565b61050a565b005b61012e61020e366004610a68565b600460209081526000928352604080842090915290825290205481565b6101fe610239366004610ab1565b6107b1565b6000805461024b90610b7c565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610b7c565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103279086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146103945761036f8382610bcd565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b038516600090815260036020526040812080548592906103bc908490610bcd565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104179087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104605761045b6107f7565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001805461024b90610b7c565b336000908152600360205260408120805483919083906104b3908490610bcd565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103279086815260200190565b42841015610579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b6000600161058561042a565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f19010000000000000000000000000000000000000000000000000000000000006101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156106ac573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106e25750876001600160a01b0316816001600160a01b0316145b610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152606401610570565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b815160005b818110156107f1576107e18482815181106107d3576107d3610be4565b602002602001015184610891565b6107ea81610bfa565b90506107b6565b50505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108299190610c15565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546108a39190610ccf565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156109295785810183015185820160400152820161090d565b8181111561093b576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461096857600080fd5b919050565b6000806040838503121561098057600080fd5b61098983610951565b946020939093013593505050565b6000806000606084860312156109ac57600080fd5b6109b584610951565b92506109c360208501610951565b9150604084013590509250925092565b6000602082840312156109e557600080fd5b6109ee82610951565b9392505050565b600080600080600080600060e0888a031215610a1057600080fd5b610a1988610951565b9650610a2760208901610951565b95506040880135945060608801359350608088013560ff81168114610a4b57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610a7b57600080fd5b610a8483610951565b9150610a9260208401610951565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610ac457600080fd5b823567ffffffffffffffff80821115610adc57600080fd5b818501915085601f830112610af057600080fd5b8135602082821115610b0457610b04610a9b565b8160051b604051601f19603f83011681018181108682111715610b2957610b29610a9b565b604052928352818301935084810182019289841115610b4757600080fd5b948201945b83861015610b6c57610b5d86610951565b85529482019493820193610b4c565b9997909101359750505050505050565b600181811c90821680610b9057607f821691505b60208210811415610bb157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610bdf57610bdf610bb7565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610c0e57610c0e610bb7565b5060010190565b600080835481600182811c915080831680610c3157607f831692505b6020808410821415610c5157634e487b7160e01b86526022600452602486fd5b818015610c655760018114610c9457610cc1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650610cc1565b60008a81526020902060005b86811015610cb95781548b820152908501908301610ca0565b505084890196505b509498975050505050505050565b60008219821115610ce257610ce2610bb7565b50019056fea164736f6c6343000809000a", + "bytecode": "0x60e06040523480156200001157600080fd5b506040516200129938038062001299833981016040819052620000349162000279565b6040805180820182526007815266135bd8dad0949360ca1b6020808301918252835180850190945260048452631350949360e21b908401528151919291601291620000839160009190620001d3565b50815162000099906001906020850190620001d3565b5060ff81166080524660a052620000af620000ca565b60c05250620000c391503390508262000166565b506200039b565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620000fe9190620002d0565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546200017a919062000374565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001e19062000293565b90600052602060002090601f01602090048101928262000205576000855562000250565b82601f106200022057805160ff191683800117855562000250565b8280016001018555821562000250579182015b828111156200025057825182559160200191906001019062000233565b506200025e92915062000262565b5090565b5b808211156200025e576000815560010162000263565b6000602082840312156200028c57600080fd5b5051919050565b600181811c90821680620002a857607f821691505b60208210811415620002ca57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620002ed57607f831692505b60208084108214156200030e57634e487b7160e01b86526022600452602486fd5b818015620003255760018114620003375762000366565b60ff1986168952848901965062000366565b60008a81526020902060005b868110156200035e5781548b82015290850190830162000343565b505084890196505b509498975050505050505050565b600082198211156200039657634e487b7160e01b600052601160045260246000fd5b500190565b60805160a05160c051610ece620003cb60003960006104c20152600061048d015260006101540152610ece6000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb146101d8578063d505accf146101eb578063dd62ed3e14610200578063ea66696c1461022b57600080fd5b806370a08231146101905780637ecebe00146101b057806395d89b41146101d057600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906109f2565b60405180910390f35b610115610110366004610a8e565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610ab8565b610345565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e610489565b61012e61019e366004610af4565b60036020526000908152604090205481565b61012e6101be366004610af4565b60056020526000908152604090205481565b6100ec6104e4565b6101156101e6366004610a8e565b6104f1565b6101fe6101f9366004610b16565b610576565b005b61012e61020e366004610b89565b600460209081526000928352604080842090915290825290205481565b6101fe610239366004610beb565b61089a565b6000805461024b90610cd4565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610cd4565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103349086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103d9576103a78382610d57565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260408120805485929061040e908490610d57565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104769087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104bf576104ba6108e0565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001805461024b90610cd4565b33600090815260036020526040812080548391908390610512908490610d57565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103349086815260200190565b428410156105e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105f1610489565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610743573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906107be57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016105dc565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b815160005b818110156108da576108ca8482815181106108bc576108bc610d6e565b60200260200101518461097a565b6108d381610d9d565b905061089f565b50505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516109129190610dd6565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b806002600082825461098c9190610ea9565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b81811015610a1f57858101830151858201604001528201610a03565b81811115610a31576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a8957600080fd5b919050565b60008060408385031215610aa157600080fd5b610aaa83610a65565b946020939093013593505050565b600080600060608486031215610acd57600080fd5b610ad684610a65565b9250610ae460208501610a65565b9150604084013590509250925092565b600060208284031215610b0657600080fd5b610b0f82610a65565b9392505050565b600080600080600080600060e0888a031215610b3157600080fd5b610b3a88610a65565b9650610b4860208901610a65565b95506040880135945060608801359350608088013560ff81168114610b6c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b9c57600080fd5b610ba583610a65565b9150610bb360208401610a65565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215610bfe57600080fd5b823567ffffffffffffffff80821115610c1657600080fd5b818501915085601f830112610c2a57600080fd5b8135602082821115610c3e57610c3e610bbc565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715610c8157610c81610bbc565b604052928352818301935084810182019289841115610c9f57600080fd5b948201945b83861015610cc457610cb586610a65565b85529482019493820193610ca4565b9997909101359750505050505050565b600181811c90821680610ce857607f821691505b60208210811415610d22577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610d6957610d69610d28565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610dcf57610dcf610d28565b5060010190565b600080835481600182811c915080831680610df257607f831692505b6020808410821415610e2b577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b818015610e3f5760018114610e6e57610e9b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650610e9b565b60008a81526020902060005b86811015610e935781548b820152908501908301610e7a565b505084890196505b509498975050505050505050565b60008219821115610ebc57610ebc610d28565b50019056fea164736f6c6343000809000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb146101d8578063d505accf146101eb578063dd62ed3e14610200578063ea66696c1461022b57600080fd5b806370a08231146101905780637ecebe00146101b057806395d89b41146101d057600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906109f2565b60405180910390f35b610115610110366004610a8e565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610ab8565b610345565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e610489565b61012e61019e366004610af4565b60036020526000908152604090205481565b61012e6101be366004610af4565b60056020526000908152604090205481565b6100ec6104e4565b6101156101e6366004610a8e565b6104f1565b6101fe6101f9366004610b16565b610576565b005b61012e61020e366004610b89565b600460209081526000928352604080842090915290825290205481565b6101fe610239366004610beb565b61089a565b6000805461024b90610cd4565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610cd4565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103349086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103d9576103a78382610d57565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260408120805485929061040e908490610d57565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104769087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104bf576104ba6108e0565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001805461024b90610cd4565b33600090815260036020526040812080548391908390610512908490610d57565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103349086815260200190565b428410156105e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105f1610489565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610743573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906107be57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016105dc565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b815160005b818110156108da576108ca8482815181106108bc576108bc610d6e565b60200260200101518461097a565b6108d381610d9d565b905061089f565b50505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516109129190610dd6565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b806002600082825461098c9190610ea9565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b81811015610a1f57858101830151858201604001528201610a03565b81811115610a31576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a8957600080fd5b919050565b60008060408385031215610aa157600080fd5b610aaa83610a65565b946020939093013593505050565b600080600060608486031215610acd57600080fd5b610ad684610a65565b9250610ae460208501610a65565b9150604084013590509250925092565b600060208284031215610b0657600080fd5b610b0f82610a65565b9392505050565b600080600080600080600060e0888a031215610b3157600080fd5b610b3a88610a65565b9650610b4860208901610a65565b95506040880135945060608801359350608088013560ff81168114610b6c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b9c57600080fd5b610ba583610a65565b9150610bb360208401610a65565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215610bfe57600080fd5b823567ffffffffffffffff80821115610c1657600080fd5b818501915085601f830112610c2a57600080fd5b8135602082821115610c3e57610c3e610bbc565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715610c8157610c81610bbc565b604052928352818301935084810182019289841115610c9f57600080fd5b948201945b83861015610cc457610cb586610a65565b85529482019493820193610ca4565b9997909101359750505050505050565b600181811c90821680610ce857607f821691505b60208210811415610d22577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610d6957610d69610d28565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610dcf57610dcf610d28565b5060010190565b600080835481600182811c915080831680610df257607f831692505b6020808410821415610e2b577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b818015610e3f5760018114610e6e57610e9b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650610e9b565b60008a81526020902060005b86811015610e935781548b820152908501908301610e7a565b505084890196505b509498975050505050505050565b60008219821115610ebc57610ebc610d28565b50019056fea164736f6c6343000809000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/utils/smart_contract_files/P2PIX.json b/src/utils/smart_contract_files/P2PIX.json index c4fd9f8..a7dbe7e 100644 --- a/src/utils/smart_contract_files/P2PIX.json +++ b/src/utils/smart_contract_files/P2PIX.json @@ -49,11 +49,21 @@ "name": "AmountNotAllowed", "type": "error" }, + { + "inputs": [], + "name": "DecOverflow", + "type": "error" + }, { "inputs": [], "name": "DepositAlreadyExists", "type": "error" }, + { + "inputs": [], + "name": "EmptyPixTarget", + "type": "error" + }, { "inputs": [], "name": "InvalidDeposit", @@ -79,6 +89,11 @@ "name": "LoopOverflow", "type": "error" }, + { + "inputs": [], + "name": "MaxBalExceeded", + "type": "error" + }, { "inputs": [], "name": "NoTokens", @@ -94,6 +109,11 @@ "name": "NotExpired", "type": "error" }, + { + "inputs": [], + "name": "NotInitialized", + "type": "error" + }, { "inputs": [], "name": "OnlySeller", @@ -147,12 +167,6 @@ "name": "seller", "type": "address" }, - { - "indexed": false, - "internalType": "uint256", - "name": "depositID", - "type": "uint256" - }, { "indexed": false, "internalType": "address", @@ -180,29 +194,10 @@ }, { "indexed": false, - "internalType": "uint256", - "name": "depositID", - "type": "uint256" - } - ], - "name": "DepositClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, "internalType": "address", - "name": "seller", + "name": "token", "type": "address" }, - { - "indexed": false, - "internalType": "uint256", - "name": "depositID", - "type": "uint256" - }, { "indexed": false, "internalType": "uint256", @@ -243,14 +238,14 @@ }, { "indexed": true, - "internalType": "bytes32", + "internalType": "uint256", "name": "lockID", - "type": "bytes32" + "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "depositID", + "name": "seller", "type": "uint256" }, { @@ -287,9 +282,9 @@ }, { "indexed": false, - "internalType": "bytes32", + "internalType": "uint256", "name": "lockId", - "type": "bytes32" + "type": "uint256" }, { "indexed": false, @@ -312,9 +307,9 @@ }, { "indexed": false, - "internalType": "bytes32", + "internalType": "uint256", "name": "lockId", - "type": "bytes32" + "type": "uint256" } ], "name": "LockReturned", @@ -371,6 +366,31 @@ "name": "RootUpdated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "state", + "type": "bool" + } + ], + "name": "ValidSet", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -416,6 +436,25 @@ "stateMutability": "pure", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_key", + "type": "uint256" + } + ], + "name": "_castKeyToAddr", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -435,19 +474,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "depositID", - "type": "uint256" - } - ], - "name": "cancelDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], "name": "defaultLockBlocks", @@ -469,14 +495,19 @@ "type": "address" }, { - "internalType": "uint256", + "internalType": "uint96", "name": "_amount", - "type": "uint256" + "type": "uint96" }, { - "internalType": "string", + "internalType": "uint160", "name": "_pixTarget", - "type": "string" + "type": "uint160" + }, + { + "internalType": "bool", + "name": "_valid", + "type": "bool" }, { "internalType": "bytes32", @@ -485,23 +516,28 @@ } ], "name": "deposit", - "outputs": [ - { - "internalType": "uint256", - "name": "depositID", - "type": "uint256" - } - ], + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "depositCount", + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "contract ERC20", + "name": "token", + "type": "address" + } + ], + "name": "getBalance", "outputs": [ { "internalType": "uint256", - "name": "_val", + "name": "bal", "type": "uint256" } ], @@ -511,9 +547,86 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_depositID", - "type": "uint256" + "internalType": "address[]", + "name": "sellers", + "type": "address[]" + }, + { + "internalType": "contract ERC20", + "name": "token", + "type": "address" + } + ], + "name": "getBalances", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "contract ERC20", + "name": "token", + "type": "address" + } + ], + "name": "getPixTarget", + "outputs": [ + { + "internalType": "uint160", + "name": "pixTarget", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "internalType": "contract ERC20", + "name": "token", + "type": "address" + } + ], + "name": "getValid", + "outputs": [ + { + "internalType": "bool", + "name": "valid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_seller", + "type": "address" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" }, { "internalType": "address", @@ -541,56 +654,30 @@ "type": "bytes32[]" }, { - "internalType": "bytes32[]", + "internalType": "uint256[]", "name": "expiredLocks", - "type": "bytes32[]" + "type": "uint256[]" } ], "name": "lock", "outputs": [ - { - "internalType": "bytes32", - "name": "lockID", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], - "name": "mapDeposits", + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "lockCounter", "outputs": [ { "internalType": "uint256", - "name": "remaining", + "name": "", "type": "uint256" - }, - { - "internalType": "string", - "name": "pixTarget", - "type": "string" - }, - { - "internalType": "address", - "name": "seller", - "type": "address" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "bool", - "name": "valid", - "type": "bool" } ], "stateMutability": "view", @@ -599,16 +686,21 @@ { "inputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "name": "mapLocks", "outputs": [ { "internalType": "uint256", - "name": "depositID", + "name": "sellerKey", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "counter", "type": "uint256" }, { @@ -626,6 +718,11 @@ "name": "expirationBlock", "type": "uint256" }, + { + "internalType": "uint160", + "name": "pixTarget", + "type": "uint160" + }, { "internalType": "address", "name": "buyerAddress", @@ -640,6 +737,11 @@ "internalType": "address", "name": "relayerAddress", "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" } ], "stateMutability": "view", @@ -661,9 +763,9 @@ { "inputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "lockID", - "type": "bytes32" + "type": "uint256" }, { "internalType": "address", @@ -728,6 +830,30 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "contract ERC20", + "name": "", + "type": "address" + } + ], + "name": "sellerBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -798,6 +924,24 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "contract ERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "bool", + "name": "state", + "type": "bool" + } + ], + "name": "setValidState", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -819,9 +963,9 @@ { "inputs": [ { - "internalType": "bytes32[]", + "internalType": "uint256[]", "name": "lockIDs", - "type": "bytes32[]" + "type": "uint256[]" } ], "name": "unlockExpired", @@ -888,15 +1032,20 @@ }, { "inputs": [ + { + "internalType": "contract ERC20", + "name": "token", + "type": "address" + }, { "internalType": "uint256", - "name": "depositID", + "name": "amount", "type": "uint256" }, { - "internalType": "bytes32[]", + "internalType": "uint256[]", "name": "expiredLocks", - "type": "bytes32[]" + "type": "uint256[]" } ], "name": "withdraw", @@ -916,8 +1065,8 @@ "type": "receive" } ], - "bytecode": "0x60806040526001805560405162002a9a38038062002a9a8339810160408190526200002a916200049d565b600080546001600160a01b031916339081178255604051909182917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a3506200007685620000a3565b620000818362000133565b6200008c84620001bd565b620000988282620002a1565b505050505062000620565b6000546001600160a01b03163314620000f25760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b806004557f70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511816040516200012891815260200190565b60405180910390a150565b6000546001600160a01b031633146200017e5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401620000e9565b60028190556040516001600160a01b03821681527fe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f9060200162000128565b6000546001600160a01b03163314620002085760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401620000e9565b80516000905b808210156200026e57600062000246848481518110620002325762000232620005bb565b60200260200101516200038760201b60201c565b6000908152600660205260409020805460ff191660019081179091559290920191506200020e565b50507f14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d781604051620001289190620005d1565b6000546001600160a01b03163314620002ec5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401620000e9565b815180620003025763df9578836000526004601cfd5b81518114620003195763ff633a386000526004601cfd5b60208301602083016020830282015b8083146200037f578251600052600b60205260406000208251815550815183517f5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a600080a360208301925060208201915062000328565b505050505050565b600c1b611000600160ac1b031690565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620003d857620003d862000397565b604052919050565b60006001600160401b03821115620003fc57620003fc62000397565b5060051b60200190565b6001600160a01b03811681146200041c57600080fd5b50565b600082601f8301126200043157600080fd5b815160206200044a6200044483620003e0565b620003ad565b82815260059290921b840181019181810190868411156200046a57600080fd5b8286015b8481101562000492578051620004848162000406565b83529183019183016200046e565b509695505050505050565b600080600080600060a08688031215620004b657600080fd5b8551602080880151919650906001600160401b0380821115620004d857600080fd5b620004e68a838b016200041f565b965060408901519150620004fa8262000406565b6060890151919550808211156200051057600080fd5b6200051e8a838b016200041f565b945060808901519150808211156200053557600080fd5b508701601f810189136200054857600080fd5b8051620005596200044482620003e0565b81815260059190911b8201830190838101908b8311156200057957600080fd5b928401925b82841015620005a95783518015158114620005995760008081fd5b825292840192908401906200057e565b80955050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015620006145783516001600160a01b031683529284019291840191600101620005ed565b50909695505050505050565b61246a80620006306000396000f3fe6080604052600436106101a55760003560e01c806372fada5c116100e15780638e2749d61161008a57806398a268711161006457806398a268711461056b578063c52164c61461059b578063d6e8b973146105bb578063f7d0e04b146105db57600080fd5b80638e2749d6146105045780638e2a3d36146105245780639872dbfe1461055557600080fd5b80637f94f65d116100bb5780637f94f65d1461048c5780638652b37e146104ac5780638da5cb5b146104cc57600080fd5b806372fada5c1461041f578063758d77d41461043f57806377cd38a41461045f57600080fd5b8063363179721161014e578063574983c811610128578063574983c81461039e5780635fd8c710146103be57806369cc6af4146103d35780636a1460241461040357600080fd5b80633631797214610313578063461f3120146103335780634b2ae9801461037357600080fd5b806316d722401161017f57806316d722401461023357806329cc7d10146102dc5780632dfdf0b5146102fc57600080fd5b806304937320146101b15780630d2a2d44146101f157806313af40351461021357600080fd5b366101ac57005b600080fd5b3480156101bd57600080fd5b506101de6101cc366004611d07565b60056020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156101fd57600080fd5b5061021161020c366004611e14565b6105fb565b005b34801561021f57600080fd5b5061021161022e366004611e51565b6106ec565b34801561023f57600080fd5b5061029861024e366004611d07565b600860205260009081526040902080546001820154600283015460038401546004850154600586015460069096015494959394929391926001600160a01b03918216928216911687565b6040805197885260208801969096529486019390935260608501919091526001600160a01b03908116608085015290811660a08401521660c082015260e0016101e8565b3480156102e857600080fd5b506101de6102f7366004611e6e565b61078d565b34801561030857600080fd5b506003546101de9081565b34801561031f57600080fd5b5061021161032e366004611f4b565b610991565b34801561033f57600080fd5b5061036361034e366004611d07565b60096020526000908152604090205460ff1681565b60405190151581526020016101e8565b34801561037f57600080fd5b506101de61038e366004611e51565b600c1b611000600160ac1b031690565b3480156103aa57600080fd5b506102116103b9366004611d07565b610a51565b3480156103ca57600080fd5b50610211610acf565b3480156103df57600080fd5b506103636103ee366004611e51565b600b6020526000908152604090205460ff1681565b34801561040f57600080fd5b506101de670de0b6b3a764000081565b34801561042b57600080fd5b5061021161043a366004611d07565b610b59565b34801561044b57600080fd5b5061021161045a366004611f97565b610be1565b34801561046b57600080fd5b506101de61047a366004611d07565b600a6020526000908152604090205481565b34801561049857600080fd5b506102116104a7366004611ffb565b61103a565b3480156104b857600080fd5b506101de6104c7366004612027565b6110e6565b3480156104d857600080fd5b506000546104ec906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561051057600080fd5b5061021161051f3660046120db565b611311565b34801561053057600080fd5b5061054461053f366004611d07565b611479565b6040516101e895949392919061211d565b34801561056157600080fd5b506101de60045481565b34801561057757600080fd5b50610363610586366004611d07565b60066020526000908152604090205460ff1681565b3480156105a757600080fd5b506002546104ec906001600160a01b031681565b3480156105c757600080fd5b506102116105d63660046121aa565b611543565b3480156105e757600080fd5b506102116105f6366004611e51565b61161b565b6000546001600160a01b031633146106495760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b80516000905b808210156106b057600061068984848151811061066e5761066e612274565b6020026020010151611000600160ac1b03600c9190911b1690565b6000908152600660205260409020805460ff1916600190811790915592909201915061064f565b50507f14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d7816040516106e1919061228a565b60405180910390a150565b6000546001600160a01b031633146107355760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6001600160a01b0385166000908152600b6020526040812054869060ff166107e1576040517f1578328e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e96116a2565b915060006040518060a0016040528088815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252503360208201526001600160a01b038a1660408201526001606090910152905061085e6116b2565b831561086e5761086e338561103a565b600083815260076020908152604090912082518155818301518051849361089c926001850192910190611c6e565b5060408201516002820180546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199091161790556060830151600392830180546080909501511515600160a01b027fffffffffffffffffffffff0000000000000000000000000000000000000000009095169190921617929092179091556109269080546001019055565b6109328233308a6116f6565b61093b60018055565b604080518481526001600160a01b038a16602082015290810188905233907f25ac57b911b0f66b64c294827f539545fbc3ddd002cafab117776274f3241e4c9060600160405180910390a2505095945050505050565b6109996116b2565b6109a2836117a6565b6109ac8282611311565b60008381526007602052604090206003810154600160a01b900460ff161515600114156109dc576109dc84610b59565b600381015481546000835560028301546001600160a01b0392831692610a0591849116836117fc565b604080518781526020810183905233917f7719804546c0185709e60c90d164447ff251a5ba29af0216faa921350f6bebf7910160405180910390a2505050610a4c60018055565b505050565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b806004557f70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511816040516106e191815260200190565b6000546001600160a01b03163314610b185760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b47610b2333826118a1565b60408051338152602081018390527feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d91016106e1565b610b62816117a6565b6000818152600760209081526040918290206003810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556002015491518381526001600160a01b03909216917fb4d98b272597e828d9b172c0d44390d5b267040e918088eac8a0a0fadcb81c70910160405180910390a250565b610be96116b2565b60008681526008602052604090206002810154610c32576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4381600301541015610c70576040517ff6fafba000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054600090815260076020908152604080832060028501549151909392610ca092600186019290918b9101612312565b604051602081830303815290604052805190602001209050600081604051602001610cf791907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b60408051601f1981840301815291815281516020928301206000858152600990935291205490915060ff16151560011415610d5e576040517ff490a6ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820180845284905260ff8816928201929092526060810189905260808101889052610dd29060019060a0016020604051602081039080840390855afa158015610db6573d6000803e3d6000fd5b5050604051601f190151600c1b611000600160ac1b0316919050565b60008181526006602052604090205490915060ff16610e1d576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003840154600286015460018701546001600160a01b0390921691600090610e4590836123cf565b600060028a0181905560038a01819055878152600960205260409020805460ff191660011790556006890154909150336001600160a01b0390911614610ef6576001880154611000600160ac1b0333600c1b1660009081526005602052604081208054909190610eb69084906123e6565b90915550506006880154600c1b611000600160ac1b031660009081526005602052604081208054849290610eeb9084906123e6565b90915550610f389050565b818860010154610f0691906123e6565b611000600160ac1b0333600c1b1660009081526005602052604081208054909190610f329084906123e6565b90915550505b6004880154610f529084906001600160a01b0316836117fc565b600188015415610fbe5760058801546001600160a01b038e8116911614610faf5760058801546001808a0154610f979286926001600160a01b0390911691901c6117fc565b610faa838e60018b60010154901c6117fc565b610fbe565b610fbe838e8a600101546117fc565b8760040160009054906101000a90046001600160a01b03166001600160a01b03167f3fd2eee5028b09fa70abe3da4f6023ea41bfde24cfcb9c167f17d6fbe79eece38f84604051611019929190918252602082015260400190565b60405180910390a2505050505050505061103260018055565b505050505050565b6001600160a01b0382163314156110b457611000600160ac1b03600c83901b166000908152600a602090815260409182902083905581516001600160a01b038516815290810183905281517f0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632929181900390910190a15050565b6040517f85d1f72600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110f06116b2565b6110fa8383611311565b60008a81526007602052604090206003810154600160a01b900460ff1661114d576040517fb2e532de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054871115611188576040517f22bbb43c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111938b888c6118fc565b915060006040518060e001604052808d81526020018a8152602001898152602001600454436111c291906123e6565b81526001600160a01b03808e1660208301528c166040820152336060909101529050851561122b576002820154600c1b611000600160ac1b03166000908152600a60205260409020546112199088908890336119ac565b6112248382846119f7565b50506112fb565b68056bc75e2d6310000081604001511161124a576112248382846119f7565b611000600160ac1b0333600c1b166000908152600560205260408120549061128261127d670de0b6b3a7640000846123fe565b611af5565b9050611296670de0b6b3a764000082612420565b836040015111806112b4575069d3c21bcecceda10000008360400151115b156112eb576040517f1c18f84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112f68584866119f7565b505050505b61130460018055565b9998505050505050505050565b6000815b8082101561145d5760006008600086868681811061133557611335612274565b905060200201358152602001908152602001600020905061135581611bb1565b600281015481546000908152600760205260408120805490919061137a9084906123e6565b90915550506000600282018190556006820154600c1b611000600160ac1b031660008181526005602052604090205490915060011c68056bc75e2d6310000081116113de57600082815260056020526040902068056bc75e2d6310000090556113f0565b60008281526005602052604090208190555b60048301546001600160a01b03167f67e089478e21dd12c98e69331c4152f6c9b2038b91e0f28268ffa01558c0b4ff88888881811061143157611431612274565b9050602002013560405161144791815260200190565b60405180910390a2846001019450505050611315565b808210156114735763dfb035c96000526004601cfd5b50505050565b6007602052600090815260409020805460018201805491929161149b906122d7565b80601f01602080910402602001604051908101604052809291908181526020018280546114c7906122d7565b80156115145780601f106114e957610100808354040283529160200191611514565b820191906000526020600020905b8154815290600101906020018083116114f757829003601f168201915b50505050600283015460039093015491926001600160a01b03908116929081169150600160a01b900460ff1685565b6000546001600160a01b0316331461158c5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b8151806115a15763df9578836000526004601cfd5b815181146115b75763ff633a386000526004601cfd5b60208301602083016020830282015b808314611032578251600052600b60205260406000208251815550815183517f5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a600080a36020830192506020820191506115c6565b6000546001600160a01b031633146116645760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b60028190556040516001600160a01b03821681527fe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f906020016106e1565b60006116ad60035490565b905090565b600154600214156116ef576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b60006040517f23b872dd000000000000000000000000000000000000000000000000000000006000528460045283602452826044526020600060646000808a5af13d15601f3d116001600051141617169150600060605280604052508061179f5760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610640565b5050505050565b6000818152600760205260409020600201546001600160a01b031633146117f9576040517f85d1f72600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000006000528360045282602452602060006044600080895af13d15601f3d11600160005114161716915060006060528060405250806114735760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610640565b600080600080600085875af1905080610a4c5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610640565b6040805160208101859052908101839052606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001690820152600090607401604051602081830303815290604052805190602001209050436008600083815260200190815260200160002060030154106119a5576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b6119c18484846001600160a01b038516611c2a565b611473576040517f3b8474be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260086020908152604080832085518155918501516001830155840151600282018190556060850151600383015560808501516004830180546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199182161790915560a087015160058501805491841691831691909117905560c08701516006909401805494909216931692909217909155825490918391611a9d9084906123cf565b9091555050608082015182516040808501518151928352602083015285926001600160a01b0316917f2a28b2ae47b0bd4b104e7cd29b1dfa72846af8c4cfdc009da2ae29db68cb67ea910160405180910390a3505050565b600080634d2b179160e01b83604051602401611b1391815260200190565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600080600060206000855160208701600254617530fa92503d9150600051905080945082611ba85763e10bf1cc6000526004601cfd5b50505050919050565b4381600301541115611bef576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028101546117f9576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008315611c66578360051b8501855b803580851160051b94855260209485185260406000209301818110611c5e57611c63565b611c3a565b50505b501492915050565b828054611c7a906122d7565b90600052602060002090601f016020900481019282611c9c5760008555611ce2565b82601f10611cb557805160ff1916838001178555611ce2565b82800160010185558215611ce2579182015b82811115611ce2578251825591602001919060010190611cc7565b50611cee929150611cf2565b5090565b5b80821115611cee5760008155600101611cf3565b600060208284031215611d1957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d5f57611d5f611d20565b604052919050565b600067ffffffffffffffff821115611d8157611d81611d20565b5060051b60200190565b6001600160a01b03811681146117f957600080fd5b600082601f830112611db157600080fd5b81356020611dc6611dc183611d67565b611d36565b82815260059290921b84018101918181019086841115611de557600080fd5b8286015b84811015611e09578035611dfc81611d8b565b8352918301918301611de9565b509695505050505050565b600060208284031215611e2657600080fd5b813567ffffffffffffffff811115611e3d57600080fd5b611e4984828501611da0565b949350505050565b600060208284031215611e6357600080fd5b81356119a581611d8b565b600080600080600060808688031215611e8657600080fd5b8535611e9181611d8b565b945060208601359350604086013567ffffffffffffffff80821115611eb557600080fd5b818801915088601f830112611ec957600080fd5b813581811115611ed857600080fd5b896020828501011115611eea57600080fd5b96999598505060200195606001359392505050565b60008083601f840112611f1157600080fd5b50813567ffffffffffffffff811115611f2957600080fd5b6020830191508360208260051b8501011115611f4457600080fd5b9250929050565b600080600060408486031215611f6057600080fd5b83359250602084013567ffffffffffffffff811115611f7e57600080fd5b611f8a86828701611eff565b9497909650939450505050565b60008060008060008060c08789031215611fb057600080fd5b863595506020870135611fc281611d8b565b945060408701359350606087013592506080870135915060a087013560ff81168114611fed57600080fd5b809150509295509295509295565b6000806040838503121561200e57600080fd5b823561201981611d8b565b946020939093013593505050565b600080600080600080600080600060e08a8c03121561204557600080fd5b8935985060208a013561205781611d8b565b975060408a013561206781611d8b565b965060608a0135955060808a0135945060a08a013567ffffffffffffffff8082111561209257600080fd5b61209e8d838e01611eff565b909650945060c08c01359150808211156120b757600080fd5b506120c48c828d01611eff565b915080935050809150509295985092959850929598565b600080602083850312156120ee57600080fd5b823567ffffffffffffffff81111561210557600080fd5b61211185828601611eff565b90969095509350505050565b8581526000602060a08184015286518060a085015260005b818110156121515788810183015185820160c001528201612135565b8181111561216357600060c083870101525b50601f01601f1916830160c0019150612189905060408301866001600160a01b03169052565b6001600160a01b038416606083015282151560808301529695505050505050565b600080604083850312156121bd57600080fd5b823567ffffffffffffffff808211156121d557600080fd5b6121e186838701611da0565b93506020915081850135818111156121f857600080fd5b85019050601f8101861361220b57600080fd5b8035612219611dc182611d67565b81815260059190911b8201830190838101908883111561223857600080fd5b928401925b8284101561226557833580151581146122565760008081fd5b8252928401929084019061223d565b80955050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b818110156122cb5783516001600160a01b0316835292840192918401916001016122a6565b50909695505050505050565b600181811c908216806122eb57607f821691505b6020821081141561230c57634e487b7160e01b600052602260045260246000fd5b50919050565b600080855481600182811c91508083168061232e57607f831692505b602080841082141561234e57634e487b7160e01b86526022600452602486fd5b8180156123625760018114612373576123a0565b60ff198616895284890196506123a0565b60008c81526020902060005b868110156123985781548b82015290850190830161237f565b505084890196505b5098855250505050938401929092525050604001919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156123e1576123e16123b9565b500390565b600082198211156123f9576123f96123b9565b500190565b60008261241b57634e487b7160e01b600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612458576124586123b9565b50029056fea164736f6c6343000809000a", - "deployedBytecode": "0x6080604052600436106101a55760003560e01c806372fada5c116100e15780638e2749d61161008a57806398a268711161006457806398a268711461056b578063c52164c61461059b578063d6e8b973146105bb578063f7d0e04b146105db57600080fd5b80638e2749d6146105045780638e2a3d36146105245780639872dbfe1461055557600080fd5b80637f94f65d116100bb5780637f94f65d1461048c5780638652b37e146104ac5780638da5cb5b146104cc57600080fd5b806372fada5c1461041f578063758d77d41461043f57806377cd38a41461045f57600080fd5b8063363179721161014e578063574983c811610128578063574983c81461039e5780635fd8c710146103be57806369cc6af4146103d35780636a1460241461040357600080fd5b80633631797214610313578063461f3120146103335780634b2ae9801461037357600080fd5b806316d722401161017f57806316d722401461023357806329cc7d10146102dc5780632dfdf0b5146102fc57600080fd5b806304937320146101b15780630d2a2d44146101f157806313af40351461021357600080fd5b366101ac57005b600080fd5b3480156101bd57600080fd5b506101de6101cc366004611d07565b60056020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156101fd57600080fd5b5061021161020c366004611e14565b6105fb565b005b34801561021f57600080fd5b5061021161022e366004611e51565b6106ec565b34801561023f57600080fd5b5061029861024e366004611d07565b600860205260009081526040902080546001820154600283015460038401546004850154600586015460069096015494959394929391926001600160a01b03918216928216911687565b6040805197885260208801969096529486019390935260608501919091526001600160a01b03908116608085015290811660a08401521660c082015260e0016101e8565b3480156102e857600080fd5b506101de6102f7366004611e6e565b61078d565b34801561030857600080fd5b506003546101de9081565b34801561031f57600080fd5b5061021161032e366004611f4b565b610991565b34801561033f57600080fd5b5061036361034e366004611d07565b60096020526000908152604090205460ff1681565b60405190151581526020016101e8565b34801561037f57600080fd5b506101de61038e366004611e51565b600c1b611000600160ac1b031690565b3480156103aa57600080fd5b506102116103b9366004611d07565b610a51565b3480156103ca57600080fd5b50610211610acf565b3480156103df57600080fd5b506103636103ee366004611e51565b600b6020526000908152604090205460ff1681565b34801561040f57600080fd5b506101de670de0b6b3a764000081565b34801561042b57600080fd5b5061021161043a366004611d07565b610b59565b34801561044b57600080fd5b5061021161045a366004611f97565b610be1565b34801561046b57600080fd5b506101de61047a366004611d07565b600a6020526000908152604090205481565b34801561049857600080fd5b506102116104a7366004611ffb565b61103a565b3480156104b857600080fd5b506101de6104c7366004612027565b6110e6565b3480156104d857600080fd5b506000546104ec906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561051057600080fd5b5061021161051f3660046120db565b611311565b34801561053057600080fd5b5061054461053f366004611d07565b611479565b6040516101e895949392919061211d565b34801561056157600080fd5b506101de60045481565b34801561057757600080fd5b50610363610586366004611d07565b60066020526000908152604090205460ff1681565b3480156105a757600080fd5b506002546104ec906001600160a01b031681565b3480156105c757600080fd5b506102116105d63660046121aa565b611543565b3480156105e757600080fd5b506102116105f6366004611e51565b61161b565b6000546001600160a01b031633146106495760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b80516000905b808210156106b057600061068984848151811061066e5761066e612274565b6020026020010151611000600160ac1b03600c9190911b1690565b6000908152600660205260409020805460ff1916600190811790915592909201915061064f565b50507f14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d7816040516106e1919061228a565b60405180910390a150565b6000546001600160a01b031633146107355760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6001600160a01b0385166000908152600b6020526040812054869060ff166107e1576040517f1578328e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e96116a2565b915060006040518060a0016040528088815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252503360208201526001600160a01b038a1660408201526001606090910152905061085e6116b2565b831561086e5761086e338561103a565b600083815260076020908152604090912082518155818301518051849361089c926001850192910190611c6e565b5060408201516002820180546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199091161790556060830151600392830180546080909501511515600160a01b027fffffffffffffffffffffff0000000000000000000000000000000000000000009095169190921617929092179091556109269080546001019055565b6109328233308a6116f6565b61093b60018055565b604080518481526001600160a01b038a16602082015290810188905233907f25ac57b911b0f66b64c294827f539545fbc3ddd002cafab117776274f3241e4c9060600160405180910390a2505095945050505050565b6109996116b2565b6109a2836117a6565b6109ac8282611311565b60008381526007602052604090206003810154600160a01b900460ff161515600114156109dc576109dc84610b59565b600381015481546000835560028301546001600160a01b0392831692610a0591849116836117fc565b604080518781526020810183905233917f7719804546c0185709e60c90d164447ff251a5ba29af0216faa921350f6bebf7910160405180910390a2505050610a4c60018055565b505050565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b806004557f70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511816040516106e191815260200190565b6000546001600160a01b03163314610b185760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b47610b2333826118a1565b60408051338152602081018390527feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d91016106e1565b610b62816117a6565b6000818152600760209081526040918290206003810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556002015491518381526001600160a01b03909216917fb4d98b272597e828d9b172c0d44390d5b267040e918088eac8a0a0fadcb81c70910160405180910390a250565b610be96116b2565b60008681526008602052604090206002810154610c32576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4381600301541015610c70576040517ff6fafba000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054600090815260076020908152604080832060028501549151909392610ca092600186019290918b9101612312565b604051602081830303815290604052805190602001209050600081604051602001610cf791907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b60408051601f1981840301815291815281516020928301206000858152600990935291205490915060ff16151560011415610d5e576040517ff490a6ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820180845284905260ff8816928201929092526060810189905260808101889052610dd29060019060a0016020604051602081039080840390855afa158015610db6573d6000803e3d6000fd5b5050604051601f190151600c1b611000600160ac1b0316919050565b60008181526006602052604090205490915060ff16610e1d576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003840154600286015460018701546001600160a01b0390921691600090610e4590836123cf565b600060028a0181905560038a01819055878152600960205260409020805460ff191660011790556006890154909150336001600160a01b0390911614610ef6576001880154611000600160ac1b0333600c1b1660009081526005602052604081208054909190610eb69084906123e6565b90915550506006880154600c1b611000600160ac1b031660009081526005602052604081208054849290610eeb9084906123e6565b90915550610f389050565b818860010154610f0691906123e6565b611000600160ac1b0333600c1b1660009081526005602052604081208054909190610f329084906123e6565b90915550505b6004880154610f529084906001600160a01b0316836117fc565b600188015415610fbe5760058801546001600160a01b038e8116911614610faf5760058801546001808a0154610f979286926001600160a01b0390911691901c6117fc565b610faa838e60018b60010154901c6117fc565b610fbe565b610fbe838e8a600101546117fc565b8760040160009054906101000a90046001600160a01b03166001600160a01b03167f3fd2eee5028b09fa70abe3da4f6023ea41bfde24cfcb9c167f17d6fbe79eece38f84604051611019929190918252602082015260400190565b60405180910390a2505050505050505061103260018055565b505050505050565b6001600160a01b0382163314156110b457611000600160ac1b03600c83901b166000908152600a602090815260409182902083905581516001600160a01b038516815290810183905281517f0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632929181900390910190a15050565b6040517f85d1f72600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110f06116b2565b6110fa8383611311565b60008a81526007602052604090206003810154600160a01b900460ff1661114d576040517fb2e532de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054871115611188576040517f22bbb43c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111938b888c6118fc565b915060006040518060e001604052808d81526020018a8152602001898152602001600454436111c291906123e6565b81526001600160a01b03808e1660208301528c166040820152336060909101529050851561122b576002820154600c1b611000600160ac1b03166000908152600a60205260409020546112199088908890336119ac565b6112248382846119f7565b50506112fb565b68056bc75e2d6310000081604001511161124a576112248382846119f7565b611000600160ac1b0333600c1b166000908152600560205260408120549061128261127d670de0b6b3a7640000846123fe565b611af5565b9050611296670de0b6b3a764000082612420565b836040015111806112b4575069d3c21bcecceda10000008360400151115b156112eb576040517f1c18f84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112f68584866119f7565b505050505b61130460018055565b9998505050505050505050565b6000815b8082101561145d5760006008600086868681811061133557611335612274565b905060200201358152602001908152602001600020905061135581611bb1565b600281015481546000908152600760205260408120805490919061137a9084906123e6565b90915550506000600282018190556006820154600c1b611000600160ac1b031660008181526005602052604090205490915060011c68056bc75e2d6310000081116113de57600082815260056020526040902068056bc75e2d6310000090556113f0565b60008281526005602052604090208190555b60048301546001600160a01b03167f67e089478e21dd12c98e69331c4152f6c9b2038b91e0f28268ffa01558c0b4ff88888881811061143157611431612274565b9050602002013560405161144791815260200190565b60405180910390a2846001019450505050611315565b808210156114735763dfb035c96000526004601cfd5b50505050565b6007602052600090815260409020805460018201805491929161149b906122d7565b80601f01602080910402602001604051908101604052809291908181526020018280546114c7906122d7565b80156115145780601f106114e957610100808354040283529160200191611514565b820191906000526020600020905b8154815290600101906020018083116114f757829003601f168201915b50505050600283015460039093015491926001600160a01b03908116929081169150600160a01b900460ff1685565b6000546001600160a01b0316331461158c5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b8151806115a15763df9578836000526004601cfd5b815181146115b75763ff633a386000526004601cfd5b60208301602083016020830282015b808314611032578251600052600b60205260406000208251815550815183517f5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a600080a36020830192506020820191506115c6565b6000546001600160a01b031633146116645760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610640565b60028190556040516001600160a01b03821681527fe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f906020016106e1565b60006116ad60035490565b905090565b600154600214156116ef576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b60006040517f23b872dd000000000000000000000000000000000000000000000000000000006000528460045283602452826044526020600060646000808a5af13d15601f3d116001600051141617169150600060605280604052508061179f5760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610640565b5050505050565b6000818152600760205260409020600201546001600160a01b031633146117f9576040517f85d1f72600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000006000528360045282602452602060006044600080895af13d15601f3d11600160005114161716915060006060528060405250806114735760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610640565b600080600080600085875af1905080610a4c5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610640565b6040805160208101859052908101839052606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001690820152600090607401604051602081830303815290604052805190602001209050436008600083815260200190815260200160002060030154106119a5576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b6119c18484846001600160a01b038516611c2a565b611473576040517f3b8474be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260086020908152604080832085518155918501516001830155840151600282018190556060850151600383015560808501516004830180546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199182161790915560a087015160058501805491841691831691909117905560c08701516006909401805494909216931692909217909155825490918391611a9d9084906123cf565b9091555050608082015182516040808501518151928352602083015285926001600160a01b0316917f2a28b2ae47b0bd4b104e7cd29b1dfa72846af8c4cfdc009da2ae29db68cb67ea910160405180910390a3505050565b600080634d2b179160e01b83604051602401611b1391815260200190565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600080600060206000855160208701600254617530fa92503d9150600051905080945082611ba85763e10bf1cc6000526004601cfd5b50505050919050565b4381600301541115611bef576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028101546117f9576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008315611c66578360051b8501855b803580851160051b94855260209485185260406000209301818110611c5e57611c63565b611c3a565b50505b501492915050565b828054611c7a906122d7565b90600052602060002090601f016020900481019282611c9c5760008555611ce2565b82601f10611cb557805160ff1916838001178555611ce2565b82800160010185558215611ce2579182015b82811115611ce2578251825591602001919060010190611cc7565b50611cee929150611cf2565b5090565b5b80821115611cee5760008155600101611cf3565b600060208284031215611d1957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d5f57611d5f611d20565b604052919050565b600067ffffffffffffffff821115611d8157611d81611d20565b5060051b60200190565b6001600160a01b03811681146117f957600080fd5b600082601f830112611db157600080fd5b81356020611dc6611dc183611d67565b611d36565b82815260059290921b84018101918181019086841115611de557600080fd5b8286015b84811015611e09578035611dfc81611d8b565b8352918301918301611de9565b509695505050505050565b600060208284031215611e2657600080fd5b813567ffffffffffffffff811115611e3d57600080fd5b611e4984828501611da0565b949350505050565b600060208284031215611e6357600080fd5b81356119a581611d8b565b600080600080600060808688031215611e8657600080fd5b8535611e9181611d8b565b945060208601359350604086013567ffffffffffffffff80821115611eb557600080fd5b818801915088601f830112611ec957600080fd5b813581811115611ed857600080fd5b896020828501011115611eea57600080fd5b96999598505060200195606001359392505050565b60008083601f840112611f1157600080fd5b50813567ffffffffffffffff811115611f2957600080fd5b6020830191508360208260051b8501011115611f4457600080fd5b9250929050565b600080600060408486031215611f6057600080fd5b83359250602084013567ffffffffffffffff811115611f7e57600080fd5b611f8a86828701611eff565b9497909650939450505050565b60008060008060008060c08789031215611fb057600080fd5b863595506020870135611fc281611d8b565b945060408701359350606087013592506080870135915060a087013560ff81168114611fed57600080fd5b809150509295509295509295565b6000806040838503121561200e57600080fd5b823561201981611d8b565b946020939093013593505050565b600080600080600080600080600060e08a8c03121561204557600080fd5b8935985060208a013561205781611d8b565b975060408a013561206781611d8b565b965060608a0135955060808a0135945060a08a013567ffffffffffffffff8082111561209257600080fd5b61209e8d838e01611eff565b909650945060c08c01359150808211156120b757600080fd5b506120c48c828d01611eff565b915080935050809150509295985092959850929598565b600080602083850312156120ee57600080fd5b823567ffffffffffffffff81111561210557600080fd5b61211185828601611eff565b90969095509350505050565b8581526000602060a08184015286518060a085015260005b818110156121515788810183015185820160c001528201612135565b8181111561216357600060c083870101525b50601f01601f1916830160c0019150612189905060408301866001600160a01b03169052565b6001600160a01b038416606083015282151560808301529695505050505050565b600080604083850312156121bd57600080fd5b823567ffffffffffffffff808211156121d557600080fd5b6121e186838701611da0565b93506020915081850135818111156121f857600080fd5b85019050601f8101861361220b57600080fd5b8035612219611dc182611d67565b81815260059190911b8201830190838101908883111561223857600080fd5b928401925b8284101561226557833580151581146122565760008081fd5b8252928401929084019061223d565b80955050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b818110156122cb5783516001600160a01b0316835292840192918401916001016122a6565b50909695505050505050565b600181811c908216806122eb57607f821691505b6020821081141561230c57634e487b7160e01b600052602260045260246000fd5b50919050565b600080855481600182811c91508083168061232e57607f831692505b602080841082141561234e57634e487b7160e01b86526022600452602486fd5b8180156123625760018114612373576123a0565b60ff198616895284890196506123a0565b60008c81526020902060005b868110156123985781548b82015290850190830161237f565b505084890196505b5098855250505050938401929092525050604001919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156123e1576123e16123b9565b500390565b600082198211156123f9576123f96123b9565b500190565b60008261241b57634e487b7160e01b600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612458576124586123b9565b50029056fea164736f6c6343000809000a", + "bytecode": "0x608060405260018055604051620031f9380380620031f98339810160408190526200002a9162000493565b600080546001600160a01b031916339081178255604051909182917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a3506200007685620000a3565b620000818362000133565b6200008c84620001bd565b620000988282620002a1565b505050505062000616565b6000546001600160a01b03163314620000f25760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b806003557f70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511816040516200012891815260200190565b60405180910390a150565b6000546001600160a01b031633146200017e5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401620000e9565b60028190556040516001600160a01b03821681527fe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f9060200162000128565b6000546001600160a01b03163314620002085760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401620000e9565b80516000905b808210156200026e57600062000246848481518110620002325762000232620005b1565b60200260200101516200038760201b60201c565b6000908152600860205260409020805460ff191660019081179091559290920191506200020e565b50507f14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d781604051620001289190620005c7565b6000546001600160a01b03163314620002ec5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401620000e9565b815180620003025763df9578836000526004601cfd5b81518114620003195763ff633a386000526004601cfd5b60208301602083018260051b82015b8083146200037f578251600052600a60205260406000208251815550815183517f5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a600080a360208301925060208201915062000328565b505050505050565b600c1b90565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620003ce57620003ce6200038d565b604052919050565b60006001600160401b03821115620003f257620003f26200038d565b5060051b60200190565b6001600160a01b03811681146200041257600080fd5b50565b600082601f8301126200042757600080fd5b81516020620004406200043a83620003d6565b620003a3565b82815260059290921b840181019181810190868411156200046057600080fd5b8286015b84811015620004885780516200047a81620003fc565b835291830191830162000464565b509695505050505050565b600080600080600060a08688031215620004ac57600080fd5b8551602080880151919650906001600160401b0380821115620004ce57600080fd5b620004dc8a838b0162000415565b965060408901519150620004f082620003fc565b6060890151919550808211156200050657600080fd5b620005148a838b0162000415565b945060808901519150808211156200052b57600080fd5b508701601f810189136200053e57600080fd5b80516200054f6200043a82620003d6565b81815260059190911b8201830190838101908b8311156200056f57600080fd5b928401925b828410156200059f57835180151581146200058f5760008081fd5b8252928401929084019062000574565b80955050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b818110156200060a5783516001600160a01b031683529284019291840191600101620005e3565b50909695505050505050565b612bd380620006266000396000f3fe6080604052600436106101dc5760003560e01c80637f94f65d11610102578063ad8f2eed11610095578063d4fac45d11610064578063d4fac45d14610713578063d6e8b9731461075e578063f7d0e04b1461077e578063fb8c5ef01461079e57600080fd5b8063ad8f2eed14610659578063b0983d3914610699578063c52164c6146106b9578063d1c07028146106e657600080fd5b80638db564c2116100d15780638db564c2146105c55780639872dbfe146105db57806398a26871146105f15780639eee8d4b1461062157600080fd5b80637f94f65d146104f257806380e1d3021461051257806384ab1d28146105525780638da5cb5b1461059857600080fd5b80634b2ae9801161017a5780636a146024116101495780636a146024146104695780636d82d9e01461048557806374ba03a0146104a557806377cd38a4146104c557600080fd5b80634b2ae980146103e3578063574983c8146104045780635fd8c7101461042457806369cc6af41461043957600080fd5b806313af4035116101b657806313af40351461026a578063328a71811461028a578063367821f0146102aa578063461f3120146103a357600080fd5b806304937320146101e85780630a98b9bd146102285780630d2a2d441461024857600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506102156102033660046123d5565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561023457600080fd5b5061021561024336600461245c565b6107be565b34801561025457600080fd5b50610268610263366004612643565b610b6d565b005b34801561027657600080fd5b50610268610285366004612680565b610ca7565b34801561029657600080fd5b506102686102a53660046126b9565b610d98565b3480156102b657600080fd5b506103376102c53660046123d5565b6005602081905260009182526040909120805460018201546002830154600384015460048501549585015460068601546007870154600888015460099098015496989597949693959473ffffffffffffffffffffffffffffffffffffffff93841694928416939182169290821691168a565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925273ffffffffffffffffffffffffffffffffffffffff90811660a087015290811660c086015290811660e0850152908116610100840152166101208201526101400161021f565b3480156103af57600080fd5b506103d36103be3660046123d5565b60096020526000908152604090205460ff1681565b604051901515815260200161021f565b3480156103ef57600080fd5b506102156103fe366004612680565b600c1b90565b34801561041057600080fd5b5061026861041f3660046123d5565b610fd9565b34801561043057600080fd5b5061026861108f565b34801561044557600080fd5b506103d3610454366004612680565b600a6020526000908152604090205460ff1681565b34801561047557600080fd5b50610215670de0b6b3a764000081565b34801561049157600080fd5b506102686104a036600461272c565b611151565b3480156104b157600080fd5b506102686104c0366004612761565b611268565b3480156104d157600080fd5b506102156104e03660046123d5565b60066020526000908152604090205481565b3480156104fe57600080fd5b5061026861050d3660046127c5565b611747565b34801561051e57600080fd5b506103d361052d3660046127f1565b600c9190911b6000908152600b60209081526040808320938352929052205460ff1c90565b34801561055e57600080fd5b5061057361056d3660046123d5565b600c1c90565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021f565b3480156105a457600080fd5b506000546105739073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105d157600080fd5b5061021560045481565b3480156105e757600080fd5b5061021560035481565b3480156105fd57600080fd5b506103d361060c3660046123d5565b60086020526000908152604090205460ff1681565b34801561062d57600080fd5b5061021561063c36600461282a565b600b60209081526000928352604080842090915290825290205481565b34801561066557600080fd5b506105736106743660046127f1565b600c9190911b6000908152600b602090815260408083209383529290522054605f1c90565b3480156106a557600080fd5b506102686106b436600461284f565b61180d565b3480156106c557600080fd5b506002546105739073ffffffffffffffffffffffffffffffffffffffff1681565b3480156106f257600080fd5b50610706610701366004612891565b611a50565b60405161021f91906128d8565b34801561071f57600080fd5b5061021561072e3660046127f1565b600c9190911b6000908152600b6020908152604080832093835292905220546b3fffffffffffffffffffffff1690565b34801561076a57600080fd5b5061026861077936600461291c565b611b2a565b34801561078a57600080fd5b50610268610799366004612680565b611c3a565b3480156107aa57600080fd5b506102686107b93660046129de565b611d06565b60006107c8611e02565b6107d2838361180d565b600c8b901b6000908152600b602090815260408083208d84529091529020548a9060ff1c61082c576040517fb2e532de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c8c901b6000908152600b602090815260408083208484529091529020546b3fffffffffffffffffffffff1687811015610893576040517f22bbb43c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061089f8e600c1b90565b9050600060045460016108b29190612a69565b60008181526005602052604090206004015490915043116108ff576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061014001604052808481526020018381526020018d81526020018c8152602001600354436109339190612a69565b8152602001605f600b600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c73ffffffffffffffffffffffffffffffffffffffff1681526020018f73ffffffffffffffffffffffffffffffffffffffff1681526020018e73ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff16815250905089899050600014610a7057600083815260066020526040902054610a40908b908b9033611e46565b610a4e848c84848988611e9e565b60048054906000610a5e83612a81565b91905055508195505050505050610b56565b68056bc75e2d63100000816060015111610a9257610a4e848c84848988611e9e565b33600c1b60009081526007602052604081205490610ac0610abb670de0b6b3a764000084612aba565b611ff9565b9050610ad4670de0b6b3a764000082612af5565b83606001511180610af2575069d3c21bcecceda10000008360600151115b15610b29576040517f1c18f84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b37868e86868b8a611e9e565b60048054906000610b4783612a81565b90915550939750505050505050505b610b5f60018055565b9a9950505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b80516000905b80821015610c6b576000610c26848481518110610c1857610c18612b32565b6020026020010151600c1b90565b600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155929092019150610bf9565b50507f14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d781604051610c9c9190612b61565b60405180910390a150565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b8433600c1b73ffffffffffffffffffffffffffffffffffffffff8516610dea576040517f6a3bc53e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205460ff16610e49576040517f1578328e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020546b3fffffffffffffffffffffff81166a52b7d2dcc80cd2e4000000610eac6bffffffffffffffffffffffff8a1683612a69565b1115610ee4576040517ff3fb0eb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eec611e02565b8415610efc57610efc3386611747565b87878760ff81901b605f83901b610f138587612a69565b6000898152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8e16845290915290209117919091179055610f648733306bffffffffffffffffffffffff8f166120b5565b610f6d60018055565b6040805173ffffffffffffffffffffffffffffffffffffffff8e1681526bffffffffffffffffffffffff8d16602082015233917f63d8d7d5e63e9840ec91a12a160d27b7cfab294f6ba070b7359692acfe6b03bf910160405180910390a2505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b806003557f70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b851181604051610c9c91815260200190565b60005473ffffffffffffffffffffffffffffffffffffffff163314611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b4761111b338261217f565b60408051338152602081018390527feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9101610c9c565b33600c1b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091529020548015611230576000828152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816808552908352928190207f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490941660ff87901b1793849055805192835285151591830191909152849133917fca585721b6b442dc9183932f7c84dc2880efb67c4da52cc06873e78971105d49910160405180910390a250611262565b6040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b611270611e02565b600086815260056020526040902060038101546112b9576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b43816004015410156112f7576040517ff6fafba000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005810154600382015460405160609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602083015260348201526054810186905260009060740160405160208183030381529060405280519060200120905060008160405160200161139a91907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000858152600990935291205490915060ff1615156001141561141f576040517ff490a6ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820180845284905260ff87169282019290925260608101889052608081018790526114879060019060a0016020604051602081039080840390855afa158015611477573d6000803e3d6000fd5b50505060206040510351600c1b90565b60008181526008602052604090205490915060ff166114d2576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60098401546003850154600286015473ffffffffffffffffffffffffffffffffffffffff909216916000906115079083612baf565b6000600389018190556004890181905587815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560088801549091503373ffffffffffffffffffffffffffffffffffffffff909116146115f357600287015433600c1b60009081526007602052604081208054909190611599908490612a69565b9091555050600887015482906007906000906115cb9073ffffffffffffffffffffffffffffffffffffffff16600c1b90565b815260200190815260200160002060008282546115e89190612a69565b9091555061162b9050565b8187600201546116039190612a69565b33600c1b60009081526007602052604081208054909190611625908490612a69565b90915550505b600687015461165290849073ffffffffffffffffffffffffffffffffffffffff16836121f9565b6002870154156116d857600787015473ffffffffffffffffffffffffffffffffffffffff8d81169116146116c957600787015460028801546116b191859173ffffffffffffffffffffffffffffffffffffffff9091169060011c6121f9565b6116c4838d60018a60020154901c6121f9565b6116d8565b6116d8838d89600201546121f9565b6006870154604080518f81526020810185905273ffffffffffffffffffffffffffffffffffffffff909216917f364537f14276f2a0ce9905588413f96454cbb8fb2e4f5308389307c1098bede8910160405180910390a25050505050505061173f60018055565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff82163314156117db57806006600061177485600c1b90565b8152602080820192909252604090810160002092909255815173ffffffffffffffffffffffffffffffffffffffff851681529081018390527f0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632910160405180910390a15050565b6040517f85d1f72600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b80821015611a3a5760006005600086868681811061183157611831612b32565b9050602002013581526020019081526020016000209050611851816122b8565b80546000908152600b60209081526040808320600985015473ffffffffffffffffffffffffffffffffffffffff16845290915290205460038201546b3fffffffffffffffffffffff909116906a52b7d2dcc80cd2e4000000906118b49083612a69565b11156118ec576040517ff3fb0eb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600382015482546000908152600b60209081526040808320600987015473ffffffffffffffffffffffffffffffffffffffff16845290915281208054909190611936908490612a69565b909155505060006003830181905560088301546119699073ffffffffffffffffffffffffffffffffffffffff16600c1b90565b60008181526007602052604090205490915060011c68056bc75e2d6310000081116119ad57600082815260076020526040902068056bc75e2d6310000090556119bf565b60008281526007602052604090208190555b600684015473ffffffffffffffffffffffffffffffffffffffff167f830501e61b8b075e170b22a430e39454bdb12ed3e9620e586430b6ac00079da5898989818110611a0d57611a0d612b32565b90506020020135604051611a2391815260200190565b60405180910390a285600101955050505050611811565b808210156112625763dfb035c96000526004601cfd5b8151606090600090818167ffffffffffffffff811115611a7257611a7261252d565b604051908082528060200260200182016040528015611a9b578160200160208202803683370190505b5090505b81831015611b21576000611af4878581518110611abe57611abe612b32565b602090810291909101810151600c1b6000908152600b825260408082208a835290925220546b3fffffffffffffffffffffff1690565b905080828581518110611b0957611b09612b32565b60200260200101818152505083600101935050611a9f565b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611bab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b815180611bc05763df9578836000526004601cfd5b81518114611bd65763ff633a386000526004601cfd5b60208301602083018260051b82015b80831461173f578251600052600a60205260406000208251815550815183517f5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a600080a3602083019250602082019150611be5565b60005473ffffffffffffffffffffffffffffffffffffffff163314611cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b600281905560405173ffffffffffffffffffffffffffffffffffffffff821681527fe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f90602001610c9c565b611d0e611e02565b611d18828261180d565b33600c1b6000908152600b6020908152604080832087845290915290205460ff1c151560011415611d4e57611d4e846000611151565b33600c1b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168452909152902054611d9c906b3fffffffffffffffffffffff16858784612334565b611da78533866121f9565b6040805173ffffffffffffffffffffffffffffffffffffffff871681526020810186905233917f2cd6435b1b961c13f55202979edd0765a809f69a539d8a477436c94c1211e43e910160405180910390a25061126260018055565b60015460021415611e3f576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b611e6884848473ffffffffffffffffffffffffffffffffffffffff8516612391565b611262576040517f3b8474be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602081815260409283902086518155908601516001820155918501516002830155606085015160038301556080850151600483015560a085015190820180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161790915560c0860151600684018054831691841691909117905560e0860151600784018054831691841691909117905561010086015160088401805483169184169190911790556101208601516009909301805490911692909116919091179055611f8d86868484612334565b60c083015183516060850151604051879373ffffffffffffffffffffffffffffffffffffffff16927f8fb3989f70bd172a37d15b41b015e48ea09d59329638377304a4198cd0c4ea6592611fe992918252602082015260400190565b60405180910390a3505050505050565b600080634d2b179160e01b8360405160240161201791815260200190565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600080600060206000855160208701600254617530fa92503d91506000519050809450826120ac5763e10bf1cc6000526004601cfd5b50505050919050565b60006040517f23b872dd000000000000000000000000000000000000000000000000000000006000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610bea565b5050505050565b600080600080600085875af19050806121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610bea565b505050565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000006000528360045282602452602060006044600080895af13d15601f3d1160016000511416171691506000606052806040525080611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610bea565b43816004015411156122f6576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003810154612331576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b836123475763ce3a3d376000526004601cfd5b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054859290612386908490612baf565b909155505050505050565b600083156123cd578360051b8501855b803580851160051b948552602094851852604060002093018181106123c5576123ca565b6123a1565b50505b501492915050565b6000602082840312156123e757600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461233157600080fd5b60008083601f84011261242257600080fd5b50813567ffffffffffffffff81111561243a57600080fd5b6020830191508360208260051b850101111561245557600080fd5b9250929050565b6000806000806000806000806000806101008b8d03121561247c57600080fd5b8a35612487816123ee565b995060208b0135612497816123ee565b985060408b01356124a7816123ee565b975060608b01356124b7816123ee565b965060808b0135955060a08b0135945060c08b013567ffffffffffffffff808211156124e257600080fd5b6124ee8e838f01612410565b909650945060e08d013591508082111561250757600080fd5b506125148d828e01612410565b915080935050809150509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156125a3576125a361252d565b604052919050565b600067ffffffffffffffff8211156125c5576125c561252d565b5060051b60200190565b600082601f8301126125e057600080fd5b813560206125f56125f0836125ab565b61255c565b82815260059290921b8401810191818101908684111561261457600080fd5b8286015b8481101561263857803561262b816123ee565b8352918301918301612618565b509695505050505050565b60006020828403121561265557600080fd5b813567ffffffffffffffff81111561266c57600080fd5b612678848285016125cf565b949350505050565b60006020828403121561269257600080fd5b813561269d816123ee565b9392505050565b803580151581146126b457600080fd5b919050565b600080600080600060a086880312156126d157600080fd5b85356126dc816123ee565b945060208601356bffffffffffffffffffffffff811681146126fd57600080fd5b9350604086013561270d816123ee565b925061271b606087016126a4565b949793965091946080013592915050565b6000806040838503121561273f57600080fd5b823561274a816123ee565b9150612758602084016126a4565b90509250929050565b60008060008060008060c0878903121561277a57600080fd5b86359550602087013561278c816123ee565b945060408701359350606087013592506080870135915060a087013560ff811681146127b757600080fd5b809150509295509295509295565b600080604083850312156127d857600080fd5b82356127e3816123ee565b946020939093013593505050565b6000806040838503121561280457600080fd5b823561280f816123ee565b9150602083013561281f816123ee565b809150509250929050565b6000806040838503121561283d57600080fd5b82359150602083013561281f816123ee565b6000806020838503121561286257600080fd5b823567ffffffffffffffff81111561287957600080fd5b61288585828601612410565b90969095509350505050565b600080604083850312156128a457600080fd5b823567ffffffffffffffff8111156128bb57600080fd5b6128c7858286016125cf565b925050602083013561281f816123ee565b6020808252825182820181905260009190848201906040850190845b81811015612910578351835292840192918401916001016128f4565b50909695505050505050565b6000806040838503121561292f57600080fd5b823567ffffffffffffffff8082111561294757600080fd5b612953868387016125cf565b935060209150818501358181111561296a57600080fd5b85019050601f8101861361297d57600080fd5b803561298b6125f0826125ab565b81815260059190911b820183019083810190888311156129aa57600080fd5b928401925b828410156129cf576129c0846126a4565b825292840192908401906129af565b80955050505050509250929050565b600080600080606085870312156129f457600080fd5b84356129ff816123ee565b935060208501359250604085013567ffffffffffffffff811115612a2257600080fd5b612a2e87828801612410565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115612a7c57612a7c612a3a565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ab357612ab3612a3a565b5060010190565b600082612af0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b2d57612b2d612a3a565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101561291057835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612b7d565b600082821015612bc157612bc1612a3a565b50039056fea164736f6c6343000809000a", + "deployedBytecode": "0x6080604052600436106101dc5760003560e01c80637f94f65d11610102578063ad8f2eed11610095578063d4fac45d11610064578063d4fac45d14610713578063d6e8b9731461075e578063f7d0e04b1461077e578063fb8c5ef01461079e57600080fd5b8063ad8f2eed14610659578063b0983d3914610699578063c52164c6146106b9578063d1c07028146106e657600080fd5b80638db564c2116100d15780638db564c2146105c55780639872dbfe146105db57806398a26871146105f15780639eee8d4b1461062157600080fd5b80637f94f65d146104f257806380e1d3021461051257806384ab1d28146105525780638da5cb5b1461059857600080fd5b80634b2ae9801161017a5780636a146024116101495780636a146024146104695780636d82d9e01461048557806374ba03a0146104a557806377cd38a4146104c557600080fd5b80634b2ae980146103e3578063574983c8146104045780635fd8c7101461042457806369cc6af41461043957600080fd5b806313af4035116101b657806313af40351461026a578063328a71811461028a578063367821f0146102aa578063461f3120146103a357600080fd5b806304937320146101e85780630a98b9bd146102285780630d2a2d441461024857600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506102156102033660046123d5565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561023457600080fd5b5061021561024336600461245c565b6107be565b34801561025457600080fd5b50610268610263366004612643565b610b6d565b005b34801561027657600080fd5b50610268610285366004612680565b610ca7565b34801561029657600080fd5b506102686102a53660046126b9565b610d98565b3480156102b657600080fd5b506103376102c53660046123d5565b6005602081905260009182526040909120805460018201546002830154600384015460048501549585015460068601546007870154600888015460099098015496989597949693959473ffffffffffffffffffffffffffffffffffffffff93841694928416939182169290821691168a565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925273ffffffffffffffffffffffffffffffffffffffff90811660a087015290811660c086015290811660e0850152908116610100840152166101208201526101400161021f565b3480156103af57600080fd5b506103d36103be3660046123d5565b60096020526000908152604090205460ff1681565b604051901515815260200161021f565b3480156103ef57600080fd5b506102156103fe366004612680565b600c1b90565b34801561041057600080fd5b5061026861041f3660046123d5565b610fd9565b34801561043057600080fd5b5061026861108f565b34801561044557600080fd5b506103d3610454366004612680565b600a6020526000908152604090205460ff1681565b34801561047557600080fd5b50610215670de0b6b3a764000081565b34801561049157600080fd5b506102686104a036600461272c565b611151565b3480156104b157600080fd5b506102686104c0366004612761565b611268565b3480156104d157600080fd5b506102156104e03660046123d5565b60066020526000908152604090205481565b3480156104fe57600080fd5b5061026861050d3660046127c5565b611747565b34801561051e57600080fd5b506103d361052d3660046127f1565b600c9190911b6000908152600b60209081526040808320938352929052205460ff1c90565b34801561055e57600080fd5b5061057361056d3660046123d5565b600c1c90565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021f565b3480156105a457600080fd5b506000546105739073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105d157600080fd5b5061021560045481565b3480156105e757600080fd5b5061021560035481565b3480156105fd57600080fd5b506103d361060c3660046123d5565b60086020526000908152604090205460ff1681565b34801561062d57600080fd5b5061021561063c36600461282a565b600b60209081526000928352604080842090915290825290205481565b34801561066557600080fd5b506105736106743660046127f1565b600c9190911b6000908152600b602090815260408083209383529290522054605f1c90565b3480156106a557600080fd5b506102686106b436600461284f565b61180d565b3480156106c557600080fd5b506002546105739073ffffffffffffffffffffffffffffffffffffffff1681565b3480156106f257600080fd5b50610706610701366004612891565b611a50565b60405161021f91906128d8565b34801561071f57600080fd5b5061021561072e3660046127f1565b600c9190911b6000908152600b6020908152604080832093835292905220546b3fffffffffffffffffffffff1690565b34801561076a57600080fd5b5061026861077936600461291c565b611b2a565b34801561078a57600080fd5b50610268610799366004612680565b611c3a565b3480156107aa57600080fd5b506102686107b93660046129de565b611d06565b60006107c8611e02565b6107d2838361180d565b600c8b901b6000908152600b602090815260408083208d84529091529020548a9060ff1c61082c576040517fb2e532de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c8c901b6000908152600b602090815260408083208484529091529020546b3fffffffffffffffffffffff1687811015610893576040517f22bbb43c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061089f8e600c1b90565b9050600060045460016108b29190612a69565b60008181526005602052604090206004015490915043116108ff576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061014001604052808481526020018381526020018d81526020018c8152602001600354436109339190612a69565b8152602001605f600b600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c73ffffffffffffffffffffffffffffffffffffffff1681526020018f73ffffffffffffffffffffffffffffffffffffffff1681526020018e73ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff16815250905089899050600014610a7057600083815260066020526040902054610a40908b908b9033611e46565b610a4e848c84848988611e9e565b60048054906000610a5e83612a81565b91905055508195505050505050610b56565b68056bc75e2d63100000816060015111610a9257610a4e848c84848988611e9e565b33600c1b60009081526007602052604081205490610ac0610abb670de0b6b3a764000084612aba565b611ff9565b9050610ad4670de0b6b3a764000082612af5565b83606001511180610af2575069d3c21bcecceda10000008360600151115b15610b29576040517f1c18f84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b37868e86868b8a611e9e565b60048054906000610b4783612a81565b90915550939750505050505050505b610b5f60018055565b9a9950505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b80516000905b80821015610c6b576000610c26848481518110610c1857610c18612b32565b6020026020010151600c1b90565b600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155929092019150610bf9565b50507f14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d781604051610c9c9190612b61565b60405180910390a150565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b8433600c1b73ffffffffffffffffffffffffffffffffffffffff8516610dea576040517f6a3bc53e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205460ff16610e49576040517f1578328e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020546b3fffffffffffffffffffffff81166a52b7d2dcc80cd2e4000000610eac6bffffffffffffffffffffffff8a1683612a69565b1115610ee4576040517ff3fb0eb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eec611e02565b8415610efc57610efc3386611747565b87878760ff81901b605f83901b610f138587612a69565b6000898152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8e16845290915290209117919091179055610f648733306bffffffffffffffffffffffff8f166120b5565b610f6d60018055565b6040805173ffffffffffffffffffffffffffffffffffffffff8e1681526bffffffffffffffffffffffff8d16602082015233917f63d8d7d5e63e9840ec91a12a160d27b7cfab294f6ba070b7359692acfe6b03bf910160405180910390a2505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b806003557f70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b851181604051610c9c91815260200190565b60005473ffffffffffffffffffffffffffffffffffffffff163314611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b4761111b338261217f565b60408051338152602081018390527feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9101610c9c565b33600c1b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091529020548015611230576000828152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816808552908352928190207f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490941660ff87901b1793849055805192835285151591830191909152849133917fca585721b6b442dc9183932f7c84dc2880efb67c4da52cc06873e78971105d49910160405180910390a250611262565b6040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b611270611e02565b600086815260056020526040902060038101546112b9576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b43816004015410156112f7576040517ff6fafba000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005810154600382015460405160609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602083015260348201526054810186905260009060740160405160208183030381529060405280519060200120905060008160405160200161139a91907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000858152600990935291205490915060ff1615156001141561141f576040517ff490a6ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820180845284905260ff87169282019290925260608101889052608081018790526114879060019060a0016020604051602081039080840390855afa158015611477573d6000803e3d6000fd5b50505060206040510351600c1b90565b60008181526008602052604090205490915060ff166114d2576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60098401546003850154600286015473ffffffffffffffffffffffffffffffffffffffff909216916000906115079083612baf565b6000600389018190556004890181905587815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560088801549091503373ffffffffffffffffffffffffffffffffffffffff909116146115f357600287015433600c1b60009081526007602052604081208054909190611599908490612a69565b9091555050600887015482906007906000906115cb9073ffffffffffffffffffffffffffffffffffffffff16600c1b90565b815260200190815260200160002060008282546115e89190612a69565b9091555061162b9050565b8187600201546116039190612a69565b33600c1b60009081526007602052604081208054909190611625908490612a69565b90915550505b600687015461165290849073ffffffffffffffffffffffffffffffffffffffff16836121f9565b6002870154156116d857600787015473ffffffffffffffffffffffffffffffffffffffff8d81169116146116c957600787015460028801546116b191859173ffffffffffffffffffffffffffffffffffffffff9091169060011c6121f9565b6116c4838d60018a60020154901c6121f9565b6116d8565b6116d8838d89600201546121f9565b6006870154604080518f81526020810185905273ffffffffffffffffffffffffffffffffffffffff909216917f364537f14276f2a0ce9905588413f96454cbb8fb2e4f5308389307c1098bede8910160405180910390a25050505050505061173f60018055565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff82163314156117db57806006600061177485600c1b90565b8152602080820192909252604090810160002092909255815173ffffffffffffffffffffffffffffffffffffffff851681529081018390527f0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632910160405180910390a15050565b6040517f85d1f72600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b80821015611a3a5760006005600086868681811061183157611831612b32565b9050602002013581526020019081526020016000209050611851816122b8565b80546000908152600b60209081526040808320600985015473ffffffffffffffffffffffffffffffffffffffff16845290915290205460038201546b3fffffffffffffffffffffff909116906a52b7d2dcc80cd2e4000000906118b49083612a69565b11156118ec576040517ff3fb0eb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600382015482546000908152600b60209081526040808320600987015473ffffffffffffffffffffffffffffffffffffffff16845290915281208054909190611936908490612a69565b909155505060006003830181905560088301546119699073ffffffffffffffffffffffffffffffffffffffff16600c1b90565b60008181526007602052604090205490915060011c68056bc75e2d6310000081116119ad57600082815260076020526040902068056bc75e2d6310000090556119bf565b60008281526007602052604090208190555b600684015473ffffffffffffffffffffffffffffffffffffffff167f830501e61b8b075e170b22a430e39454bdb12ed3e9620e586430b6ac00079da5898989818110611a0d57611a0d612b32565b90506020020135604051611a2391815260200190565b60405180910390a285600101955050505050611811565b808210156112625763dfb035c96000526004601cfd5b8151606090600090818167ffffffffffffffff811115611a7257611a7261252d565b604051908082528060200260200182016040528015611a9b578160200160208202803683370190505b5090505b81831015611b21576000611af4878581518110611abe57611abe612b32565b602090810291909101810151600c1b6000908152600b825260408082208a835290925220546b3fffffffffffffffffffffff1690565b905080828581518110611b0957611b09612b32565b60200260200101818152505083600101935050611a9f565b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611bab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b815180611bc05763df9578836000526004601cfd5b81518114611bd65763ff633a386000526004601cfd5b60208301602083018260051b82015b80831461173f578251600052600a60205260406000208251815550815183517f5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a600080a3602083019250602082019150611be5565b60005473ffffffffffffffffffffffffffffffffffffffff163314611cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610bea565b600281905560405173ffffffffffffffffffffffffffffffffffffffff821681527fe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f90602001610c9c565b611d0e611e02565b611d18828261180d565b33600c1b6000908152600b6020908152604080832087845290915290205460ff1c151560011415611d4e57611d4e846000611151565b33600c1b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168452909152902054611d9c906b3fffffffffffffffffffffff16858784612334565b611da78533866121f9565b6040805173ffffffffffffffffffffffffffffffffffffffff871681526020810186905233917f2cd6435b1b961c13f55202979edd0765a809f69a539d8a477436c94c1211e43e910160405180910390a25061126260018055565b60015460021415611e3f576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b611e6884848473ffffffffffffffffffffffffffffffffffffffff8516612391565b611262576040517f3b8474be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602081815260409283902086518155908601516001820155918501516002830155606085015160038301556080850151600483015560a085015190820180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161790915560c0860151600684018054831691841691909117905560e0860151600784018054831691841691909117905561010086015160088401805483169184169190911790556101208601516009909301805490911692909116919091179055611f8d86868484612334565b60c083015183516060850151604051879373ffffffffffffffffffffffffffffffffffffffff16927f8fb3989f70bd172a37d15b41b015e48ea09d59329638377304a4198cd0c4ea6592611fe992918252602082015260400190565b60405180910390a3505050505050565b600080634d2b179160e01b8360405160240161201791815260200190565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600080600060206000855160208701600254617530fa92503d91506000519050809450826120ac5763e10bf1cc6000526004601cfd5b50505050919050565b60006040517f23b872dd000000000000000000000000000000000000000000000000000000006000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610bea565b5050505050565b600080600080600085875af19050806121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610bea565b505050565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000006000528360045282602452602060006044600080895af13d15601f3d1160016000511416171691506000606052806040525080611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610bea565b43816004015411156122f6576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003810154612331576040517f63b4904e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b836123475763ce3a3d376000526004601cfd5b6000818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054859290612386908490612baf565b909155505050505050565b600083156123cd578360051b8501855b803580851160051b948552602094851852604060002093018181106123c5576123ca565b6123a1565b50505b501492915050565b6000602082840312156123e757600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461233157600080fd5b60008083601f84011261242257600080fd5b50813567ffffffffffffffff81111561243a57600080fd5b6020830191508360208260051b850101111561245557600080fd5b9250929050565b6000806000806000806000806000806101008b8d03121561247c57600080fd5b8a35612487816123ee565b995060208b0135612497816123ee565b985060408b01356124a7816123ee565b975060608b01356124b7816123ee565b965060808b0135955060a08b0135945060c08b013567ffffffffffffffff808211156124e257600080fd5b6124ee8e838f01612410565b909650945060e08d013591508082111561250757600080fd5b506125148d828e01612410565b915080935050809150509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156125a3576125a361252d565b604052919050565b600067ffffffffffffffff8211156125c5576125c561252d565b5060051b60200190565b600082601f8301126125e057600080fd5b813560206125f56125f0836125ab565b61255c565b82815260059290921b8401810191818101908684111561261457600080fd5b8286015b8481101561263857803561262b816123ee565b8352918301918301612618565b509695505050505050565b60006020828403121561265557600080fd5b813567ffffffffffffffff81111561266c57600080fd5b612678848285016125cf565b949350505050565b60006020828403121561269257600080fd5b813561269d816123ee565b9392505050565b803580151581146126b457600080fd5b919050565b600080600080600060a086880312156126d157600080fd5b85356126dc816123ee565b945060208601356bffffffffffffffffffffffff811681146126fd57600080fd5b9350604086013561270d816123ee565b925061271b606087016126a4565b949793965091946080013592915050565b6000806040838503121561273f57600080fd5b823561274a816123ee565b9150612758602084016126a4565b90509250929050565b60008060008060008060c0878903121561277a57600080fd5b86359550602087013561278c816123ee565b945060408701359350606087013592506080870135915060a087013560ff811681146127b757600080fd5b809150509295509295509295565b600080604083850312156127d857600080fd5b82356127e3816123ee565b946020939093013593505050565b6000806040838503121561280457600080fd5b823561280f816123ee565b9150602083013561281f816123ee565b809150509250929050565b6000806040838503121561283d57600080fd5b82359150602083013561281f816123ee565b6000806020838503121561286257600080fd5b823567ffffffffffffffff81111561287957600080fd5b61288585828601612410565b90969095509350505050565b600080604083850312156128a457600080fd5b823567ffffffffffffffff8111156128bb57600080fd5b6128c7858286016125cf565b925050602083013561281f816123ee565b6020808252825182820181905260009190848201906040850190845b81811015612910578351835292840192918401916001016128f4565b50909695505050505050565b6000806040838503121561292f57600080fd5b823567ffffffffffffffff8082111561294757600080fd5b612953868387016125cf565b935060209150818501358181111561296a57600080fd5b85019050601f8101861361297d57600080fd5b803561298b6125f0826125ab565b81815260059190911b820183019083810190888311156129aa57600080fd5b928401925b828410156129cf576129c0846126a4565b825292840192908401906129af565b80955050505050509250929050565b600080600080606085870312156129f457600080fd5b84356129ff816123ee565b935060208501359250604085013567ffffffffffffffff811115612a2257600080fd5b612a2e87828801612410565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115612a7c57612a7c612a3a565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ab357612ab3612a3a565b5060010190565b600082612af0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b2d57612b2d612a3a565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101561291057835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612b7d565b600082821015612bc157612bc1612a3a565b50039056fea164736f6c6343000809000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/utils/smart_contract_files/goerli.json b/src/utils/smart_contract_files/goerli.json deleted file mode 100644 index 53cafaa..0000000 --- a/src/utils/smart_contract_files/goerli.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "signers": [ - "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" - ], - "p2pix": "0x5f3EFA9A90532914545CEf527C530658af87e196", - "token": "0x294003F602c321627152c6b7DED3EAb5bEa853Ee" -} \ No newline at end of file diff --git a/src/utils/smart_contract_files/localhost.json b/src/utils/smart_contract_files/localhost.json deleted file mode 100644 index d334d4a..0000000 --- a/src/utils/smart_contract_files/localhost.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "signers": [ - "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" - ], - "p2pix": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0", - "token": "0x5FbDB2315678afecb367f032d93F642f64180aa3" -} \ No newline at end of file diff --git a/src/utils/smart_contract_files/polygon-mumbai.json b/src/utils/smart_contract_files/polygon-mumbai.json deleted file mode 100644 index 53cafaa..0000000 --- a/src/utils/smart_contract_files/polygon-mumbai.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "signers": [ - "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" - ], - "p2pix": "0x5f3EFA9A90532914545CEf527C530658af87e196", - "token": "0x294003F602c321627152c6b7DED3EAb5bEa853Ee" -} \ No newline at end of file diff --git a/src/utils/smart_contract_files/wallets.json b/src/utils/smart_contract_files/wallets.json deleted file mode 100644 index 5d6729c..0000000 --- a/src/utils/smart_contract_files/wallets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "wallets":[ - "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", - "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC" - ] -} \ No newline at end of file diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 128f733..aba5668 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -27,7 +27,7 @@ etherStore.setSellerView(false); // States const { loadingLock, walletAddress } = storeToRefs(etherStore); const flowStep = ref(Step.Search); -const pixTarget = ref(""); +const pixTarget = ref(); const tokenAmount = ref(); const _lockID = ref(""); const loadingRelease = ref(false); @@ -46,7 +46,7 @@ const confirmBuyClick = async ( flowStep.value = Step.Buy; etherStore.setLoadingLock(true); - await addLock(selectedDeposit.depositID, tokenValue) + await addLock(selectedDeposit.seller, selectedDeposit.token, tokenValue) .then((lockID) => { _lockID.value = lockID; }) @@ -63,7 +63,7 @@ const releaseTransaction = async (e2eId: string) => { flowStep.value = Step.List; loadingRelease.value = true; - if (_lockID.value && tokenAmount.value) { + if (_lockID.value && tokenAmount.value && pixTarget.value) { const release = await releaseLock( pixTarget.value, tokenAmount.value, @@ -96,7 +96,7 @@ onMounted(async () => { />
Date: Tue, 31 Jan 2023 18:33:24 -0300 Subject: [PATCH 02/10] Improve return from valid deposits to consider multiple deposit reduced in one for same account and consider changing of network and account to verify liquidity on Search Component Co-authored-by: brunoedcf --- src/blockchain/events.ts | 7 ++++--- src/components/SearchComponent.vue | 5 +++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/blockchain/events.ts b/src/blockchain/events.ts index 8cf3d9f..72ee93d 100644 --- a/src/blockchain/events.ts +++ b/src/blockchain/events.ts @@ -63,8 +63,9 @@ const getValidDeposits = async ( const eventsDeposits = await p2pContract.queryFilter(filterDeposits); if (!contract) p2pContract = getContract(); // get metamask provider contract + const depositList: { [key: string]: ValidDeposit } = {}; - const depositList = await Promise.all( + await Promise.all( eventsDeposits.map(async (deposit) => { // Get liquidity only for the selected token if (deposit.args?.token != token) return null; @@ -91,11 +92,11 @@ const getValidDeposits = async ( }; } - return validDeposit; + if (validDeposit) depositList[deposit.args?.seller + token] = validDeposit; }) ); - return depositList.filter((deposit) => deposit) as ValidDeposit[]; + return Object.values(depositList); }; export { getValidDeposits, getNetworksLiquidity }; diff --git a/src/components/SearchComponent.vue b/src/components/SearchComponent.vue index dd328cb..98a22b2 100644 --- a/src/components/SearchComponent.vue +++ b/src/components/SearchComponent.vue @@ -107,8 +107,13 @@ const enableOrDisableConfirmButton = (): void => { }; watch(networkName, (): void => { + verifyLiquidity(); enableOrDisableConfirmButton(); }); + +watch(walletAddress, (): void => { + verifyLiquidity(); +}); diff --git a/src/components/SearchComponent.vue b/src/components/SearchComponent.vue index b617b3c..2dbadc1 100644 --- a/src/components/SearchComponent.vue +++ b/src/components/SearchComponent.vue @@ -154,7 +154,9 @@ watch(walletAddress, (): void => { class="sm:w-fit w-4" src="@/assets/brz.svg" /> - BRZ + BRZ
diff --git a/src/components/SellerSteps/SendNetwork.vue b/src/components/SellerSteps/SendNetwork.vue index 016e15a..cc38d58 100644 --- a/src/components/SellerSteps/SendNetwork.vue +++ b/src/components/SellerSteps/SendNetwork.vue @@ -14,10 +14,12 @@ const props = defineProps({