-
+
+
+
+ {{ $t(layer.toLowerCase()) }} deployment
+
+
+
+
{{ $t(`switchTo${layer}`) }}
+
{{
+ $t(`switchNetworkTo${layer}`)
+ }}
+
+
+
+
+
+
diff --git a/langs/en.json b/langs/en.json
index 42fc49a..5fc5bd4 100644
--- a/langs/en.json
+++ b/langs/en.json
@@ -16,8 +16,10 @@
"deploy": "Deploy",
"deployedBy": "Deployed by: {link}",
"startNow": "Start now",
- "completedTasks": "Completed Tasks: {progress}",
- "pageSubtitle": "Follow these simple steps to become part of deployment of Tornado.Cash protocol on xDAI Chain.",
+ "l1": "Layer 1",
+ "l2": "Layer 2",
+ "completedTasks": "Completed {layer} Tasks: {progress}",
+ "pageSubtitle": "Follow these simple steps to become part of deployment of Tornado.Cash Pool protocol.",
"alreadyDeployed": "Already deployed",
"contractDeployed": "Contract successfully deployed",
"transactionFailed": "Transaction was failed",
@@ -26,6 +28,8 @@
"viewOnEtherscan": "View on Etherscan",
"pleaseConnectWallet": "Please connect your wallet first",
"dependsOnEns": "This action depends on {ens}",
- "xDaiOnly": "Please switch your wallet to xDAI Chain",
- "switchNetwork": "Switch to xDAI"
+ "switchToL1": "Please switch your wallet to Ethereum Mainnet for L1 deployment.",
+ "switchToL2": "Please switch your wallet to xDAI Chain for L2 deployment.",
+ "switchNetworkToL1": "Switch to Mainnet",
+ "switchNetworkToL2": "Switch to xDAI"
}
diff --git a/networkConfig.js b/networkConfig.js
index e691163..6fae9cd 100644
--- a/networkConfig.js
+++ b/networkConfig.js
@@ -1,4 +1,24 @@
const networkConfig = {
+ netId1: {
+ rpcCallRetryAttempt: 15,
+ gasPrices: { instant: 80, fast: 50, standard: 25, low: 8 },
+ currencyName: 'ETH',
+ explorerUrl: {
+ tx: 'https://etherscan.io/tx/',
+ address: 'https://etherscan.io/address/',
+ },
+ networkName: 'Mainnet',
+ rpcUrls: {
+ Infura: {
+ name: 'Infura',
+ url: 'https://mainnet.infura.io/v3/2884a3281c1d4ae8952e25c84d76bced',
+ },
+ MyCrypto: { name: 'MyCrypto', url: 'https://api.mycryptoapi.com/eth' },
+ },
+ pollInterval: 60,
+ isL1: true,
+ },
+
netId100: {
rpcCallRetryAttempt: 15,
gasPrices: {
@@ -20,6 +40,7 @@ const networkConfig = {
},
},
pollInterval: 200,
+ isL1: false,
},
}
diff --git a/pages/index.vue b/pages/index.vue
index 3999281..e8f3cc3 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -1,7 +1,7 @@
- Tornado.cash xDAI Deployment
+ Tornado.cash Pool Deployment
{{ $t('pageSubtitle') }}
@@ -17,11 +17,11 @@
+ {{ $t(getNetwork.isL1 ? 'l1' : 'l2') }}
- {{ deployedCount }}
+ {{ getNetwork.isL1 ? deployedL1Count : deployedL2Count }}
-
@@ -37,7 +37,8 @@ export default {
Steps,
},
computed: {
- ...mapGetters('steps', ['deployedCount']),
+ ...mapGetters('steps', ['deployedL1Count', 'deployedL2Count']),
+ ...mapGetters('provider', ['getNetwork']),
},
methods: {
scrollTo(element) {
diff --git a/static/deploymentActions.json b/static/deploymentActions.json
index 5138c9f..6fa0d6d 100644
--- a/static/deploymentActions.json
+++ b/static/deploymentActions.json
@@ -19,114 +19,105 @@
"salt": "0x0000000000000000000000000000000000000000000000000000000047941987",
"actions": [
{
- "domain": "deployer.contract.tornadocash.eth",
+ "domain": "deployerL1.contract.tornadocash.eth",
"contract": "Deployer.sol",
- "bytecode": "0x60a060405234801561001057600080fd5b506040516103a83803806103a88339818101604052602081101561003357600080fd5b50516001600160a01b0381161561004a5780610060565b73ce0042b868300000d44a59004da54a005ffdcf9f5b60601b6001600160601b031916608052604051309032907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a35060805160601c6102e86100c06000398061010b528061029052506102e86000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634af63f021461003b578063d5f39488146100ff575b600080fd5b6100e36004803603604081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610107915050565b604080516001600160a01b039092168252519081900360200190f35b6100e361028e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634af63f0284846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561018c578181015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156101d957600080fd5b505af11580156101ed573d6000803e3d6000fd5b505050506040513d602081101561020357600080fd5b505190506001600160a01b038116610252576040805162461bcd60e51b815260206004820152600d60248201526c11195c1b1bde4819985a5b1959609a1b604482015290519081900360640190fd5b6040516001600160a01b0382169033907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a392915050565b7f00000000000000000000000000000000000000000000000000000000000000008156fea2646970667358221220dcbdb35d71b3c1158e9c80fba093e8626155571023006523d2cd2789f23f73ad64736f6c634300060c00330000000000000000000000000000000000000000000000000000000000000000",
- "expectedAddress": "0xd408455e186CD6447A196DdA6BBaFa6556a2555F",
+ "bytecode": "0x60a060405234801561001057600080fd5b506040516103a83803806103a88339818101604052602081101561003357600080fd5b50516001600160a01b0381161561004a5780610060565b73ce0042b868300000d44a59004da54a005ffdcf9f5b60601b6001600160601b031916608052604051309032907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a35060805160601c6102e86100c06000398061010b528061029052506102e86000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634af63f021461003b578063d5f39488146100ff575b600080fd5b6100e36004803603604081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610107915050565b604080516001600160a01b039092168252519081900360200190f35b6100e361028e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634af63f0284846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561018c578181015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156101d957600080fd5b505af11580156101ed573d6000803e3d6000fd5b505050506040513d602081101561020357600080fd5b505190506001600160a01b038116610252576040805162461bcd60e51b815260206004820152600d60248201526c11195c1b1bde4819985a5b1959609a1b604482015290519081900360640190fd5b6040516001600160a01b0382169033907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a392915050565b7f00000000000000000000000000000000000000000000000000000000000000008156fea2646970667358221220bd8e42cb446680525a51ab38a03ae798cf5e07e4ef84a2ce6c9dae7367baabb064736f6c634300060c00330000000000000000000000000000000000000000000000000000000000000000",
+ "expectedAddress": "0xd27F1112316aE5F6902595aFe1520B71a3DD3ec3",
"title": "Deployment proxy",
"constructorArgs": "0x0000000000000000000000000000000000000000000000000000000000000000",
"description": "This a required contract to initialize all other contracts. It is simple wrapper around EIP-2470 Singleton Factory that emits an event of contract deployment. The wrapper also validates if the deployment was successful.",
- "dependsOn": []
+ "dependsOn": [],
+ "isL1Contract": true
+ },
+ {
+ "domain": "l1Helper.contract.tornadocash.eth",
+ "contract": "L1Helper.sol",
+ "bytecode": "0x60c060405234801561001057600080fd5b50604051620012a9380380620012a9833981016040819052610031916100dd565b600080546001600160a01b038084166001600160a01b03199092169190911782556001600160601b0319606086811b821660805285901b1660a0526040805163095ea7b360e01b81528287166004820152600019602482015290518693869386939085169263095ea7b39260448084019391929182900301818387803b1580156100ba57600080fd5b505af11580156100ce573d6000803e3d6000fd5b50505050505050505050610141565b6000806000606084860312156100f1578283fd5b83516100fc81610129565b602085015190935061010d81610129565b604085015190925061011e81610129565b809150509250925092565b6001600160a01b038116811461013e57600080fd5b50565b60805160601c60a05160601c6110fe620001ab6000398060b0528061020452806102a752806103da52806104905280610514528061057652806105f752806106e45280610787525080610278528061046052806105bd5280610687528061075852506110fe6000f3fe6080604052600436106100a05760003560e01c8063ad5c464811610064578063ad5c46481461015a578063b2bc6e0f1461016f578063db7af8541461018f578063e78cea92146101af578063f2fde38b146101c4578063f52cbf0e146101e4576100dc565b806301a754ff146100e15780633ace4765146100e957806369ffa08a146100fc5780638da5cb5b1461011c5780639254c66e14610147576100dc565b366100dc57336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100da57600080fd5b005b600080fd5b6100da6101f7565b6100da6100f7366004610e1d565b610202565b34801561010857600080fd5b506100da610117366004610deb565b6103a4565b34801561012857600080fd5b506101316103c9565b60405161013e9190610fab565b60405180910390f35b6100da610155366004610e69565b6103d8565b34801561016657600080fd5b50610131610512565b34801561017b57600080fd5b506100da61018a366004610f25565b610536565b34801561019b57600080fd5b506100da6101aa366004610eda565b610574565b3480156101bb57600080fd5b50610131610685565b3480156101d057600080fd5b506100da6101df366004610dd1565b6106a9565b6100da6101f2366004610dd1565b6106e2565b610200336106e2565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561025d57600080fd5b505af1158015610271573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d74054817f00000000000000000000000000000000000000000000000000000000000000008434856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610339578181015183820152602001610321565b50505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103bb57600080fd5b6103c58282610819565b5050565b6000546001600160a01b031681565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b505060405163d740548160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063d740548192506104be91507f000000000000000000000000000000000000000000000000000000000000000090879034908890600401610fbf565b600060405180830381600087803b1580156104d857600080fd5b505af11580156104ec573d6000803e3d6000fd5b505082516001600160a01b0316331415915061050d90505761050d81610853565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b80516001600160a01b031633146105685760405162461bcd60e51b815260040161055f9061100f565b60405180910390fd5b61057181610853565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316146105b257600080fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105e757600080fd5b80516014146105f557600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561065b57600080fd5b505af115801561066f573d6000803e3d6000fd5b5050505061050d61067f8261089f565b836108a6565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146106c057600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561073d57600080fd5b505af1158015610751573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad58bdd17f000000000000000000000000000000000000000000000000000000000000000083346040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b1580156107fe57600080fd5b505af1158015610812573d6000803e3d6000fd5b5050505050565b806001600160a01b03811661082d57600080fd5b6001600160a01b0383166108495761084482610911565b61050d565b61050d838361091c565b80600001516001600160a01b03167f2c1ca5c14df2aba59d26842c5ff53f6817052ef34f6f7537f8b4c9e3805a5e5082602001516040516108949190610ffc565b60405180910390a250565b6014015190565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050506103c55780826040516108dd90610cc5565b6001600160a01b039091168152604051908190036020019082f090508015801561090b573d6000803e3d6000fd5b50505050565b476103c582826108a6565b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561096757600080fd5b505afa15801561097b573d6000803e3d6000fd5b505050506040513d602081101561099157600080fd5b5051905061090b6001600160a01b0383168483604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261050d9084906060610a46826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610aa29092919063ffffffff16565b80519091501561050d57808060200190516020811015610a6557600080fd5b505161050d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061109f602a913960400191505060405180910390fd5b6060610ab18484600085610abb565b90505b9392505050565b606082471015610afc5760405162461bcd60e51b81526004018080602001828103825260268152602001806110796026913960400191505060405180910390fd5b610b0585610c17565b610b56576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610b955780518252601f199092019160209182019101610b76565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610bf7576040519150601f19603f3d011682016040523d82523d6000602084013e610bfc565b606091505b5091509150610c0c828286610c21565b979650505050505050565b803b15155b919050565b60608315610c30575081610ab4565b825115610c405782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c8a578181015183820152602001610c72565b50505050905090810190601f168015610cb75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60328061104783390190565b80356001600160a01b0381168114610c1c57600080fd5b600082601f830112610cf8578081fd5b813567ffffffffffffffff80821115610d0d57fe5b604051601f8301601f191681016020018281118282101715610d2b57fe5b604052828152925082848301602001861015610d4657600080fd5b8260208601602083013760006020848301015250505092915050565b600060408284031215610d73578081fd5b6040516040810167ffffffffffffffff8282108183111715610d9157fe5b81604052829350610da185610cd1565b83526020850135915080821115610db757600080fd5b50610dc485828601610ce8565b6020830152505092915050565b600060208284031215610de2578081fd5b610ab482610cd1565b60008060408385031215610dfd578081fd5b610e0683610cd1565b9150610e1460208401610cd1565b90509250929050565b60008060408385031215610e2f578182fd5b610e3883610cd1565b9150602083013567ffffffffffffffff811115610e53578182fd5b610e5f85828601610ce8565b9150509250929050565b600080600060608486031215610e7d578081fd5b610e8684610cd1565b9250602084013567ffffffffffffffff80821115610ea2578283fd5b610eae87838801610ce8565b93506040860135915080821115610ec3578283fd5b50610ed086828701610d62565b9150509250925092565b600080600060608486031215610eee578283fd5b610ef784610cd1565b925060208401359150604084013567ffffffffffffffff811115610f19578182fd5b610ed086828701610ce8565b600060208284031215610f36578081fd5b813567ffffffffffffffff811115610f4c578182fd5b610f5884828501610d62565b949350505050565b60008151808452815b81811015610f8557602081850181015186830182015201610f69565b81811115610f965782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610ff290830184610f60565b9695505050505050565b600060208252610ab46020830184610f60565b6020808252601c908201527f6f6e6c79206f776e65722063616e20626520726567697374657265640000000060408201526060019056fe60806040526040516032380380603283398181016040526020811015602357600080fd5b50516001600160a01b038116fffe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220fd8fa17b7b20d3aa8c8825460d55a31aee80826d54136d9774acc0c88bafa75164736f6c63430007050033000000000000000000000000f0b456250dc9990662a6f25808cc74a6d1131ea9000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce",
+ "expectedAddress": "0x8a6494e7F88BD7546E89b57fC3008871DdEA3870",
+ "title": "L1 Omnibridge Helper",
+ "constructorArgs": "0x000000000000000000000000f0b456250dc9990662a6f25808cc74a6d1131ea9000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce",
+ "description": "Utility contract for the xDAI Omnibridge on L1",
+ "dependsOn": [
+ "deployerL1.contract.tornadocash.eth"
+ ],
+ "isL1Contract": true
+ },
+ {
+ "domain": "deployerL2.contract.tornadocash.eth",
+ "contract": "Deployer.sol",
+ "bytecode": "0x60a060405234801561001057600080fd5b506040516103a83803806103a88339818101604052602081101561003357600080fd5b50516001600160a01b0381161561004a5780610060565b73ce0042b868300000d44a59004da54a005ffdcf9f5b60601b6001600160601b031916608052604051309032907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a35060805160601c6102e86100c06000398061010b528061029052506102e86000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634af63f021461003b578063d5f39488146100ff575b600080fd5b6100e36004803603604081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610107915050565b604080516001600160a01b039092168252519081900360200190f35b6100e361028e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634af63f0284846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561018c578181015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156101d957600080fd5b505af11580156101ed573d6000803e3d6000fd5b505050506040513d602081101561020357600080fd5b505190506001600160a01b038116610252576040805162461bcd60e51b815260206004820152600d60248201526c11195c1b1bde4819985a5b1959609a1b604482015290519081900360640190fd5b6040516001600160a01b0382169033907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a392915050565b7f00000000000000000000000000000000000000000000000000000000000000008156fea2646970667358221220bd8e42cb446680525a51ab38a03ae798cf5e07e4ef84a2ce6c9dae7367baabb064736f6c634300060c00330000000000000000000000000000000000000000000000000000000000000000",
+ "expectedAddress": "0xd27F1112316aE5F6902595aFe1520B71a3DD3ec3",
+ "title": "Deployment proxy",
+ "constructorArgs": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "description": "This a required contract to initialize all other contracts. It is simple wrapper around EIP-2470 Singleton Factory that emits an event of contract deployment. The wrapper also validates if the deployment was successful.",
+ "dependsOn": [],
+ "isL1Contract": false
},
{
"domain": "hasher.contract.tornadocash.eth",
"contract": "Hasher.sol",
- "bytecode": "0x38600c600039612b1b6000f3606460006000377c01000000000000000000000000000000000000000000000000000000006000510463f47d33b5146200003557fe5b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016004518160245181838180828009800909089082827f0fbe43c36a80e36d7c7c584d4f8f3759fb51f0d66065d8a227b688d12488c5d408839081808280098009098391089082827f9c48cd3e00a6195a253fc009e60f249456f802ff9baf6549210d201321efc1cc08839081808280098009098391089082827f27c0849dba2643077c13eb42ffb97663cdcecd669bf10f756be30bab71b86cf808839081808280098009098391089082827f2bf76744736132e5c68f7dfdd5b792681d415098554fd8280f00d11b172b80d208839081808280098009098391089082827f33133eb4a1a1ab45037c8bdf9adbb2999baf06f20a9c95180dc4ccdcbec5856808839081808280098009098391089082827f588bb66012356dbc9b059ef1d792b563d6c18624dddecc3fe4583fd3551e9b3008839081808280098009098391089082827f71bc3e244e1b92911fe7f53cf523e491fd6ff487d59337a1d92f92668c4f4c3608839081808280098009098391089082827fd1808e2b039fd010c489768f78d7499938ccc0858f3295151787cfe8b7e40be108839081808280098009098391089082827f76978af3ded437cf41b3faa40cd6bcfce94f27f4abcc3ed34be19abd2c4537d008839081808280098009098391089082827f0a9baee798a320b0ca5b1cf888386d1dc12c13b38e10225aa4e9f03069a099f508839081808280098009098391089082827fb79dbf6050a03b16c3ade8d77e11c767d2251af9cdbd6cdf9a8a0ee921b32c7908839081808280098009098391089082827fa74bbcf5067f067faec2cce4b98d130d7927456f5c5f6c00e0f5406a24eb8b1908839081808280098009098391089082827fab7ab080d4c4018bda6ecc8bd67468bc4619ba12f25b0da879a639c758c8855d08839081808280098009098391089082827fe6a5b797c2bba7e9a873b37f5c41adc47765e9be4a1f0e0650e6a24ad226876308839081808280098009098391089082827f6270ae87cf3d82cf9c0b5f428466c429d7b7cbe234cecff39969171af006016c08839081808280098009098391089082827f9951c9f6e76d636b52f7600d979ca9f3b643dfbe9551c83b31542830321b2a6608839081808280098009098391089082827f4119469e44229cc40c4ff555a2b6f6b39961088e741e3c20a3c9b47f130c555008839081808280098009098391089082827f5d795e02bbaf90ff1f384741e5f18f8b644a0080441315d0e5b3c8123452a0b008839081808280098009098391089082827f281e90a515e6409e9177b4f297f8049ce3d4c3659423c48b3fd64e83596ff10108839081808280098009098391089082827f424185c60a21e84970f7d32cacaa2725aa8a844caea7ed760d2b965af1bf3e7d08839081808280098009098391089082827fd96fcbc3960614ea887da609187a5dada2e1b829f23309a6375212cea1f25c0908839081808280098009098391089082827ffde84026d7c294300af18f7712fc3662f43387ae8cf7fdda1f9a810f4b24bcf208839081808280098009098391089082827f3a9d568575846aa6b8a890b3c237fd0447426db878e6e25333b8eb9b386195c108839081808280098009098391089082827f55a2aa32c84a4cae196dd4094b685dd11757470a3be094d98eea73f02452aa3608839081808280098009098391089082827fcbc9481380978d29ebc5b0a8d4481cd2ef654ee800907adb3d38dc2fd9265fab08839081808280098009098391089082827f24e53af71ef06bacb76d3294c11223911e9d177ff09b7009febc484add0beb7408839081808280098009098391089082827fdbd44e16108225766dac3e5fe7acbe9df519bbba97380e5e9437a90658f2139308839081808280098009098391089082827fc6f434863c79013bb2c202331e04bccea2251c1ff6f191dc2afa23e6f6d28e4e08839081808280098009098391089082827f3490eeb39a733c0e8062d87f981ae65a8fccf25c448f4455d27db3915351b06608839081808280098009098391089082827f30b89830ff7ade3558a5361a24869130ce1fcce97211602962e34859525dac4f08839081808280098009098391089082827f29bae21b579d080a75c1694da628d0ecfd83efc9c8468704f410300062f64ca908839081808280098009098391089082827fe326499de0476e719915dd1c661ef4550723d4aee9ee9af224edd208790fce4408839081808280098009098391089082827f8c45208b8baa6f473821415957088c0b7e72a465f460b09ece2d270aee2f184108839081808280098009098391089082827ffe2ad454f451348f26ce2cc7e7914aef3eb96e8f89a4619a1dc7d11f8401c35208839081808280098009098391089082827f0929db368ef2af2d29bca38845325b0b7a820a4889e44b5829bbe1ed47fd4d5208839081808280098009098391089082827f16531d424b0cbaf9abbf2d2acde698462ea4555bf32ccf1bbd26697e905066f608839081808280098009098391089082827ff5c30d247f045ff6d05cf0dd0a49c9823e7a24b0d751d3c721353b96f29d76f608839081808280098009098391089082827f6eb7a3614056c230c6f171370fdd9d1048bb00b2cdd1b2721d11bdda5023f48608839081808280098009098391089082827f0ee9c4621642a272f710908707557498d25a6fdd51866da5d9f0d205355a618908839081808280098009098391089082827f78ca1cb1c7f6c6894d1cf94f327b8763be173151b6b06f99dfc6a944bb5a72f008839081808280098009098391089082827f5d24d0b1b304d05311ce0f274b0d93746a4860ed5cdd8d4348de557ea7a5ee7a08839081808280098009098391089082827f77423dabd1a3cddc8691438fc5891e3fd49ac0f3e21aaf249791bfde1303d2f308839081808280098009098391089082827f0642e8800a48cc04c0168232c6f542396597a67cf395ad622d947e98bb68697a08839081808280098009098391089082827fc1e7d3cbbc4c35b7490647d8402e56d334336943bda91fe2d34ca9727c0e3df508839081808280098009098391089082827f8d6fb1730335204f38f85e408ac861e76f24349ab6ee0469c22e19350bb24fe108839081808280098009098391089082827f67d0faf5f0db32a1b60e13dc4914246b9edac7990fb4990b19aa86815586441a08839081808280098009098391089082827f2605b9b909ded1b04971eae979027c4e0de57f3b6a60d5ed58aba619c34749ce08839081808280098009098391089082827fd276890b2c205db85f000d1f5111ed8f177e279cae3e52862780f04e846228d008839081808280098009098391089082827f2ac5905f9450a21ef6905ed5951a91b3730e3a2e2d62b50bdeb810015d50376b08839081808280098009098391089082827f7a366839f0291ca54da674ac3f0e1e9aa8b687ba533926cb40268039e57b967a08839081808280098009098391089082827f67ab0f3466989c3dbbe209c37ec272ba83984ba6e445be6d472b63e3ca7270e308839081808280098009098391089082827f0e786007d0ce7e28a90e31d3263887d40c556dec88fcb8b56bc9e9c05ecc0c2908839081808280098009098391089082827f0b814ed99bd00eca389b0022663dbfddfbfa15e321c19abcf1eaf9556075fb6808839081808280098009098391089082827f65c0321ba26fcee4fdc35b4999b78ceb54dcaf9fec2e3bdea98e9f82925c093208839081808280098009098391089082827fab2d2a929601f9c3520e0b14aaa6ba9f1e79821a5b768919670a4ea970722bf408839081808280098009098391089082827fcdd2e0744d4af1a81918de69ec12128a5871367303ff83ed764771cbbdf6502308839081808280098009098391089082827f74527d0c0868f2ec628086b874fa66a7347d3d3b918d2e07a5f33e1067e8ac5808839081808280098009098391089082827f1c6bf6ac0314caead23e357bfcbbaa17d670672ae3a475f80934c716f10aca2508839081808280098009098391089082827f3c4007e286f8dc7efd5d0eeb0e95d7aa6589361d128a0cccb17b554c851a643208839081808280098009098391089082827fae468a86a5a7db7c763a053eb09ac1a02809ce095258c88101ee319e12b0697e08839081808280098009098391089082827f9333e3d052b7c77fcac1eb366f610f6f97852242b1317a87b80f3bbc5c8c2d1d08839081808280098009098391089082827f52ec1d675cf5353153f6b628414783ca6b7fc0fe01948ca206daad712296e39508839081808280098009098391089082827f13ceeeb301572b4991076750e11ea7e7fcbfee454d90dc1763989004a1894f9308839081808280098009098391089082827f8505737e7e94939a08d8cda10b6fbbbf879b2141ae7eabc30fcd22405135fe6408839081808280098009098391089082827f6127db7ac5200a212092b66ec2bfc63653f4dc8ac66c76008fef885258a258b508839081808280098009098391089082827f12692a7d808f44e31d628dbcfea377eb073fb918d7beb8136ea47f8cf094c88c08839081808280098009098391089082827f260e384b1268e3a347c91d6987fd280fa0a275541a7c5be34bf126af35c962e008839081808280098009098391089082827fd88c3b01966d90e713aee8d482ceaa6925311d2342e1a5aca4fcd2f44b6daddc08839081808280098009098391089082827fb87e868affd91b078a87fa75ac9332a6cf23587d94e20c3262db5e91f30bf04b08839081808280098009098391089082827fb5ba5f8acad1a950a3bbf2201055cd3ea27056c0c53f0c4c97f33cda8dbfe90908839081808280098009098391089082827f59ca814b49e00d7b3118c53a2986ded128584acd7428735e08ade6661c457f7508839081808280098009098391089082827f0fc4c0bea813a223fd510c07f7bbe337badd4bcf28649a0d378970c2a15b3aa508839081808280098009098391089082827f0053f1ea6dd60e7a6db09a00be77549ff3d4ee3737be7fb42052ae1321f667c308839081808280098009098391089082827feb937077bb10c8fe38716d4e38edc1f9e7b18c6414fef85fe7e9c5567baa4a0408839081808280098009098391089082827fbacb14c0f1508d828f7fd048d716b8044aec7f0fb48e85e717bf532db972520708839081808280098009098391089082827f4ca0abb8beb7cff572a0c1e6f58e080e1bb243d497a3e74538442a4555ad40be08839081808280098009098391089082827fda9eefd411e590d7e44592cce298af87b2c62aa3cc8bb137aa99ca8d4aa551b508839081808280098009098391089082827f153dae43cef763e7a2fc9846f09a2973b0ad9c35894c220699bcc2954501c6bd08839081808280098009098391089082827fd4ed2a09375813b4fb504c7a9ba13110bdd8549a47349db82c15a434c090e87b08839081808280098009098391089082827f0063a5c4c9c12dcf4bae72c69f3a225664469503d61d9eae5d9553bfb006095b08839081808280098009098391089082827fdc8a4d35ad28e59dd3713b45985cd3b70e37ccc2be42086f1ea078fe2dc9d82d08839081808280098009098391089082827f486ba219308f0c847b22fcb4449f8855192536c01b8057904e81c1c7814f483b08839081808280098009098391089082827f34d9604140a1ac9fdb204285b9fe1b303c281af2fc5fb362f6577282b423bcf308839081808280098009098391089082827fc1681959ec4bc3656911db2b2f56aa4db709c26f1a0a25c879286e37f437465d08839081808280098009098391089082827ffcd849f3b5f9e4368af75619fb27f2e335adbb9b44988f17c4d389fa751ad47a08839081808280098009098391089082827ff5f7fc22ad64c8e7c1e005110e13f4f1c6b1f8f8cc59000db0e3bb38f99554a508839081808280098009098391089082827fa9133b8a20fbae4633ec5f82cb47a38ae1877d12d1febb23982c7c808aa5317508839081808280098009098391089082827ff4827c5c7b61141cc31b75984bb3ed16ed579e5b72e32a1289b63ab55eaf8c1208839081808280098009098391089082827fcca361819ffefe3e50fe34c91a322c9405f4e5a168c1fc0a0a1883993e32c9f408839081808280098009098391089082827f6656088842bfc9e325a532784d3362cecfa86f9c7b208a6b499836ebe48ff15708839081808280098009098391089082827f00129c7cd00e42ed05a37dbceb80d47b65e1d750ef2148278a54723fdf42c4cc08839081808280098009098391089082827fa85b235631b786f85cd46f7768f6c71ae004ad267ae59bdf929ada149b19588808839081808280098009098391089082827f34df65a82686be09c5b237911abf237a9887c1a418f279ac79b446d7d311f5ea08839081808280098009098391089082827f815a850c3989df9ca6231e0bdd9916fc0e076f2c6c7f0f260a846d0179f9c32d08839081808280098009098391089082827f50fb0940848a67aee83d348421fadd79aefc7a2adabeec6e64904ebe1bf63e7d08839081808280098009098391089082827fbab63a16273599f8b66895461e62a19ff0d103693be771d93e3691bba89cdd8d08839081808280098009098391089082827f6931a091756e0bc709ebecfffba5038634c5b3d5d0c5876dd72aac67452db8a208839081808280098009098391089082827f55559b8bb79db8809c46ee627f1b5ce1d8e6d89bf94a9987a1407759d1ba896308839081808280098009098391089082827fa9a1a11b2979018cb155914d09f1df19b7ffec241e8b2487b6f6272a56a44a0a08839081808280098009098391089082827ff83293400e7bccea4bb86dcb0d5ca57fa2466e13a572d7d3531c6fa491cb0f1b08839081808280098009098391089082827fb7cb5742b6bc5339624d3568a33c21f31b877f8396972582028da999abf249f208839081808280098009098391089082827ff56efb400f8500b5c5bf811c65c86c7ed2e965f14f1a69bca436c0c60b79f46508839081808280098009098391089082827fd7c4427998d9c440f849dcd75b7157996eaad1b9a1d58cc2441931300e26eb2208839081808280098009098391089082827fca5ed18ad53e33fdc3ae8cf353ff3f6dd315f60060442b74f6b614b24ebd4cc308839081808280098009098391089082827f9ad3e9376c97b194a0fbf43e22a3616981d777365c765ead09a1d033fdf536b708839081808280098009098391089082827fc6daeff5769a06b26fe3b8fef30df07b1387373a7814cef364fe1d6059eaf54a08839081808280098009098391089082827fc20a78398345c6b8cf439643dab96223bf879c302648293eaf496fee5c978c6608839081808280098009098391089082827f589ca65b6cf0e90653c06dddc057dc61ba2839974569051c98b43e8618716efb08839081808280098009098391089082827f83064161f127d8c59fc73625957e21630dc6dc99e5443f6ce37ecd6bf28e69b708839081808280098009098391089082827f46d0ba662b50100b9a3af52052f68932feec1d12290b2033c4f49148893d8ba308839081808280098009098391089082827f18dd55b4a83a53f2ee578eb3e6d26f594824d44670fc3f4de80642344d15c09a08839081808280098009098391089082827f9fb5b594f48bc58b345ab90ded705920a7274b8e070eee8ce8cf90c72c3604b608839081808280098009098391089082827f1901d8f4f2c8449128e00663978f2050f2eb1cd6acb60d9d09c57c5d46ee54fe08839081808280098009098391089082827f5ec56789beab24ef7ee32f594d5fc561ec59dfeb93606dc7dcc6fe65133a7db408839081808280098009098391089082827f01c0b2cbe4fa9877a3d08eb67c510e8630da0a8beda94a6d9283e6f70d268bc508839081808280098009098391089082827f0b1d85acd9031a9107350eed946a25734e974799c5ba7cff13b15a5a623a25f008839081808280098009098391089082827f204497d1d359552905a2fe655f3d6f94926ea92d12cdaa6556ec26362f239f6408839081808280098009098391089082827fe075f7edc6631a8d7ffe33019f44fc91f286236d5a5f90f16de4791b72a2a5f008839081808280098009098391089082827f243f46e353354256ab8fe0ca4e9230dfc330bc163e602dfeaf307c1d1a7264b908839081808280098009098391089082827fd448ae5e09625fa1fcfd732fc9cd8f06e4c33b81f0a9240c83da56f41e9ecceb08839081808280098009098391089082827f2f312eef69a33d9fa753c08840275692a03432b3e6da67f9c59b9f9f4971cd5608839081808280098009098391089082827f5f333996af231bd5a293137da91801e191a6f24eb532ad1a7e6e9a2ad0efbc0008839081808280098009098391089082827fa8f771e0383a832dc8e2eaa8efabda300947acaf0684fabddf8b4abb0abd8a6208839081808280098009098391089082827f9ff0b3d7a4643596f651b70c1963cc4fa6c46018d78f05cb2c5f187e25df83a908839081808280098009098391089082827f9c373b704838325648273734dcdf962d7c156f431f70380ba4855832c4a238b808839081808280098009098391089082827fea2afa02604b8afeeb570f48a0e97a5e6bfe9613394b9a6b0026ecd6cec8c33a08839081808280098009098391089082827f68892258cd8eb43b71caa6d6837ec9959bfdfd72f25c9005ebaffc4011f8a7bf08839081808280098009098391089082827ff2824f561f6f82e3c1232836b0d268fa3b1b5489edd39a5fe1503bfc7ca91f4908839081808280098009098391089082827f164eda75fda2861f9d812f24e37ac938844fbe383c243b32b9f66ae2e76be71908839081808280098009098391089082827ff0a6fc431f5bf0dd1cca93b8b65b3f72c91f0693e2c74be9243b15abb31afcc008839081808280098009098391089082827fe68db66ba891ef0cd527f09ec6fff3ec0a269cf3d891a35ec13c902f70334b4f08839081808280098009098391089082827f3a44a5b102f7883a2b8630a3cae6e6db2e6e483bb7cfeb3492cbd91793ef598e08839081808280098009098391089082827f43939fe8ef789acb33cbf129ba8a3aa1bd61510a178022a05177c9c5a1c59bf108839081808280098009098391089082827f936fe3b66dfda1bc5a7aae241b4db442858bd720c1d579c0c869f273cd55d77408839081808280098009098391089082827f3490fcaa8ffa37f35dc67ae006e81352c7103945417b8e4b142afcaefa344b8508839081808280098009098391089082827fcae66096cff344caca53ffe0e58aafeb468bd174f00d8abc425b2099c088187408839081808280098009098391089082827fc7d05783a41bc14f3c9a45384b6d5e2547c5b6a224c8316910b208f2718a70ab08839081808280098009098391089082827f5ac6b9ba94040d5692b865b6677b60ef3201b5c2121699f70beb9f9b2528a02608839081808280098009098391089082827fa902a3d4d9ecbfb9b2c76fddf780554bf93cad97b244e805d3adb94e1816290008839081808280098009098391089082827fe9df91ffeeb086a4d26041c29dac6fca1d56a4d022fe34b38831267395b98d2708839081808280098009098391089082827f862646f851d91a8840ad9ee711f12ec13b3e8f980ff5ef5ee43ca4520d57def708839081808280098009098391089082827f30b7381c9725b9db07816baf8524943a79cea135807c84cce0833485c11e0c2e08839081808280098009098391089082827f96afc10c5cedaddbda99df79387397c9be74a5b50f3a0c04ccb68d4e0f3a989f08839081808280098009098391089082827f3543da80d10da251c548776fe907c4ef89993d62e0062ae5c0496fcb851c366108839081808280098009098391089082827fe5140fe26d8b008430fccd50a68e3e11c1163d63b6d8b7cc40bc6f3c1d0b1b0608839081808280098009098391089082827ffefdf1872e4475e8bbb0ef6fab7f561bff121314695c433bd4c29ec118060c9608839081808280098009098391089082827f6bb8c9f3d57b18e002df059db1e6a5d42ad566f153f18460774f68ac2650940008839081808280098009098391089082827f5415122d50b26f4fab5784004c56cf03f128f825ad2236f4b3d51f74737bd97308839081808280098009098391089082827f00e115c4a98efae6a3a5ecc873b0cef63ccd5b515710a3ab03ec52218f784dc908839081808280098009098391089082827fda7d525427bad87b88238657c21331245578bc76aa6240b7f972382537a202ab08839081808280098009098391089082827f83332e8b34505b83010270dc795290a2f515b8f89c163acecdf4799df04c62f808839081808280098009098391089082827fb09ecb6033d1a065f17a61066cd737d0c3c5873b51c3ab0a285e26939e62aa1808839081808280098009098391089082827f24e65c718938c2b937378e7435332174329730bde85a4185e37875824eb4985908839081808280098009098391089082827f68e41430ccd41cc5e92a9f9acd2e955c1385b9f5ed8d3f133d767429484a8eba08839081808280098009098391089082827fc038fe9d0125ab8be54545276f841274e414c596ed4c9eaa6919604603d1ffa908839081808280098009098391089082827f23248698612cd8e83234fcf5db9b6b225f4b0ba78d72ef13ea1edff5f0fb029808839081808280098009098391089082827fd2a9fa3d39c1ba91eefa666a1db71c6e0e4e3b707626b0197a4e59e7110cf0d408839081808280098009098391089082827fc28931ee7dfa02b62872e0d937ba3dc5c637118273a1f1f0c4fc880905c82efc08839081808280098009098391089082827f01cd399556445e3d7b201d6c5e56a5794e60be2cfd9a4643e7ead79bb4f60f7908839081808280098009098391089082827fac855cc58d5fbb0dff91a79683eb0e914c1b7d8d0a540d416838a89f83a8312f08839081808280098009098391089082827ff7798af7ccf36b836705849f7dd40328bf9346657255b431446ec75a6817181608839081808280098009098391089082827fe52a24c92d3f067bf551eeaf98c62ba525e84882d7adad835fad8de72986b2b108839081808280098009098391089082827fffc8682759a2bf1dd67c87a77c285467801f1c44fd78fa4eb5957a4832c9d72d08839081808280098009098391089082827f1482ac3e7e4f321627850d95a13942aea6d2923402b913046856ff7e8aaf9aff08839081808280098009098391089082827f17332b4c7aac2a07ccfe954de7ad22ccf6fcb4c5fa15c130ed22a40ae9398f4708839081808280098009098391089082827fd4be0546013f84a0d1e118b37589723b58e323983263616d1b036f8b3fdd858308839081808280098009098391089082827fa64ec737d31dddf939b184438ccdd3e1d3e667572857cd6c9c31a0d1d9b7b08508839081808280098009098391089082827f8ad12fbc74117cff4743d674539c86548c6758710a07a6abe3715e4b53526d3408839081808280098009098391089082827f15a16435a2300b27a337561401f06682ba85019aa0af61b264a1177d38b5c13c08839081808280098009098391089082827f22616f306e76352293a22ab6ee15509d9b108d4136b32fa7f9ed259793f392a108839081808280098009098391089082827f519727b25560caf00ce0d3f911bd4356f907160ab5186da10a629c7ccae1851e08839081808280098009098391089082827fcff39e77928ce9310118d50e29bc87e7f78b53ad51366359aa17f07902ae639208839081808280098009098391089082827f17dead3bfa1968c744118023dead77cdbee22c5b7c2414f5a6bdf82fd94cf3ad08839081808280098009098391089082827f2bef0f8b22a1cfb90100f4a552a9d02b772130123de8144a00c4d57497e1d7f408839081808280098009098391089082827fbf5188713fef90b31c35243f92cfa4331ab076e30e24b355c79b01f41d152a1108839081808280098009098391089082827f3baadd2fd92e3e12fb371be0578941dc0a108fbca0a7d81b88316fb94d6b4dfe08839081808280098009098391089082827fd4f955742e20a28d38611bf9fc4a478c97b673a7cd40d0113a58a1efe338d9aa08839081808280098009098391089082827f3c1c3fe9a5f7ccd54ad5a51a224b3f94775266d19c3733017e4920d7391ad64508839081808280098009098391089082827f6372df6148abeed66fda5461779a9651130c6c525df733852bcd929016768a7a08839081808280098009098391089082827f6d098e848fb853f95adb5a6364b5ab33c79fb08877f2cf3e0e160d9fcb3ebcc508839081808280098009098391089082827f48c5fc90f27431fabfe496dfba14bb0dba71141eb5472a365fd13023f4fe629608839081808280098009098391089082827fbb988dfc0c4dfe53999bd34840adcb63fdbf501ccd622ca2ddf5064ad8cdebf408839081808280098009098391089082827f25b068c942724c424ed5851c9575c22752c9bd25f91ebfa589de3d88ee7627f908839081808280098009098391089082827fed98a1931e361add218de11ff7879bd7114cda19c24ddbe15b3b0190ce01e1aa08839081808280098009098391089082827fc80b5a7d63f6c43542ad612023d3ffd6c684ce2eab837180addcb4decf51854408839081808280098009098391089082827fe2ef24bf47c5203118c6ff96657dd3c6fdff7212d5c798d826455de77b4b70cd08839081808280098009098391089082827f907da812fd5a8375587e4860f87691d0a8d61d454c507d09e5562e1a5d0fcc7608839081808280098009098391089082827fc459abbc62bc6070cacdff597e97990de56edc51cc6643afb0f6789fef1bad6308839081808280098009098391089082827f38d61f5e566855d70d36ef0f0f1fefcd7c829bdd60d95e0ef1fb5b98856280a408839081808280098009098391089082827f13218626665c420d3aa2b0fa49224a3dce8e08b8b56f8851bd9cb5e25cb3042d08839081808280098009098391089082827f6f685fb152dba21b4d02422e237e246df73d7d711ae6d7d33983bae0f873e31008839081808280098009098391089082827f5ade34719e2498dde70e4571c40474475a4af706a3cb82ac18a7fa44c22d1c4708839081808280098009098391089082827f8a0c3dc7a496adca059cb95d9b173812a00f3c4d435e0b9e8116e0c4b5f56acb08839081808280098009098391089082827f196bc98252f63169ed79073ee091a0e8ed0b5af51017da143940c00bdb86370908839081808280098009098391089082827fd979bf70695d93f8efb552a413701918afec9e12dfe213f4d0c27cfa68fad6c208839081808280098009098391089082827fb803072d02f54d237a3c6c4cc18eda6dce87a03c6819df54e4ed8aed6dc56d4608839081808280098009098391089082827f1efcda9d986cddcf431af4d59c6a7709d650885b7886cba70f0e7cd92b331cdc08839081808280098009098391089082827fd3ca5f7859b82ac50b63da06d43aa68a6b685f0a60397638bbea173b3f60419208839081808280098009098391089082827fa59d392c0667316ad37a06be2d51aabe9e79bdef0013bc109985648a14c7e41f08839081808280098009098391089082827fac2f5f0d2146791b396e2bed6cf15a20bc22cc4c8cf7dd4b3514ac00148dd0a708839081808280098009098391089082827f17a993a6af068d72bc36f0e814d29fef3f97d7a72aa963889b16a8457409861a08839081808280098009098391089082827f6f1bf99686550e0396f7f4e2df6fdaa090fbc272c8c76eb32a3c6791de5a07b508839081808280098009098391089082827f8234d705e1ecdc59cc6ed40749069d4b45e63deb49b5b7d7f527abd31c072b1b08839081808280098009098391089082827f6fe929a1fd6aacba5c4012c45dd727d2c816119567450003913d882cb97bc47e08839081808280098009098391089082827fad5371215f2aba49026b2e48739c11b4d8ffbb24dd4a6e41b9763862af96787a08839081808280098009098391089082827fd0e704566c49e1a11edc2c128b2e07f36dc0c755468268f8fe4c4859b9fa595b08839081808280098009098391089082827f263e1195090d00be1d8fb37de17ccf3b66d180645efa0d831865cfaa8797769e08839081808280098009098391089082827fe65c090eebde2cfa7f9c92cf75641c7683fb8e81f4a48f5b7a9c7eb26a85029f08839081808280098009098391089082827fa18971781c6855f6a9752912780bb9b719c14a677a4c6393d62d6e046b97a2ac08839081808280098009098391089082827ff6fc1ef1bca8bec055cc66edecc5dc99030fe78311a3f21d8cd624df4f89e62508839081808280098009098391089082827f824e4e2838501516d3296542cb47a59a1ca4326e947c9c874d88dccc8e37b99a08839081808280098009098391089082827f3cd5a9e7353a50e454c9c1381b556b543897cc89153c3e3749f2021d8237226308839081808280098009098391089082827fb4bcedbd54d0c917a315cc7ca785e3c5995abbeeb3deb3ebaf02c7a9bf6cc83f08839081808280098009098391089082827f1f7476211105b3039cef009c51155ae93526c53a74973ecfce40754b3df1052108839081808280098009098391089082827f58aefbd978440c94b4b9fbd36e00e6e36caeacf82b0da0a6161d34c541a5a6e308839081808280098009098391089082827fc22cd6d61be780a33c77677bc6ba40307b597ed981db57cb485313eec2a5a49708839081808280098009098391089082827fd9ffc4fe0dc5f835c8dcdc1e60b8f0b1637f32a809175371b94a057272b0748d08839081808280098009098391089082827ff6a5268541bc4c64ad0ade8f55dda3492604857a71c923662a214dd7e9c20c1008839081808280098009098391089082826000088390818082800980090983910860205260005260406000f3",
- "expectedAddress": "0xBaffBE0e6C73d4dAd3f813194695FDC5829c962A",
+ "bytecode": "0x38600c6000396119ab6000f37c010000000000000000000000000000000000000000000000000000000060003504806329a5f2f6149063299e566014176200003757fe5b7f142d76a5176d04542cc86c20ad276af0f1c4b85a08f5c7fb7076c37bee91b0b06020527f0cc8c6aa7aa0f7a0191f236aad3b994b4e6d2671ef5cddef7395a663f18a82b66040527f0411c26273e6ac2f2b7ef6da84499413605b6099bda4254a31ab3bac526a15816060527f1f020db9ae14abc9448d91922ce7e8a4b751468b692082ac74d4db30f9a20cbd6080527f132d968e1372659c4b77528bec8b46830564bbb1ef44e828966a07578b52db1e60a0527f1e9d5cd096fd315de38e6e2490b8e9c406f954ba63a8be9f11756780af6315f160c0527f02f57e7420298b689cc5932b434d659054d7e9e1a28ce342a357d28d3d0e7ce660e0527f2e7a166a1b7e646c9f9e04f451e541b3eb516fbad05901b4f37e7dd402a501de610100527f198dfceb06c35ab9162320e55b68a7d160ac9caf74ff1098d62b4cd86823e74c610120527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604435602435600435837f211fa1419f2b7b630c9d42ac4dfff1d8201547e24651d10dd4b4988ac06216f682089050837f18ac51e16e5865ee074806af313b040924f20a76c2a45a76b90aeb07ac438e0383089150837f2906c33d1c67bd9a2ba6ab37ef7aecf377eb3f324ce68be741441faa846133b6840892508381818082800980090990508382818082800980090991508383818082800980090992506200024a60005262001956565b837f0d6fdc1a5ff92bedc6919093d495de525266075a273eadea7287b1b4941cf42782089050837f2552b734c5a95e374c8286a1cf7c05975265132ec03487470a513366fb38c5fd83089150837f1a8e88f6d94394599224dba0906142559b388ba2cc168fe97b6af4a85aec268084089250838181808280098009099050838281808280098009099150838381808280098009099250620002ed60005262001956565b837f2573ce0ce1273b649d31dd96f1f03f2ec83cf4920b72db75e428707dc1e26db382089050837f0ce0750d2b6bf2a1251c0c6b496f01f7217a58c4ae1e5bf17a1f884f9c43064283089150837f154735e5f8c0640c2c722fb3dac05c4d603c3e150dd2cd09475d5770159fdeef840892508381818082800980090990508382818082800980090991508383818082800980090992506200039060005262001956565b837f1671d015b9090cd861a5a5ccbba2cbd7a51bf07febdefabeff7b69f4b219ff3f82089050837f2d2fbd76fcfbc5943b16d77456d974a7741165a49187f28efb5d64a7634a426083089150837f040a119f75e867208bddfaeb55741ebf53a30c7a1affcb8b6cd267c66c054755840892508381818082800980090990508382818082800980090991508383818082800980090992506200043360005262001956565b837f11a3eb9fe3312950bf5cafea6c2b97818825db4389b8ae9408f9c7cb4882665a82089050837f12c9a214894557df9260fee1fd68af4fe37e63234f4b1950fb6302ef5c7602e283089150837f19fc5d4620dbaeaf5448897edf3bcbfeb3853a9126c7b3c3d5b77ebf5b7fbf2184089250838181808280098009099050620004be60005262001956565b837f257c925a34966aae22eb261d58f97b43f255ae75fd0864fc48e492de7e55becc82089050837f18115b83ed73527d8c1823f98ae53c499a375f99a82064b270a54d35ea9f0ba683089150837f1002ae120de1a1f4ba32b976d7dd4f4579381ca75f00248c5afbdfd80fe521a3840892508381818082800980090990506200054960005262001956565b837f24230056009f5af1b7f585fe11ab1af1f4e0529381455573c76094e9828c7cc182089050837f2fefc9ed5c4feb1474dcdd8b11184afdfb5c4663cf077c81c8c2f118f101c58383089150837f121991b5b076111411145f18534359541107182407d3981d463a10a6c04f5f0484089250838181808280098009099050620005d460005262001956565b837f161a5dc3f5e215684236c228529d96b6cae2af12fce8c281ae7c5ae13251cf0d82089050837f1b7cde8e1bf7f5df08a8fc322f21af95a44f9d782a5d74de4b12b3cac52d3d1883089150837f1efcd1c5767a2ce97fa08064888beb441feb80d799f939d284790268313e0cb8840892508381818082800980090990506200065f60005262001956565b837f1516c91480500fb959576c060a50df5e5c13b86e39089be8fad5a3017c19fef182089050837f1a5acefb238a038e8567c0f8a98840870c17b9e2841f6de8a75b4ec765fdc74e83089150837f26f743f547ba08bb0a3800e83d37a508063c10ab415fd1c6b71fc3e642e2780484089250838181808280098009099050620006ea60005262001956565b837f0439c5460f9710db5ef74e5e4ecfbbab6c92d81e1bef048af2ba990af6a9641282089050837f0b1cdb26cef7f77835ba81f23832acbe2cc8ad11311982f0b39d89eaa4ff3d8883089150837f1a4cbeea3894f5692512f2e13ce9034239ef5c203682750d0ed7263c3dc4a05d840892508381818082800980090990506200077560005262001956565b837f1be2d5efb6c55e9b31ade0b3ca179410702f09ab5c176fd719adb145642dd2fc82089050837f1771f3273703d9c276b6be221b24044ad33a4f04cfc871010b8d1d7b461a503483089150837f21042bc294c0c181f4c512a6a7d94f3c2782bc28a774ce517efb5c567daa30ed840892508381818082800980090990506200080060005262001956565b837f0d3ea1bd94a88d6d2a0aaece2f577ee98168284e59138411c47702aa6e9a9df782089050837f1b2ec4de5e50bbf2c918dce28e1291e7620f28b0cdffec6db9a3afb857d48bec83089150837f052fe3c5b2091f4d9cd772fb788288430ab43c404a9f1afd28f9e8a9e2b539ba840892508381818082800980090990506200088b60005262001956565b837f1ad58f9fd03d9d21c74c08dce54dabdd724b25ce408fe990253740a1dac4918682089050837f11c044f3e07c21ff4a93fd1056d54567510c622ae24cc7c454af294b4d5a737183089150837f14dc6b7bab9b24d83ab458d326ccb312335c3526cc9dee1802ccb7eb0cb8ee6b840892508381818082800980090990506200091660005262001956565b837f137cf4c2a4afcc4bcb58a8eda56f5223750a12b2d4e41a66727d797138fbde8682089050837f07d9bc2c364231525ac35618fae08284af5127124da38777326b4ced6e87a0b883089150837f0f7ead7cfeb697ad5d119032f9e8580cf8dc44c8268402d866ee3ec4f66e723b84089250838181808280098009099050620009a160005262001956565b837f0bb18ee7793d2bd5a3b32a6daf6bce111c1ba770a03c8cb19214cd9315e6b38182089050837f234650e3ac2fb30e34af2d36dc407c891d2093232f6e9d1a5c212bc998560d4583089150837f2eb1745785eb34354cbc25e4d7d20866e97bf688aba5aab3462aa9d53c7533088408925083818180828009800909905062000a2c60005262001956565b837f1695af57d2faab4077ac86998fa44f39c1b3a9a6e8e3da91293f254ce12fea8682089050837f1b9c5539bab55de67a1feff373539bf20d74b975f0271a77fa67c923529dafc783089150837f1901b13ce9cbfd15e91fafb059ced8b7936dca44e3fb3a59b9858f80f7e79bb58408925083818180828009800909905062000ab760005262001956565b837f302d415567eda49ff0c3dc812dd4f2f90addb3161b7fc6f604b739a8988e926482089050837f1ee445f02ed077fce7dcaae404c42c72ce5c73bb60c59ed03192398330f27e4083089150837f14577b4a2afc653d9193cf40100e439ed67b26be2a9c1dcc4c53f29fcce478ef8408925083818180828009800909905062000b4260005262001956565b837f0f70ff1275eec4602dcbdd315329e51316e39bcf6ce618b8cf49b9d0b9cfaef882089050837f2e26e4b699b1fabd0b7bb94ae902ce38f8e4be6b723b02918b59288fe36c615383089150837f0596a8f8be07116754d6b2664f7759ca2a81dcc3f05f89977e04b0fa3e424aa18408925083818180828009800909905062000bcd60005262001956565b837f050b34c574517ab6ac58b491774c7fa2572951c4c0c0cfdbd1ca46242da8b48d82089050837f17a32f1c2ed7875f416eb3c3bc5296085c0f95cf8fc91429a81010beff1aeda383089150837f08c7b7dd56ffae4496dad107e585670dff7919514bf2dfa8572df8d019938cdc8408925083818180828009800909905062000c5860005262001956565b837f1041cb8c6d4155e3f11ea4f4dcaac28874b20400d511c166108580f5b4e1ea5d82089050837f1b19cb3e41e9c29970a4123c4d0c834f19216a277a03caceb457463bf353ca1a83089150837f2e4680a4ac50cfc484bf0bc75f064e0cce85e5bf037908a1f4e54a66f1ae9a0c8408925083818180828009800909905062000ce360005262001956565b837f114fc9070b4811217501ab969073e570d01ebf4b10b3ce9fa09007aed14d7b3b82089050837f12a97a6552f3cb4aed117f029d2fb8a26cc6142887d84579404893055fce6be083089150837f1dda8d69266fd4f1ce596778727e55262f555f158ba453321bdb34e18d835dad8408925083818180828009800909905062000d6e60005262001956565b837f1aeeba0b8ee533f104ef753a049e0495ab8d2832d271580be677568dd54dbc8b82089050837f087d80c02cb866a6e48757dd0715ae16de850983a156e249e898c0a099feb2c283089150837f210cd88db2e56f4197fd2e78fce4a33f955fadfb9db3f3442b864016e5ff30d68408925083818180828009800909905062000df960005262001956565b837f132b7ca535bcb9e3c5b2c218a2a6ddf99900436d2d68bc7c5a155715db5bfc0382089050837f2c101ab309253551ba608b65def31b407a7d13b157818c1f1edfa96a8b3075bc83089150837f25a13366ee7d2cef6fc1365c349f2eab64dbb154f492885d950ab1494868125e8408925083818180828009800909905062000e8460005262001956565b837f2f1a3b3695d525788fddb27219d3092eb8afbbec37d5e097bdfb1bcb1aa9bdf182089050837f12eb5e560c681856fb6af9f6ea072fd7eb82aad57e88af7bfc7f0b075741efcd83089150837f11581e2e8eed45d13baa42e711b93639d3ae5247c69914272cc2ff6058d3acf38408925083818180828009800909905062000f0f60005262001956565b837f0c0c34dae8f3bf7007564fabedd283cb025d64f4e8f88a47b4e37bd89b5c6fd182089050837f05b47ec45a81568e0730df30770377053d5465341d3309a87fca8604fd1c35e483089150837f09755b27f172ae86cffad94e78fab9d8b740d6891efe2cba55366e61c0c982068408925083818180828009800909905062000f9a60005262001956565b837f0600a9f4ff5c9d8bccd4952029aae6f6e2004d7baaabd9040e3b4216e2cc404182089050837f2864302ac98fdbe4a29cc57c83ee1b60e0a7ef59519bf20a556d7b77a0bdbf3883089150837f14a0943541647294c4d0442506d1896c909ac78166985ffc45a933b4c5a47f39840892508381818082800980090990506200102560005262001956565b837f14f026e852ce5c5fd9a55741e4e33d0a6d8d45ea190894530871cf9803101b2082089050837f0b7ffc49fc5601a646564e4327ecf8061ff6f4982d5d6dd85699e6a589f5986183089150837f11ecc2afb666b89fa519954da8f1e775a16657786839dd15ce4e18b6114a17af84089250838181808280098009099050620010b060005262001956565b837f0266048d728717bb6736cec6bb53a48d53c34866376fdeb1368616540dd57b3882089050837f05d0653ece676b876c63c85abc06d14e4b4fd5bb959f24ff226aac3ef33c060483089150837f04888bfa7c5cd40a493a9089b36341207c2302edfd283e723633e335ed4839d3840892508381818082800980090990506200113b60005262001956565b837f0c5df4b6cf3b9215e3d6342ffa2df33ede670db50dc2477a03d6d3063e64fdd182089050837f2cdb43576702ed93262567dc50237ce620a628d4c3e4eba9eb863485db2a9a4f83089150837f1da473b175874ba5f44bb5ef6136b6a4e817140aa5d5fb30d7a7e4f05af44e5d84089250838181808280098009099050620011c660005262001956565b837f17c4bddb0c8bf05980c312557057790f8e9aa1345d0b2b24f652a72785199f1682089050837f156ff7be6a05828d933945b04155dd3cd1070d810843b334083850a8de293d7383089150837f0d37d0e3108d1f3f1b1677dd4174acc0afc962f54215fee14e32bceb8337aa2e840892508381818082800980090990506200125160005262001956565b837f11ddb1a440a4d076942d52f68bf0ef70800aec60ef150216d242abdfa84b5c9782089050837f163bea67b48bc43fd3d96705cbef764c4db1b61041f02510abb546cb6dc4806a83089150837f22aa414c469933375bf3b583210ec1742b997ca4f121f62df210056624ecf30484089250838181808280098009099050620012dc60005262001956565b837f2d7f90267ae5b326c3d007fac1f761190f1a2d2213c8a1915057705b888b3b4282089050837f103fba0819fa863fe82f18070149ed5b059825ca663e57ffc8e025f5f954ba9b83089150837f043ff968ce318a4219dc8b1b3e9b1d0b5770696dde2e8b6e4f5ede0cc630a4f9840892508381818082800980090990506200136760005262001956565b837f0b3ac488943b0685151bda44aa6adb5b645fdf95d63c25bfa118729900b6955182089050837f1151bf21881610c2a1fccc5f25a8d24aadd5bab7620a456f542d2a27fb9d833383089150837f0bfd02387911be559bbddb6072937662c15b2a5e2c190a5364f26ccf51d04def84089250838181808280098009099050620013f260005262001956565b837f1e23be22f022d1cd8a90938d552875a52efdccb8d51bfcd9993bae65f19f437a82089050837f2d64657d2392bab3d55a6f03f876da7325eaa8b26d4627623ee323280150d5c483089150837f28398c2867f3e75c79a3d183ebc74757b0dbd5976375d5de3c4643d4696f9bba840892508381818082800980090990506200147d60005262001956565b837f2fe98cb56d56da5166550e3d62da69427818797fd678eb85548b3955bd9a8dde82089050837f15f2acb43b89e025ad031c3331b0cfe815ecdd34ce38c164d4ec65c1097fc15283089150837f1dc5214afb325fc97ec49b140c7362e48f916b5fefff40d1d4357a6e8a64afb1840892508381818082800980090990506200150860005262001956565b837f0bf98e88782e75a8ce25deb8208bebd3dcde4a4d8c0d7c95b320f98ae37bde8782089050837f1c8e78dbdc499fe504d6637fb592695048f80d471e413f50cd13beb6008a839183089150837f23445d2bc07a0705a84ad107f5ffef149f3deb0dc8993dff9ac7cb5d307cd0e0840892508381818082800980090990506200159360005262001956565b837f165455fb86eb06686440c8c2289c446541e676341d95bf85105d08e994a2c9d082089050837f177bd958941329e30138b30781b1686c1531212a075f0166494b226bd667fdda83089150837f1d9cac387b77178d0118f881ac7ca94f79cb8052a59235a42cf869b9290da2f8840892508381818082800980090990506200161e60005262001956565b837f294c0bc45d475a1175b9d7977763d26b155f39c6043ea67c7c528bd0ed4e7bb582089050837f2338a930f2cae293c3dbd1386d74b5b7d88b8ad739bd54ae5d720fb697e0b5e583089150837f1fb1f893d955103c39e9f5cba64bc7ff4a078f73f386d9c070179cc279881f5184089250838181808280098009099050620016a960005262001956565b837f04e7ce1c09295df1f4c16216867451d9424f33ade5e0274bda0cb417a729a7f682089050837f12f5ceb80784cbc5631e1ca115f5b55dba3c4315cfbc4f3488eebc776194a3dc83089150837f0f6f9f33c1f40f141caea00e1b2acf51f41fe58ae14aa03ccd7d926bbe02148f840892508381818082800980090990506200173460005262001956565b837f1be83122d94ce0deed510a78f30acd81764a4ea1b13acb7ad4ea3d481d4df95482089050837f0d80a6a155fb12ca328331a46dc758011bab2e4007a5e9a79b5d615131d3444a83089150837f194acfa387c01b063aa4a33551ed7cb9a5a217d4ffd0ed1639140db2b742470e84089250838181808280098009099050838281808280098009099150838381808280098009099250620017d760005262001956565b837f0b33f09047bc972a94494173ac41f3d7df5aa1fdd42d7217474d531e8ef6af6882089050837f0df147663bc28d9b200afd361dc6189a18b74ff6e4ec99c31d7f47db967a41e983089150837f2a4338b94beca683c00f47c48bcafcbfe66babdaa51b27ffb32d17378aa78597840892508381818082800980090990508382818082800980090991508383818082800980090992506200187a60005262001956565b837f03afe0efd0394501f0fc763b3f1019182e62c0255e34d82a76719a5c6dcfcd0682089050837f1e1d4dcf35b59905dc2275f3a37f84b6dae9650988eea92180aee8f45fefba5b83089150837f2a4ae8053cb5aa44efa7af3f76957e572de37def354c04ae6eb0e17dc9f38012840892508381818082800980090990508382818082800980090991508383818082800980090992506200191d60005262001956565b7f26b6da57dd2d67f63611cf269d31b28080a92b00567894e3d56b6df783e02ec084910883818180828009800909905060005260206000f35b8360205182098460405184098591088460605185098591088460805183098560a05185098691088560c05186098691088560e0518409866101005186098791088661012051870987910894509250905060005156",
+ "expectedAddress": "0x94C92F096437ab9958fC0A37F09348f30389Ae79",
"title": "Hasher",
- "description": "MiMC hasher contract",
+ "description": "Poseidon hasher contract",
"dependsOn": [
- "deployer.contract.tornadocash.eth"
- ]
+ "deployerL2.contract.tornadocash.eth"
+ ],
+ "isL1Contract": false
},
{
- "domain": "verifier.contract.tornadocash.eth",
- "contract": "Verifier.sol",
- "bytecode": "0x608060405234801561001057600080fd5b50610e23806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063695ef6f914610030575b600080fd5b610102600480360360e081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160c081810190925293969594818101949350915060069083908390808284376000920191909152509194506101169350505050565b604080519115158252519081900360200190f35b6000808380602001905161010081101561012f57600080fd5b50905060005b60088160ff1610156101ba577f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47828260ff166008811061017157fe5b6020020151106101b25760405162461bcd60e51b8152600401808060200182810382526022815260200180610dcc6022913960400191505060405180910390fd5b600101610135565b506101c3610c73565b6040805180820182528351815260208085015181830152908352815160808082018452858401518285019081526060808801519084015282528351808501855290860151815260a08601518184015281830152838201528151808301835260c0850151815260e085015191810191909152908201526000610242610394565b905060006040518060400160405280600081526020016000815250905061027e81836080015160006007811061027457fe5b602002015161085f565b905060005b6006811015610354577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018782600681106102b957fe5b602002015110610310576040805162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015290519081900360640190fd5b61034a826103458560800151846001016007811061032a57fe5b60200201518a856006811061033b57fe5b60200201516108ff565b61085f565b9150600101610283565b506103896103658460000151610985565b84602001518460000151856020015185876040015189604001518960600151610a2c565b979650505050505050565b61039c610ca5565b6040805180820182527f2dbfc3ec62a3eee5a3b4b464bcf1f8527bbca12adea0f1f12033cd4f61b0e09181527f19e55bd0b72c126da18665039556776642ff82e2f347f24fcea2475f4db087df6020808301919091529083528151608080820184527f1ae724ab134e5a7c6bd8a116fa5505b259522c0f164a5e8126e3ec7d34465f6e8285019081527e9f1bcdc853f8e3531756bb625b0d1dc014f4ab57c3f79f4f4e2e7ef7e0ead6606080850191909152908352845180860186527f23a8ca5760457e726365b92fd0ceb486665797cd68c35dcffd8e4ae8066691e981527f13ec7182c9fd68331a10f8be0fe885d730de5c7f89aa7d0b7bafaa009bbc9e3e818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835180820185527f2f0c63d0c53b3dfbca27b6b43ae7fbf55a38d78a21470996485b03128accc2088186019081527e556502356e37ed150db2e36531b0f275fd6835c0fc1945922e270b48c48a86828501528152845180860186527f02644c27b5dbd793592a70b735e22c798a5e309fa17a992a7dc2a050e01b298f81527f194776b6a53439d7336f389d2a8f6651e40885f5ca2538b0dc9cb534fb23f7fa818601528185015282860152835180850185527f23df1bc9165e9c1c9b2bc036d8ebdd10e7aeae7e5e8019fde68aec7c818bb23e81527f0b6c92080d37c5fb2ddf30892a33665e5478432ef3f71ac8768ecbbe62c7789281850152818601805191909152845180860186527f1c7b2adf45e046caea000956b2ecb2d8617e710d2a7bb201a95ea276f92307b481527f2b15f07536f45948cf4abe6596637d902ffabb18c8c2f5c151544c294ce4a672818601528151850152845180860186527f1cecfe92882a8c835a47bf01bfa655cf628cbba7f81cf4042179fd13edcd6a3981527f0154bfbb2cb786ca247d4b69183d1751f267bbc7656be8d0f0e7a5a47e2c1101818601528151860152845180860186527f1584616a7423efcc72f69ea84fa0b2bc01433677297f4e8351bebfc15bcd0cda81527f0623755b1488526daa9fecf0e11b110dd6df12c461579d792e1db65af523c8be81860152815190930192909252835180850185527f12fbb5bfca9d61357ba2d641604cf4852e21ef54faa180fe539c18994dc1da5a81527f2f09dd9972a1af5f7bcfccf3d7ab600c9d898ea6d6933150ba0ae228ece17e5f81850152825190910152825180840184527f0adb513796fdf2103022c64151ce05f7c7a6d9200e8d819fa59e654fc4bfe83c81527f2d64f72ef4eddf9ca032058ed2bf691758387e913a77cf99d6a3cfb37c8ba7ee81840152815160a0015282518084019093527f21e7c9bffda74bfd2c4393b6803d775545de6fa89145f4a23476241d9881b66183527f0bbe41e52237ac13eb7b01f3cb999b7394d08734e71b1c3ada62713e17eb560c918301919091525160c0015290565b610867610cec565b61086f610d06565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080156108ad576108af565bfe5b50806108f7576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b610907610cec565b61090f610d24565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080156108ad5750806108f7576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b61098d610cec565b815115801561099e57506020820151155b156109bd57506040805180820190915260008082526020820152610a27565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478460200151816109ff57fe5b067f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703905290505b919050565b60408051608080820183528a825260208083018a90528284018890526060808401879052845192830185528b83528282018a9052828501889052820185905283516018808252610320820190955260009491859190839082016103008036833701905050905060005b6004811015610bec5760068102858260048110610aae57fe5b6020020151518351849083908110610ac257fe5b602002602001018181525050858260048110610ada57fe5b602002015160200151838260010181518110610af257fe5b602002602001018181525050848260048110610b0a57fe5b602002015151518351849060028401908110610b2257fe5b602002602001018181525050848260048110610b3a57fe5b60200201515160016020020151838260030181518110610b5657fe5b602002602001018181525050848260048110610b6e57fe5b602002015160200151600060028110610b8357fe5b6020020151838260040181518110610b9757fe5b602002602001018181525050848260048110610baf57fe5b602002015160200151600160028110610bc457fe5b6020020151838260050181518110610bd857fe5b602090810291909101015250600101610a95565b50610bf5610d42565b6000602082602086026020860160086107d05a03fa90508080156108ad575080610c5e576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159d9c50505050505050505050505050565b6040518060600160405280610c86610cec565b8152602001610c93610d60565b8152602001610ca0610cec565b905290565b6040518060a00160405280610cb8610cec565b8152602001610cc5610d60565b8152602001610cd2610d60565b8152602001610cdf610d60565b8152602001610ca0610d80565b604051806040016040528060008152602001600081525090565b60405180608001604052806004906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060400160405280610d73610dad565b8152602001610ca0610dad565b6040518060e001604052806007905b610d97610cec565b815260200190600190039081610d8f5790505090565b6040518060400160405280600290602082028036833750919291505056fe76657269666965722d70726f6f662d656c656d656e742d6774652d7072696d652d71a26469706673582212201e8d5fa08dca1115d5f49b40f68afdc4edecbc63d464ea55aedda4c788f3adf264736f6c63430007060033",
- "expectedAddress": "0xfc9859303c0ac1a7721ECE639f2e249D8FD72ac6",
- "title": "Verifier",
- "description": "zkSNARK verifier contract for withdrawals",
+ "domain": "verifier2.contract.tornadocash.eth",
+ "contract": "Verifier2.sol",
+ "bytecode": "0x608060405234801561001057600080fd5b50610d79806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063598da1d114610030575b600080fd5b610103600480360361010081101561004757600080fd5b81019060208101813564010000000081111561006257600080fd5b82018360208201111561007457600080fd5b8035906020019184600183028401116401000000008311171561009657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160e081810190925293969594818101949350915060079083908390808284376000920191909152509194506101179350505050565b604080519115158252519081900360200190f35b6000808380602001905161010081101561013057600080fd5b50905060005b60088160ff1610156101bb577f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47828260ff166008811061017257fe5b6020020151106101b35760405162461bcd60e51b8152600401808060200182810382526022815260200180610d226022913960400191505060405180910390fd5b600101610136565b5060006040518060400160405280836000600881106101d657fe5b60200201518152602001836001600881106101ed57fe5b602002015190526040805160808101825284820151918101918252919250600091908190606082018660036020020151815250815260200160405180604001604052808660046008811061023d57fe5b602002015181526020018660056008811061025457fe5b6020020151905290526040805180820190915290915060009080856006602002015181526020018560076008811061028857fe5b602002015190529050600061029b610398565b60808101515190915060005b6007811015610362577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018982600781106102dd57fe5b60200201511061031e5760405162461bcd60e51b8152600401808060200182810382526025815260200180610cfd6025913960400191505060405180910390fd5b610358826103538560800151846001016008811061033857fe5b60200201518c856007811061034957fe5b60200201516108ba565b610951565b91506001016102a7565b5061038b61036f866109ef565b8584600001518560200151858760400151898960600151610a96565b9998505050505050505050565b6103a0610c0c565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835180820185527f0f1ceb52000763f25a85f8e202a0931daffa8edbb7c696f596161cd81c6cfde48186019081527f2ec8f7e0e753c650478cefab94ab864bfa274e61592ff20b96a2a93316e7f913828501528152845180860186527f066c6cd740825f8f204392af85b6969d6a4c948f76c9cdf570b5c8af683ba80f81527f03d65d4247db5ff2e3f4316f5887ca291f9c87c34a555f3eb755100b68a403c6818601528185015282860152835180850185527f09244700aba1defbba17fa7713c28d9c48b87151be9ace864bbb9b37690185a581527f132976b4fd8e023878e1dd83d29b297ae4d2344509edabb6491763bd2f4c56b581850152818601805191909152845180860186527f0e7e113d86e94633fbb01b6068eb5bbeb09cc712acb553c8be565c457366220081527f2cd0efa10d3feb018f881841f5d862741b7e4ab01b242e9ef410c0b98dbc9ab4818601528151850152845180860186527f261bb31d0726c77324d638b68ce639ff954634993e6bcf8316e76e48512e09db81527f1e076257cb62542376f8cd683c644ccaa4aaec56d297efdbe800d6d89aea7e91818601528151860152845180860186527f04dd8e77eeeeb90823b4df005d7fd6600bece9df1306c4abad6c1211f227fa6281527f06dc2eb6b914a78640e2b64219689078ed016313c20aa1a2c1894b2859d177f281860152815190930192909252835180850185527f18f9e772f1f1bf7db0d0fa7b655dbc76439f83e9fe586df6d3c4e38063e2fc0a81527f10cecddf6b14fb9d8ecc4c03c8391fa32047a908fb8a3abee1173f32ed44d8c081850152825190910152825180840184527f1528c99a822eb9ebc63c53e7136deb473049d8911e74cc64474ef1518c5db5dd81527f2c0d8426a99c813fdc83bc043c83d9c2c1f298b7de39fa0bbf8610697bb1e03c81840152815160a00152825180840184527f2206a0de6f10202e4c88c23a63fb287b43f9c5fea4fc311dc08980f3f8e8aa9381527f2372992706bad374412520eb11927305f89bcf76989f3d6510798c303f0750be81840152815160c0015282518084019093527f2c3a5b8d935a30b9d9802bd0719ecf6ff94879eca6a25941e2b9d0b9020658d583527f1192ac9701a92d22c8d49437c5eedebab782368fc096cc647e24c1a61d2a4f27918301919091525160e0015290565b6108c2610c58565b60408051606080820183528551825260208087015190830152918101849052906000908360808460076107d05a03fa90508080156108ff57610901565bfe5b5080610949576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b610959610c58565b6000604051806080016040528085600001518152602001856020015181526020018460000151815260200184602001518152509050600060608360c08460066107d05a03fa90508080156108ff575080610949576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b6109f7610c58565b8151158015610a0857506020820151155b15610a2757506040805180820190915260008082526020820152610a91565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47846020015181610a6957fe5b067f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703905290505b919050565b6040805161030081018252895181526020808b015181830152895151928201929092528851820151606082015288820180515160808301525182015160a0820152875160c08201528782015160e08201528651516101008201528651820151610120820152868201805151610140830152518201516101608201528551610180820152858201516101a08201528451516101c082015284518201516101e08201528482018051516102008301525182015161022082015283516102408201528382015161026082015282515161028082015282518201516102a08201528282018051516102c083015251909101516102e0820152600090610b95610c72565b60006020826103008560086107d05a03fa90508080156108ff575080610bfa576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159a9950505050505050505050565b6040518060a00160405280610c1f610c58565b8152602001610c2c610c90565b8152602001610c39610c90565b8152602001610c46610c90565b8152602001610c53610cb0565b905290565b604051806040016040528060008152602001600081525090565b60405180602001604052806001906020820280368337509192915050565b6040518060400160405280610ca3610cde565b8152602001610c53610cde565b6040518061010001604052806008905b610cc8610c58565b815260200190600190039081610cc05790505090565b6040518060400160405280600290602082028036833750919291505056fe76657269666965722d696e7075742d6774652d736e61726b2d7363616c61722d6669656c6476657269666965722d70726f6f662d656c656d656e742d6774652d7072696d652d71a26469706673582212205e7fd7d7a133b92abb8cf61341f3c954a211c87295d8e0f84c9ba87db3ba12fd64736f6c63430007060033",
+ "expectedAddress": "0x8CB666DEE6257590F5dD8A98e0c4131fF5D9a610",
+ "title": "Verifier2",
+ "description": "zkSNARK verifier contract for 2 input operations",
"dependsOn": [
- "deployer.contract.tornadocash.eth"
- ]
+ "deployerL2.contract.tornadocash.eth"
+ ],
+ "isL1Contract": false
},
{
- "domain": "proxy-light.contract.tornadocash.eth",
- "contract": "TornadoProxyLight.sol",
- "bytecode": "0x608060405234801561001057600080fd5b506104f6806100206000396000f3fe6080604052600436106100345760003560e01c806313d98d13146100395780636485ba2a1461004e578063b438689f1461006e575b600080fd5b61004c6100473660046102c7565b610081565b005b34801561005a57600080fd5b5061004c610069366004610258565b61012a565b61004c61007c366004610321565b610198565b60405163b214faa560e01b81526001600160a01b0385169063b214faa59034906100af9087906004016103ec565b6000604051808303818588803b1580156100c857600080fd5b505af11580156100dc573d6000803e3d6000fd5b5050505050336001600160a01b03167ffa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008838360405161011c9291906103f5565b60405180910390a250505050565b60005b8181101561019357337ffa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b400884848481811061016357fe5b90506020028101906101759190610463565b6040516101839291906103f5565b60405180910390a260010161012d565b505050565b6040516310d056db60e11b81526001600160a01b038a16906321a0adb69034906101d4908c908c908c908c908c908c908c908c90600401610411565b6000604051808303818588803b1580156101ed57600080fd5b505af1158015610201573d6000803e3d6000fd5b5050505050505050505050505050565b60008083601f840112610222578182fd5b50813567ffffffffffffffff811115610239578182fd5b60208301915083602082850101111561025157600080fd5b9250929050565b6000806020838503121561026a578182fd5b823567ffffffffffffffff80821115610281578384fd5b818501915085601f830112610294578384fd5b8135818111156102a2578485fd5b86602080830285010111156102b5578485fd5b60209290920196919550909350505050565b600080600080606085870312156102dc578182fd5b84356102e7816104a8565b935060208501359250604085013567ffffffffffffffff811115610309578283fd5b61031587828801610211565b95989497509550505050565b60008060008060008060008060006101008a8c03121561033f578485fd5b893561034a816104a8565b985060208a013567ffffffffffffffff811115610365578586fd5b6103718c828d01610211565b90995097505060408a0135955060608a0135945060808a0135610393816104a8565b935060a08a01356103a3816104a8565b8093505060c08a0135915060e08a013590509295985092959850929598565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b90815260200190565b6000602082526104096020830184866103c2565b949350505050565b600060e0825261042560e083018a8c6103c2565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b6000808335601e19843603018112610479578283fd5b83018035915067ffffffffffffffff821115610493578283fd5b60200191503681900382131561025157600080fd5b6001600160a01b03811681146104bd57600080fd5b5056fea2646970667358221220933a65b015e49cd3afd093e36b796373f0ceea1956cc4c0ea4ca179f3c2fd5cb64736f6c634300060c0033",
- "expectedAddress": "0x0D5550d52428E7e3175bfc9550207e4ad3859b17",
- "title": "ProxyLight",
- "description": "Tornado proxy light for L2",
+ "domain": "verifier16.contract.tornadocash.eth",
+ "contract": "Verifier16.sol",
+ "bytecode": "0x608060405234801561001057600080fd5b5061122e806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806386fbc0ee14610030575b600080fd5b61010460048036036102c081101561004757600080fd5b81019060208101813564010000000081111561006257600080fd5b82018360208201111561007457600080fd5b8035906020019184600183028401116401000000008311171561009657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516102a081810190925293969594818101949350915060159083908390808284376000920191909152509194506101189350505050565b604080519115158252519081900360200190f35b6000808380602001905161010081101561013157600080fd5b50905060005b60088160ff1610156101bc577f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47828260ff166008811061017357fe5b6020020151106101b45760405162461bcd60e51b81526004018080602001828103825260228152602001806111d76022913960400191505060405180910390fd5b600101610137565b5060006040518060400160405280836000600881106101d757fe5b60200201518152602001836001600881106101ee57fe5b602002015190526040805160808101825284820151918101918252919250600091908190606082018660036020020151815250815260200160405180604001604052808660046008811061023e57fe5b602002015181526020018660056008811061025557fe5b6020020151905290526040805180820190915290915060009080856006602002015181526020018560076008811061028957fe5b602002015190529050600061029c610399565b60808101515190915060005b6015811015610363577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018982601581106102de57fe5b60200201511061031f5760405162461bcd60e51b81526004018080602001828103825260258152602001806111b26025913960400191505060405180910390fd5b610359826103548560800151846001016016811061033957fe5b60200201518c856015811061034a57fe5b6020020151610d6f565b610e06565b91506001016102a8565b5061038c61037086610ea4565b8584600001518560200151858760400151898960600151610f4b565b9998505050505050505050565b6103a16110c1565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835180820185527f0f32b8e4c2ad91c7f0211154f6ed77741c026a90ec3c630486fb2da50c1f58ca8186019081527f16240d1dd6db0c86a4f502cfd57de7a45b7711b53294c8994aef1f47324e7605828501528152845180860186527f0799ee054c0608e53b6f06064e68d4bb95193cb381a796edf8833e1deafb4e4781527f2c3ddcde12b399faf3c1079c43d53c9c2d89cec86c0930de82fed414b1f900f7818601528185015282860152835180850185527f094035cae912c148257b3c0ebee9d30e4727eba9da9178812e2249997180538081527f02e06003c9dd6a3a6a0ff9fbe8519d4f2af9bf4291d91dfa021187595a692aa281850152818601805191909152845180860186527f1b476542d6745057566aaa2e31b4662b665bc0faf08479dac4581d8686cd3ddb81527f12956a00c59e5210db37f1a21dba769c98a4175ed278d5acd6f5691b14c08092818601528151850152845180860186527f29a27d27dd93de705e5004f9e38192f07bb3c243a2082f15e470d386ef44b20581527f20373f8d4c0c0823fee7196c165c73afeb9a102692f7473b7a5b34631119d1b7818601528151860152845180860186527f264628160be8a814e3a438e48b4d1d17aa95f34d16584fc9b2469fba93f52c3081527f10e8ec69bca31fc1df4ef6184fe9110db6188c83f7f53c2091ba7b9d702766c081860152815190930192909252835180850185527f26e30873525725e4dbfb2d769c4a354b8d38adde486c5d410c688ebe79bb3a0981527f0de0942aaf9a446e1a8d2e1d050a0738670ce282c38ff38b507892cda02ee8ca81850152825190910152825180840184527f0359a2332e6fbb0069b323e29b6a34b7e1e1ce9fdb6813ed39bfbd1e74c549c681527f23f3c0b3ee354209416325c2c9d3f133efa1eddcd3c95dafd7ddf6d2b466d58281840152815160a00152825180840184527f0e72d4add5ec29875f3c4c1bc9c8d3cc8ec38a949bf0fa6b76f423b7135804a381527f23337c3109a32941bdae6dc06bbed85154d1428caff1df130123490d7acfe0ef81840152815160c00152825180840184527f10a938936ebf9435256460001459a9a720f1d77a9638b20f97e26e281e4a007a81527f2dab790649ed74504a801c47746f479c5ab8b17163c993c7f4768cd1604fe63b81840152815160e00152825180840184527f15f4763dc38025f957e2ea03fd53b8a5f931d7213e0d373eaa2fc0ac00fee2ea81527f0994d8b468d744d43a24bcdb4fcd2462577281a7dba0125b2dbe55757762ccc18184015281516101000152825180840184527f22d60a76731b6d33625f2b9770578d54efa7f2515a44864f7820030f5013f1f381527f1767b5f607ade7111a0dc6ea3f0afa89b202c3b2d3d0ec254790d6ec9e503df38184015281516101200152825180840184527f1a02e03c39227c71418668ceba1e5ea6d765d579b8cfb027240b31dc9214e77781527f061029e7575723a306cdfae0906d8cc03bfde43f0760e64547182fb2c402e7d18184015281516101400152825180840184527f2f447a056bb1bd4af6cd6f96f52ebe55577094b45f0ce31b06ca470ab48f9d2181527f1796bdb4c146fe2f41e3402b2a333fd7754e6df8037e18a6b5f1600489bc1a0a8184015281516101600152825180840184527f09928b7359daf62763e7c301b0769aaea4a8aa5debf7cd97de5200a50da48ae481527f168e40b030f89cb770e5e60fa837f92997b4c194dc79ec822b1ba0a64fa331878184015281516101800152825180840184527f1f6562b773f495e5508180bd21affecb325b791310746cfa56e017076cb99b4381527f1a8498a17e4848f6467c62b9e327492ef202cdb2f69eb970a97b585bbe46f16c8184015281516101a00152825180840184527f166dd5872a2e4d1be2ddc9453c9900aecd3437100fe05afed880b4725fe3eb9f81527f130b20b2a7d9ba54658ad884a321e95d64f738497a11c4413f819117803b4d1c8184015281516101c00152825180840184527f18df2f52469b338e23f622cf8704e7cf38f29b40a7030e85d55434e6d38939b981527f0953c18dff104686128be4efe802feb9f6cd2a39bc73c1b53c9123055ed6bfe58184015281516101e00152825180840184527f0418eb2f6a022a2930dfd90767b73dbc75fdaec7e5c6091a1b5f5bd5d50ed03481527f1fc325fb44322da35f502f0c0178fad56dfff2671211fe27d6b9b3ae37a6e1618184015281516102000152825180840184527f1ea15a9aa8c2a887cea6a3890ffb272f377f2b08cd9f1c0b02bad31d745b995381527f240ea8b60288b1d9ab470c754dab39985fccf139156dd17a186055dcd99972678184015281516102200152825180840184527f0e460dc505cf5c32c68a69b5e80325b9a4af7256cc7c321a29621c3408bdd89081527f2b14325815e2b5fd3a2cf3dcf3e3ebe1607d172adc09808d75b15dd3932a3c5e8184015281516102400152825180840184527f05d1fde84e34509720594d5ab44f01c4e0d7cd3cbc4fba853a721d6bb050086481527f265ca72c32d9d0355ef8e9238ea4c2f031acd2fa360448ae065d8ae1e976413c8184015281516102600152825180840184527f1d1db63d4c33c2deee854cb8fefb83d8fd9f854d37d1df89d817c097664f63b581527f041dc0bcd13c74da2a781726fe1627bd24fc9acfaaac86a30dbce32a87b44027818401528151610280015282518084019093527f23507f2aa2abb160ecf9807ea8d79e7ba9e63d25b5a88e9662efc72f02c3dc9d83527f152646315f72ff8739e8c98369e8e59ba32429052749d4941bc28b83c36b9f8c91830191909152516102a0015290565b610d7761110d565b60408051606080820183528551825260208087015190830152918101849052906000908360808460076107d05a03fa9050808015610db457610db6565bfe5b5080610dfe576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b610e0e61110d565b6000604051806080016040528085600001518152602001856020015181526020018460000151815260200184602001518152509050600060608360c08460066107d05a03fa9050808015610db4575080610dfe576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b610eac61110d565b8151158015610ebd57506020820151155b15610edc57506040805180820190915260008082526020820152610f46565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47846020015181610f1e57fe5b067f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703905290505b919050565b6040805161030081018252895181526020808b015181830152895151928201929092528851820151606082015288820180515160808301525182015160a0820152875160c08201528782015160e08201528651516101008201528651820151610120820152868201805151610140830152518201516101608201528551610180820152858201516101a08201528451516101c082015284518201516101e08201528482018051516102008301525182015161022082015283516102408201528382015161026082015282515161028082015282518201516102a08201528282018051516102c083015251909101516102e082015260009061104a611127565b60006020826103008560086107d05a03fa9050808015610db45750806110af576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159a9950505050505050505050565b6040518060a001604052806110d461110d565b81526020016110e1611145565b81526020016110ee611145565b81526020016110fb611145565b8152602001611108611165565b905290565b604051806040016040528060008152602001600081525090565b60405180602001604052806001906020820280368337509192915050565b6040518060400160405280611158611193565b8152602001611108611193565b604051806102c001604052806016905b61117d61110d565b8152602001906001900390816111755790505090565b6040518060400160405280600290602082028036833750919291505056fe76657269666965722d696e7075742d6774652d736e61726b2d7363616c61722d6669656c6476657269666965722d70726f6f662d656c656d656e742d6774652d7072696d652d71a2646970667358221220770e91f4e3d3c3a33498e2646176cf9bda50dd3aa9df35206c2bb49450e9fe1564736f6c63430007060033",
+ "expectedAddress": "0xA318dd4C45770e74491a08E3CdF5d0f01FECaffD",
+ "title": "Verifier16",
+ "description": "zkSNARK verifier contract for 16 input operations",
"dependsOn": [
- "deployer.contract.tornadocash.eth"
- ]
+ "deployerL2.contract.tornadocash.eth"
+ ],
+ "isL1Contract": false
},
{
- "domain": "echoer.contract.tornadocash.eth",
- "contract": "Echoer.sol",
- "bytecode": "0x608060405234801561001057600080fd5b50610146806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063624fbfdc14610030575b600080fd5b6100a06004803603602081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b5090925090506100a2565b005b336001600160a01b03167f50d6f3fc915efd1695d8a4cb50da185984f50d256834b9cb308295eb3c872c9c838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2505056fea264697066735822122042a07f8e13a17e22566bb27f6e2f5da8ca785bd574a1690a7a2694ff000ef79c64736f6c634300060c0033",
- "expectedAddress": "0xa75BF2815618872f155b7C4B0C81bF990f5245E4",
- "title": "Echoer",
- "description": "Utility contract that stores encrypted Note Accounts",
+ "domain": "tornadoPool.contract.tornadocash.eth",
+ "contract": "TornadoPool.sol",
+ "bytecode": "0x6101c0604052600380546001600160401b03191690553480156200002257600080fd5b5060405162003381380380620033818339810160408190526200004591620001fe565b836001600160a01b031663cd5965836040518163ffffffff1660e01b815260040160206040518083038186803b1580156200007f57600080fd5b505afa15801562000094573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ba9190620001d8565b8183898960008263ffffffff1611620001055760405162461bcd60e51b81526004018080602001828103825260238152602001806200335e6023913960400191505060405180910390fd5b60208263ffffffff161062000161576040805162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015290519081900360640190fd5b6001600160e01b031960e092831b1660a0526001600160601b0319606091821b8116608052600160045594811b851660c05291821b84166101005291909152998a1b81166101205297891b881661014052505091861b851661016052851b84166101805290931b9091166101a05250620002e89050565b600060208284031215620001ea578081fd5b8151620001f781620002cf565b9392505050565b60008060008060008060008060006101208a8c0312156200021d578485fd5b89516200022a81620002cf565b60208b01519099506200023d81620002cf565b60408b015190985063ffffffff8116811462000257578586fd5b60608b01519097506200026a81620002cf565b60808b01519096506200027d81620002cf565b60a08b01519095506200029081620002cf565b60c08b0151909450620002a381620002cf565b60e08b0151909350620002b681620002cf565b809250506101008a015190509295985092959850929598565b6001600160a01b0381168114620002e557600080fd5b50565b60805160601c60a05160e01c60c05160601c60e0516101005160601c6101205160601c6101405160601c6101605160601c6101805160601c6101a05160601c612f7b620003e360003980610e955280611be2525080610f075280610fff5280611bb9525080610d545280610fa5528061106b52806118f15280611b8a5280611cba5280611d7d5280611e3c5250806106a152806109fc52508061089a5280610d095250806105e25280610eb9525080610533528061192952508061043252806105095280610554528061060c525080610ce5528061206852806120d1528061214152806121c452508061079552806118bb5250612f7b6000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80638f1c56bd11610130578063db7af854116100b8578063ed33639f1161007c578063ed33639f146103fd578063f178e47c14610405578063fc0c546a14610418578063fc7e9c6f14610420578063ff4d18151461042857610227565b8063db7af854146103a9578063e4a30116146103bc578063e5285dcc146103cf578063e8295588146103e2578063ec732959146103f557610227565b8063b2bc6e0f116100ff578063b2bc6e0f14610373578063ba70f75714610386578063bc063e1a14610328578063c2b40ae41461038e578063cd87a3b4146103a157610227565b80638f1c56bd1461034857806390eeb02b14610350578063957d4cc814610358578063b18855cf1461036b57610227565b80634ecf518b116101b357806378abb49b1161018257806378abb49b146103205780637fe24ffe14610328578063840b2791146103305780638414cf0c146103385780638da5cb5b1461034057610227565b80634ecf518b146102dd578063522d0d70146102f257806361bbefc1146102fa5780636d9833e31461030d57610227565b80632fc0355f116101fa5780632fc0355f1461029257806338bf282e1461029a578063414a37ba146102ad57806342d90711146102b55780634cf0f715146102ca57610227565b80630ba54df61461022c57806317cc915c1461024a5780632570b7b41461026a578063270af8511461028a575b600080fd5b610234610430565b60405161024191906128e7565b60405180910390f35b61025d610258366004612643565b610454565b6040516102419190612968565b61027d610278366004612700565b610469565b6040516102419190612973565b61025d6104fc565b61023461069f565b61027d6102a836600461265b565b6106c3565b61027d610844565b6102c86102c3366004612700565b610856565b005b61025d6102d83660046127c9565b610888565b6102e5610ce3565b6040516102419190612e4e565b610234610d07565b6102c86103083660046127fc565b610d2b565b61025d61031b366004612643565b610e0f565b61027d610e7f565b61027d610e85565b61027d610e8d565b610234610e93565b610234610eb7565b61027d610edb565b6102e5610ee1565b6102c8610366366004612745565b610eed565b610234610f05565b6102c8610381366004612712565b610f29565b61027d610f5e565b61027d61039c366004612643565b610f79565b6102e5610f8b565b6102c86103b736600461267c565b610f90565b6102c86103ca366004612700565b61115b565b61025d6103dd366004612643565b611210565b61027d6103f0366004612643565b611225565b61027d611895565b6102346118b9565b61027d610413366004612643565b6118dd565b6102346118ef565b6102e5611913565b61027d611927565b7f000000000000000000000000000000000000000000000000000000000000000081565b60086020526000908152604090205460ff1681565b6000600160f81b82106104975760405162461bcd60e51b815260040161048e90612c0b565b60405180910390fd5b6001600160f81b0319831380156104b15750600160f81b83125b6104cd5760405162461bcd60e51b815260040161048e90612ad0565b81830360008112156104f25780600003600080516020612ef6833981519152036104f4565b805b949350505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156105d957507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639e307dff6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105ab57600080fd5b505afa1580156105bf573d6000803e3d6000fd5b505050506040513d60208110156105d557600080fd5b5051145b801561069a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d67bdd256040518163ffffffff1660e01b815260040160206040518083038186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d602081101561068d57600080fd5b50516001600160a01b0316145b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600080516020612ef68339815191528310610727576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b600080516020612ef683398151915282106107735760405162461bcd60e51b8152600401808060200182810382526021815260200180612ea76021913960400191505060405180910390fd5b61077b6122d9565b838152602081018390526040805163014cf2b360e51b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163299e56609184916004909101908190839080838360005b838110156107ee5781810151838201526020016107d6565b5050505090500191505060206040518083038186803b15801561081057600080fd5b505afa158015610824573d6000803e3d6000fd5b505050506040513d602081101561083a57600080fd5b5051949350505050565b600080516020612ef683398151915281565b61085e6104fc565b61087a5760405162461bcd60e51b815260040161048e90612b97565b610884828261194b565b5050565b6000816040015151600214156109ec577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663598da1d183600001516040518060e00160405280866020015160001c8152602001866080015181526020018660a0015160001c8152602001866040015160008151811061090c57fe5b602002602001015160001c8152602001866040015160018151811061092d57fe5b602002602001015160001c8152602001866060015160006002811061094e57fe5b602002015160001c8152602001866060015160016002811061096c57fe5b602002015190526040516001600160e01b031960e085901b168152610995929190600401612a03565b60206040518083038186803b1580156109ad57600080fd5b505afa1580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190612627565b9050610cde565b81604001515160101415610cc6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166386fbc0ee8360000151604051806102a00160405280866020015160001c8152602001866080015181526020018660a0015160001c81526020018660400151600081518110610a6f57fe5b602002602001015160001c81526020018660400151600181518110610a9057fe5b602002602001015160001c81526020018660400151600281518110610ab157fe5b602002602001015160001c81526020018660400151600381518110610ad257fe5b602002602001015160001c81526020018660400151600481518110610af357fe5b602002602001015160001c81526020018660400151600581518110610b1457fe5b602002602001015160001c81526020018660400151600681518110610b3557fe5b602002602001015160001c81526020018660400151600781518110610b5657fe5b602002602001015160001c81526020018660400151600881518110610b7757fe5b602002602001015160001c81526020018660400151600981518110610b9857fe5b602002602001015160001c81526020018660400151600a81518110610bb957fe5b602002602001015160001c81526020018660400151600b81518110610bda57fe5b602002602001015160001c81526020018660400151600c81518110610bfb57fe5b602002602001015160001c81526020018660400151600d81518110610c1c57fe5b602002602001015160001c81526020018660400151600e81518110610c3d57fe5b602002602001015160001c81526020018660400151600f81518110610c5e57fe5b602002602001015160001c81526020018660600151600060028110610c7f57fe5b602002015160001c81526020018660600151600160028110610c9d57fe5b602002015190526040516001600160e01b031960e085901b1681526109959291906004016129bb565b60405162461bcd60e51b815260040161048e90612d46565b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081602001511315610e055760208101516040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916323b872dd91610d8c9133913091906004016128fb565b602060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190612627565b5060075481602001511115610e055760405162461bcd60e51b815260040161048e90612d7d565b6108848282611956565b600081610e1e57506000610cde565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054841415610e5157600192505050610cde565b63ffffffff8116610e605750601e5b6000190163ffffffff8082169083161415610e29575060009392505050565b60075481565b600160f81b81565b60065481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60055481565b60035463ffffffff1681565b610ef683610f29565b610f008282610d2b565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b80516001600160a01b03163314610f525760405162461bcd60e51b815260040161048e90612a40565b610f5b81612006565b50565b60035463ffffffff1660009081526002602052604090205490565b60026020526000908152604090205481565b601e81565b600080610f9f838501856127fc565b915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614610ff45760405162461bcd60e51b815260040161048e90612c9e565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461103c5760405162461bcd60e51b815260040161048e90612a77565b80602001518510156110605760405162461bcd60e51b815260040161048e90612c30565b6005548160200151017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016110b591906128e7565b60206040518083038186803b1580156110cd57600080fd5b505afa1580156110e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611105919061285d565b10156111235760405162461bcd60e51b815260040161048e90612cd5565b600754816020015111156111495760405162461bcd60e51b815260040161048e90612d7d565b6111538282611956565b505050505050565b600054610100900460ff16806111745750611174612052565b80611182575060005460ff16155b6111bd5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ec8602e913960400191505060405180910390fd5b600054610100900460ff161580156111e8576000805460ff1961ff0019909116610100171660011790555b6111f2838361194b565b6111fa612063565b8015610f00576000805461ff0019169055505050565b60009081526008602052604090205460ff1690565b60008161125357507f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c610cde565b816001141561128357507f1a332ca2cd2436bdc6796e6e4244ebf6f7e359868b7252e55342f766e4088082610cde565b81600214156112b357507f2fb19ac27499bdf9d7d3b387eff42b6d12bffbc6206e81d0ef0b0d6b24520ebd610cde565b81600314156112e357507f18d0d6e282d4eacbf18efc619a986db763b75095ed122fac7d4a49418daa42e1610cde565b816004141561131357507f054dec40f76a0f5aaeff1a85a4a3721b92b4ad244362d30b0ef8ed7033de11d3610cde565b816005141561134357507f1d24c91f8d40f1c2591edec19d392905cf5eb01eada48d71836177ef11aea5b2610cde565b816006141561137357507f0fb63621cfc047eba2159faecfa55b120d7c81c0722633ef94e20e27675e378f610cde565b81600714156113a357507f277b08f214fe8c5504a79614cdec5abd7b6adc9133fe926398684c82fd798b44610cde565b81600814156113d357507f2633613437c1fd97f7c798e2ea30d52cfddee56d74f856a541320ae86ddaf2de610cde565b816009141561140257507e768963fa4b993fbfece3619bfaa3ca4afd7e3864f11b09a0849dbf4ad25807610cde565b81600a141561143257507f0e63ff9df484c1a21478bd27111763ef203177ec0a7ef3a3cd43ec909f587bb0610cde565b81600b141561146257507f0e6a4bfb0dd0ac8bf5517eaac48a95ba783dabe9f64494f9c892d3e8431eaab3610cde565b81600c141561149257507f0164a46b3ffff8baca00de7a130a63d105f1578076838502b99488505d5b3d35610cde565b81600d14156114c257507f145a6f1521c02b250cc76eb35cd67c9b0b22473577de3778e4c51903836c8957610cde565b81600e14156114f257507f29849fc5b55303a660bad33d986fd156d48516ec58a0f0a561a03b704a802254610cde565b81600f141561152257507f26639dd486b374e98ac6da34e8651b3fca58c51f1c2f857dd82045f27fc8dbe6610cde565b816010141561155257507f2aa39214b887ee877e60afdb191390344c68177c30a0b8646649774174de5e33610cde565b816011141561158257507f09b397d253e41a521d042ffe01f8c33ae37d4c7da21af68693aafb63d599d708610cde565b81601214156115b257507f02fbfd397ad901cea38553239aefec016fcb6a19899038503f04814cbb79a511610cde565b81601314156115e257507f266640a877ec97a91f6c95637f843eeac8718f53f311bac9cba7d958df646f9d610cde565b816014141561161257507f29f9a0a07a22ab214d00aaa0190f54509e853f3119009baecb0035347606b0a9610cde565b816015141561164257507f0a1fda67bffa0ab3a755f23fdcf922720820b6a96616a5ca34643cd0b935e3d6610cde565b816016141561167257507f19507199eb76b5ec5abe538a01471d03efb6c6984739c77ec61ada2ba2afb389610cde565b81601714156116a257507f26bd93d26b751484942282e27acfb6d193537327a831df6927e19cdfc73c3e64610cde565b81601814156116d257507f2eb88a9c6b00a4bc6ea253268090fe1d255f6fe02d2eb745517723aae44d7386610cde565b816019141561170257507f13e50d0bda78be97792df40273cbb16f0dc65c0697d81a82d07d0f6eee80a164610cde565b81601a141561173257507f2ea95776929000133246ff8d9fdcba179d0b262b9e910558309bac1c1ec03d7a610cde565b81601b141561176257507f1a640d6ef66e356c795396c0957b06a99891afe0c493f4d0bdfc0450764bae60610cde565b81601c141561179257507f2b17979f2c2048dd9e4ee5f482cced21435ea8cc54c32f80562e39a5016b0496610cde565b81601d14156117c257507f29ba6a30de50542e261abfc7ee0c68911002d3acd4dd4c02ad59aa96805b20bb610cde565b81601e14156117f257507f103fcf1c8a98ebe50285f6e669077a579308311fd44bb6895d5da7ba7fd3564e610cde565b81601f141561182257507f166bdd01780976e655f5278260c638dcf10fe7c136f37c9152cbcaabef901f4d610cde565b816020141561185257507f2712c601a9b8b2abd396a619327095d3f1ea86a6c07d6df416a3973a1a4b3ce5610cde565b6040805162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600354640100000000900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600691909155600755565b600260045414156119ae576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260045560208201516119c190610e0f565b6119dd5760405162461bcd60e51b815260040161048e90612afc565b60005b826040015151811015611a3257611a0d83604001518281518110611a0057fe5b6020026020010151611210565b15611a2a5760405162461bcd60e51b815260040161048e90612d16565b6001016119e0565b50600080516020612ef683398151915281604051602001611a539190612dc7565b6040516020818303038152906040528051906020012060001c81611a7357fe5b068260a0015160001c14611a995760405162461bcd60e51b815260040161048e90612b29565b611aab81602001518260600151610469565b826080015114611acd5760405162461bcd60e51b815260040161048e90612aa1565b611ad682610888565b611af25760405162461bcd60e51b815260040161048e90612c67565b60005b826040015151811015611b495760016008600085604001518481518110611b1857fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101611af5565b50600081602001511215611d715780516001600160a01b0316611b7e5760405162461bcd60e51b815260040161048e90612b60565b8060c0015115611c9c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634000aea07f000000000000000000000000000000000000000000000000000000000000000083602001516000037f00000000000000000000000000000000000000000000000000000000000000008560000151604051602001611c179291906128c0565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c4493929190612938565b602060405180830381600087803b158015611c5e57600080fd5b505af1158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190612627565b50611d48565b8051602082015160405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263a9059cbb92611cf4926000919091039060040161291f565b602060405180830381600087803b158015611d0e57600080fd5b505af1158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d469190612627565b505b60065481602001516000031015611d715760405162461bcd60e51b815260040161048e90612bc0565b606081015115611e25577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb826040015183606001516040518363ffffffff1660e01b8152600401611dd192919061291f565b602060405180830381600087803b158015611deb57600080fd5b505af1158015611dff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e239190612627565b505b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190611e719030906004016128e7565b60206040518083038186803b158015611e8957600080fd5b505afa158015611e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec1919061285d565b60055560608201518051602090910151611edb9190612128565b5060608201515160035460808301516040517ff3843eddcfcac65d12d9f26261dab50671fdbf5dc44441816c8bbdace2411afd93611f2e93909264010000000090910463ffffffff16600119019161297c565b60405180910390a160608201517ff3843eddcfcac65d12d9f26261dab50671fdbf5dc44441816c8bbdace2411afd90600160200201516001600360049054906101000a900463ffffffff16038360a00151604051611f8e9392919061297c565b60405180910390a160005b826040015151811015611ffc577f5e58f77bbf94b46d8d896e29753e4458c6e59b48581e20ed58c9558e96f297ce83604001518281518110611fd757fe5b6020026020010151604051611fec9190612973565b60405180910390a1600101611f99565b5050600160045550565b80600001516001600160a01b03167f2c1ca5c14df2aba59d26842c5ff53f6817052ef34f6f7537f8b4c9e3805a5e50826020015160405161204791906129a1565b60405180910390a250565b600061205d306122d3565b15905090565b60005b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff1610156120cb576120a98163ffffffff16611225565b63ffffffff821660009081526001602081905260409091209190915501612066565b506120fb7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16611225565b6000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55565b60035460009063ffffffff6401000000009091048116907f0000000000000000000000000000000000000000000000000000000000000000811660020a168114156121a45760405162461bcd60e51b8152600401808060200182810382526030815260200180612f166030913960400191505060405180910390fd5b600263ffffffff82160460006121ba86866106c3565b905060008060015b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561226b576001851661222f578392506122108163ffffffff16611225565b63ffffffff82166000908152600160205260409020859055915061224b565b63ffffffff811660009081526001602052604090205492508391505b61225583836106c3565b9350600263ffffffff86160494506001016121c2565b50506003805463ffffffff198116601e600163ffffffff9384160183160682169081178355600090815260026020819052604090912094909455815467ffffffff00000000191664010000000094870190911693909302929092179091555090949350505050565b3b151590565b60405180604001604052806002906020820280368337509192915050565b8035610cde81612e83565b600082601f830112612312578081fd5b6040516040810181811067ffffffffffffffff8211171561232f57fe5b8060405250808385604086011115612345578384fd5b835b6002811015612366578135835260209283019290910190600101612347565b509195945050505050565b600082601f830112612381578081fd5b8135602067ffffffffffffffff82111561239757fe5b8082026123a5828201612e5f565b8381528281019086840183880185018910156123bf578687fd5b8693505b858410156123e15780358352600193909301929184019184016123c3565b50979650505050505050565b8035610cde81612e98565b600082601f830112612408578081fd5b813567ffffffffffffffff81111561241c57fe5b61242f601f8201601f1916602001612e5f565b818152846020838601011115612443578283fd5b816020850160208301379081016020019190915292915050565b60006040828403121561246e578081fd5b6040516040810167ffffffffffffffff828210818311171561248c57fe5b81604052829350843591506124a082612e83565b908252602084013590808211156124b657600080fd5b506124c3858286016123f8565b6020830152505092915050565b600060e082840312156124e1578081fd5b6124eb60e0612e5f565b90506124f6826122f7565b81526020820135602082015261250e604083016122f7565b604082015260608201356060820152608082013567ffffffffffffffff8082111561253857600080fd5b612544858386016123f8565b608084015260a084013591508082111561255d57600080fd5b5061256a848285016123f8565b60a08301525061257c60c083016123ed565b60c082015292915050565b600060e08284031215612598578081fd5b6125a260c0612e5f565b9050813567ffffffffffffffff808211156125bc57600080fd5b6125c8858386016123f8565b83526020840135602084015260408401359150808211156125e857600080fd5b506125f584828501612371565b6040830152506126088360608401612302565b606082015260a0820135608082015260c082013560a082015292915050565b600060208284031215612638578081fd5b81516104f281612e98565b600060208284031215612654578081fd5b5035919050565b6000806040838503121561266d578081fd5b50508035926020909101359150565b60008060008060608587031215612691578182fd5b843561269c81612e83565b935060208501359250604085013567ffffffffffffffff808211156126bf578384fd5b818701915087601f8301126126d2578384fd5b8135818111156126e0578485fd5b8860208285010111156126f1578485fd5b95989497505060200194505050565b6000806040838503121561266d578182fd5b600060208284031215612723578081fd5b813567ffffffffffffffff811115612739578182fd5b6104f48482850161245d565b600080600060608486031215612759578081fd5b833567ffffffffffffffff80821115612770578283fd5b61277c8783880161245d565b94506020860135915080821115612791578283fd5b61279d87838801612587565b935060408601359150808211156127b2578283fd5b506127bf868287016124d0565b9150509250925092565b6000602082840312156127da578081fd5b813567ffffffffffffffff8111156127f0578182fd5b6104f484828501612587565b6000806040838503121561280e578182fd5b823567ffffffffffffffff80821115612825578384fd5b61283186838701612587565b93506020850135915080821115612846578283fd5b50612853858286016124d0565b9150509250929050565b60006020828403121561286e578081fd5b5051919050565b60008151808452815b8181101561289a5760208185018101518683018201520161287e565b818111156128ab5782602083870101525b50601f01601f19169290920160200192915050565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b03851682528360208301526060604083015261295f6060830184612875565b95945050505050565b901515815260200190565b90815260200190565b600084825263ffffffff841660208301526060604083015261295f6060830184612875565b6000602082526129b46020830184612875565b9392505050565b60006102c08083526129cf81840186612875565b91505060208083018460005b60158110156129f8578151835291830191908301906001016129db565b505050509392505050565b6000610100808352612a1781840186612875565b91505060208083018460005b60078110156129f857815183529183019190830190600101612a23565b6020808252601c908201527f6f6e6c79206f776e65722063616e206265207265676973746572656400000000604082015260600190565b60208082526010908201526f6f6e6c79206f6d6e692062726964676560801b604082015260600190565b602080825260159082015274125b9d985b1a59081c1d589b1a58c8185b5bdd5b9d605a1b604082015260600190565b602080825260129082015271125b9d985b1a5908195e1d08185b5bdd5b9d60721b604082015260600190565b602080825260139082015272125b9d985b1a59081b595c9adb19481c9bdbdd606a1b604082015260600190565b6020808252601c908201527f496e636f72726563742065787465726e616c2064617461206861736800000000604082015260600190565b6020808252601e908201527f43616e277420776974686472617720746f207a65726f20616464726573730000604082015260600190565b6020808252600f908201526e6f6e6c7920676f7665726e616e636560881b604082015260600190565b6020808252602b908201527f616d6f756e74206973206c657373207468616e206d696e696d616c576974686460408201526a1c985dd85b105b5bdd5b9d60aa1b606082015260800190565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6020808252601f908201527f616d6f756e742066726f6d2062726964676520697320696e636f727265637400604082015260600190565b60208082526019908201527f496e76616c6964207472616e73616374696f6e2070726f6f6600000000000000604082015260600190565b6020808252601f908201527f70726f766964656420746f6b656e206973206e6f7420737570706f7274656400604082015260600190565b60208082526021908201527f62726964676520646964206e6f742073656e6420656e6f75676820746f6b656e6040820152607360f81b606082015260800190565b602080825260169082015275125b9c1d5d081a5cc8185b1c9958591e481cdc195b9d60521b604082015260600190565b60208082526017908201527f756e737570706f7274656420696e70757420636f756e74000000000000000000604082015260600190565b6020808252602a908201527f616d6f756e74206973206c6172676572207468616e206d6178696d756d4465706040820152691bdcda5d105b5bdd5b9d60b21b606082015260800190565b60006020825260018060a01b03808451166020840152602084015160408401528060408501511660608401525060608301516080830152608083015160e060a0840152612e18610100840182612875565b905060a0840151601f198483030160c0850152612e358282612875565b91505060c0840151151560e08401528091505092915050565b63ffffffff91909116815260200190565b60405181810167ffffffffffffffff81118282101715612e7b57fe5b604052919050565b6001600160a01b0381168114610f5b57600080fd5b8015158114610f5b57600080fdfe5f72696768742073686f756c6420626520696e7369646520746865206669656c64496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656430644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000014d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c65617665732063616e206265206164646564a264697066735822122080af6a2f88aae48ee8e390fc51f7bd353b77bb21a1dab3321f7c1ce5e69bd27664736f6c634300070600335f6c6576656c732073686f756c642062652067726561746572207468616e207a65726f0000000000000000000000008cb666dee6257590f5dd8a98e0c4131ff5d9a610000000000000000000000000a318dd4c45770e74491a08e3cdf5d0f01fecaffd000000000000000000000000000000000000000000000000000000000000001700000000000000000000000094c92f096437ab9958fc0a37f09348f30389ae79000000000000000000000000ca8d20f3e0144a72c6b5d576e9bd3fd8557e2b0400000000000000000000000059447362798334d3485c64d1e4870fde2ddc0d750000000000000000000000008a6494e7f88bd7546e89b57fc3008871ddea38700000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce0000000000000000000000000000000000000000000000000000000000000038",
+ "expectedAddress": "0x7BF481bdCE2756E6C734D01983A19127d473D142",
+ "title": "Tornado Pool implementation",
+ "constructorArgs": "0x0000000000000000000000008cb666dee6257590f5dd8a98e0c4131ff5d9a610000000000000000000000000a318dd4c45770e74491a08e3cdf5d0f01fecaffd000000000000000000000000000000000000000000000000000000000000001700000000000000000000000094c92f096437ab9958fc0a37f09348f30389ae79000000000000000000000000ca8d20f3e0144a72c6b5d576e9bd3fd8557e2b0400000000000000000000000059447362798334d3485c64d1e4870fde2ddc0d750000000000000000000000008a6494e7f88bd7546e89b57fc3008871ddea38700000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce0000000000000000000000000000000000000000000000000000000000000038",
+ "description": "Tornado Pool proxy implementation",
"dependsOn": [
- "deployer.contract.tornadocash.eth"
- ]
- },
- {
- "domain": "xdai-100.tornadocash.eth",
- "contract": "ETHTornado.sol",
- "bytecode": "0x610100604052600380546001600160401b03191690553480156200002257600080fd5b50604051620018c5380380620018c5833981810160405260808110156200004857600080fd5b508051602082015160408301516060909301519192909183838383808363ffffffff8216620000a95760405162461bcd60e51b8152600401808060200182810382526023815260200180620018a26023913960400191505060405180910390fd5b60208263ffffffff161062000105576040805162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015290519081900360640190fd5b6001600160e01b031960e083901b1660a0526001600160601b0319606082901b166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156200019e5763ffffffff811660009081526001602090815260408083208590559082905290208290556200019383838062000232565b91506001016200014d565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816200020f5760405162461bcd60e51b81526004018080602001828103825260258152602001806200183c6025913960400191505060405180910390fd5b5060609290921b6001600160601b03191660c0525060e052506200040a92505050565b600060008051602062001882833981519152831062000298576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b600080516020620018828339815191528210620002e75760405162461bcd60e51b8152600401808060200182810382526021815260200180620018616021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b1580156200033757600080fd5b505afa1580156200034c573d6000803e3d6000fd5b505050506040513d60408110156200036357600080fd5b5080516020909101519092509050600080516020620018828339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015620003d257600080fd5b505afa158015620003e7573d6000803e3d6000fd5b505050506040513d6040811015620003fe57600080fd5b50519695505050505050565b60805160601c60a05160e01c60c05160601c60e0516113d06200046c600039806105b852806109c75280610ed452806111c15250806106eb52806108e652508061091c52806110295280611095525080610e00528061111d52506113d06000f3fe60806040526004361061012a5760003560e01c80639fa12d0b116100ab578063e5285dcc1161006f578063e5285dcc14610487578063e8295588146104b1578063ec732959146104db578063ed33639f146104f0578063f178e47c14610505578063fc7e9c6f1461052f5761012a565b80639fa12d0b1461034b578063b214faa514610416578063ba70f75714610433578063c2b40ae414610448578063cd87a3b4146104725761012a565b80636d9833e3116100f25780636d9833e31461028e578063839df945146102b85780638bca6d16146102e25780638ea3099e146102f757806390eeb02b146103365761012a565b806317cc915c1461012f57806321a0adb61461016d5780632b7ac3f314610208578063414a37ba146102395780634ecf518b14610260575b600080fd5b34801561013b57600080fd5b506101596004803603602081101561015257600080fd5b5035610544565b604080519115158252519081900360200190f35b610206600480360360e081101561018357600080fd5b810190602081018135600160201b81111561019d57600080fd5b8201836020820111156101af57600080fd5b803590602001918460018302840111600160201b831117156101d057600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610559565b005b34801561021457600080fd5b5061021d6108e4565b604080516001600160a01b039092168252519081900360200190f35b34801561024557600080fd5b5061024e610908565b60408051918252519081900360200190f35b34801561026c57600080fd5b5061027561091a565b6040805163ffffffff9092168252519081900360200190f35b34801561029a57600080fd5b50610159600480360360208110156102b157600080fd5b503561093e565b3480156102c457600080fd5b50610159600480360360208110156102db57600080fd5b50356109b0565b3480156102ee57600080fd5b5061024e6109c5565b34801561030357600080fd5b5061024e6004803603606081101561031a57600080fd5b506001600160a01b0381351690602081013590604001356109e9565b34801561034257600080fd5b50610275610bb5565b34801561035757600080fd5b506103c66004803603602081101561036e57600080fd5b810190602081018135600160201b81111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460208302840111600160201b831117156103bb57600080fd5b509092509050610bc1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104025781810151838201526020016103ea565b505050509050019250505060405180910390f35b6102066004803603602081101561042c57600080fd5b5035610c60565b34801561043f57600080fd5b5061024e610d81565b34801561045457600080fd5b5061024e6004803603602081101561046b57600080fd5b5035610d9c565b34801561047e57600080fd5b50610275610dae565b34801561049357600080fd5b50610159600480360360208110156104aa57600080fd5b5035610db3565b3480156104bd57600080fd5b5061024e600480360360208110156104d457600080fd5b5035610dc8565b3480156104e757600080fd5b5061024e610dda565b3480156104fc57600080fd5b5061021d610dfe565b34801561051157600080fd5b5061024e6004803603602081101561052857600080fd5b5035610e22565b34801561053b57600080fd5b50610275610e34565b60056020526000908152604090205460ff1681565b600260045414156105b1576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026004557f000000000000000000000000000000000000000000000000000000000000000082111561062b576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b60008581526005602052604090205460ff161561068f576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b6106988661093e565b6106e9576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663695ef6f989896040518060c001604052808b60001c81526020018a60001c8152602001896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152506040518463ffffffff1660e01b8152600401808060200183600660200280838360005b8381101561079a578181015183820152602001610782565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156107ec57600080fd5b505af1158015610800573d6000803e3d6000fd5b505050506040513d602081101561081657600080fd5b5051610862576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152600560205260409020805460ff1916600117905561088784848484610e47565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506001600455505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805160206112ad83398151915281565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008161094d575060006109ab565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054841415610980576001925050506109ab565b63ffffffff811661098f5750601e5b6000190163ffffffff8082169083161415610958576000925050505b919050565b60066020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006000805160206112ad8339815191528310610a4d576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206112ad8339815191528210610a995760405162461bcd60e51b81526004018080602001828103825260218152602001806112586021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b158015610ae857600080fd5b505afa158015610afc573d6000803e3d6000fd5b505050506040513d6040811015610b1257600080fd5b50805160209091015190925090506000805160206112ad8339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b7f57600080fd5b505afa158015610b93573d6000803e3d6000fd5b505050506040513d6040811015610ba957600080fd5b50519695505050505050565b60035463ffffffff1681565b60608167ffffffffffffffff81118015610bda57600080fd5b50604051908082528060200260200182016040528015610c04578160200160208202803683370190505b50905060005b82811015610c5957610c2d848483818110610c2157fe5b90506020020135610db3565b15610c51576001828281518110610c4057fe5b911515602092830291909101909101525b600101610c0a565b5092915050565b60026004541415610cb8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260045560008181526006602052604090205460ff1615610d0b5760405162461bcd60e51b81526004018080602001828103825260218152602001806112cd6021913960400191505060405180910390fd5b6000610d1682611011565b6000838152600660205260409020805460ff191660011790559050610d396111bf565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506001600455565b60035463ffffffff1660009081526002602052604090205490565b60026020526000908152604090205481565b601e81565b60009081526005602052604090205460ff1690565b60016020526000908152604090205481565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020819052908152604090205481565b600354600160201b900463ffffffff1681565b3415610e845760405162461bcd60e51b81526004018080602001828103825260358152602001806113666035913960400191505060405180910390fd5b8015610ec15760405162461bcd60e51b81526004018080602001828103825260348152602001806112796034913960400191505060405180910390fd5b6040516000906001600160a01b038616907f0000000000000000000000000000000000000000000000000000000000000000859003908381818185875af1925050503d8060008114610f2f576040519150601f19603f3d011682016040523d82523d6000602084013e610f34565b606091505b5050905080610f745760405162461bcd60e51b81526004018080602001828103825260258152602001806112ee6025913960400191505060405180910390fd5b821561100a576040516001600160a01b038516908490600081818185875af1925050503d8060008114610fc3576040519150601f19603f3d011682016040523d82523d6000602084013e610fc8565b606091505b5050809150508061100a5760405162461bcd60e51b81526004018080602001828103825260238152602001806113136023913960400191505060405180910390fd5b5050505050565b60035460009063ffffffff600160201b9091048116907f0000000000000000000000000000000000000000000000000000000000000000811660020a1681141561108c5760405162461bcd60e51b81526004018080602001828103825260308152602001806113366030913960400191505060405180910390fd5b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561115957600185166110fc5763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150611118565b63ffffffff811660009081526020819052604090205492508391505b6111437f000000000000000000000000000000000000000000000000000000000000000084846109e9565b9350600263ffffffff8616049450600101611093565b505060038054601e63ffffffff8083166001908101821692909206811663ffffffff199093168317845560009283526002602052604090922094909455815493860116600160201b0267ffffffff00000000199093169290921790915550909392505050565b7f0000000000000000000000000000000000000000000000000000000000000000341461121d5760405162461bcd60e51b81526004018080602001828103825260388152602001806112206038913960400191505060405180910390fd5b56fe506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e5f72696768742073686f756c6420626520696e7369646520746865206669656c64526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e636530644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465647061796d656e7420746f205f726563697069656e7420646964206e6f7420676f20746872757061796d656e7420746f205f72656c6179657220646964206e6f7420676f20746872754d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c65617665732063616e2062652061646465644d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365a26469706673582212208ceda25717bed5d981a763bf8fc532aaf1c7aafa06a512f58b473b522acadc9964736f6c6343000706003364656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e20305f72696768742073686f756c6420626520696e7369646520746865206669656c6430644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f6c6576656c732073686f756c642062652067726561746572207468616e207a65726f000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a0000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000014",
- "expectedAddress": "0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD",
- "title": "Tornado.cash instance for 100 of xDAI",
- "constructorArgs": "0x000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a0000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000014",
- "description": "Tornado cash instance for 100 of xDAI",
- "dependsOn": [
- "deployer.contract.tornadocash.eth",
+ "deployerL2.contract.tornadocash.eth",
"hasher.contract.tornadocash.eth",
- "verifier.contract.tornadocash.eth"
- ]
+ "verifier2.contract.tornadocash.eth",
+ "verifier16.contract.tornadocash.eth"
+ ],
+ "isL1Contract": false
},
{
- "domain": "xdai-1000.tornadocash.eth",
- "contract": "ETHTornado.sol",
- "bytecode": "0x610100604052600380546001600160401b03191690553480156200002257600080fd5b50604051620018c5380380620018c5833981810160405260808110156200004857600080fd5b508051602082015160408301516060909301519192909183838383808363ffffffff8216620000a95760405162461bcd60e51b8152600401808060200182810382526023815260200180620018a26023913960400191505060405180910390fd5b60208263ffffffff161062000105576040805162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015290519081900360640190fd5b6001600160e01b031960e083901b1660a0526001600160601b0319606082901b166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156200019e5763ffffffff811660009081526001602090815260408083208590559082905290208290556200019383838062000232565b91506001016200014d565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816200020f5760405162461bcd60e51b81526004018080602001828103825260258152602001806200183c6025913960400191505060405180910390fd5b5060609290921b6001600160601b03191660c0525060e052506200040a92505050565b600060008051602062001882833981519152831062000298576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b600080516020620018828339815191528210620002e75760405162461bcd60e51b8152600401808060200182810382526021815260200180620018616021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b1580156200033757600080fd5b505afa1580156200034c573d6000803e3d6000fd5b505050506040513d60408110156200036357600080fd5b5080516020909101519092509050600080516020620018828339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015620003d257600080fd5b505afa158015620003e7573d6000803e3d6000fd5b505050506040513d6040811015620003fe57600080fd5b50519695505050505050565b60805160601c60a05160e01c60c05160601c60e0516113d06200046c600039806105b852806109c75280610ed452806111c15250806106eb52806108e652508061091c52806110295280611095525080610e00528061111d52506113d06000f3fe60806040526004361061012a5760003560e01c80639fa12d0b116100ab578063e5285dcc1161006f578063e5285dcc14610487578063e8295588146104b1578063ec732959146104db578063ed33639f146104f0578063f178e47c14610505578063fc7e9c6f1461052f5761012a565b80639fa12d0b1461034b578063b214faa514610416578063ba70f75714610433578063c2b40ae414610448578063cd87a3b4146104725761012a565b80636d9833e3116100f25780636d9833e31461028e578063839df945146102b85780638bca6d16146102e25780638ea3099e146102f757806390eeb02b146103365761012a565b806317cc915c1461012f57806321a0adb61461016d5780632b7ac3f314610208578063414a37ba146102395780634ecf518b14610260575b600080fd5b34801561013b57600080fd5b506101596004803603602081101561015257600080fd5b5035610544565b604080519115158252519081900360200190f35b610206600480360360e081101561018357600080fd5b810190602081018135600160201b81111561019d57600080fd5b8201836020820111156101af57600080fd5b803590602001918460018302840111600160201b831117156101d057600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610559565b005b34801561021457600080fd5b5061021d6108e4565b604080516001600160a01b039092168252519081900360200190f35b34801561024557600080fd5b5061024e610908565b60408051918252519081900360200190f35b34801561026c57600080fd5b5061027561091a565b6040805163ffffffff9092168252519081900360200190f35b34801561029a57600080fd5b50610159600480360360208110156102b157600080fd5b503561093e565b3480156102c457600080fd5b50610159600480360360208110156102db57600080fd5b50356109b0565b3480156102ee57600080fd5b5061024e6109c5565b34801561030357600080fd5b5061024e6004803603606081101561031a57600080fd5b506001600160a01b0381351690602081013590604001356109e9565b34801561034257600080fd5b50610275610bb5565b34801561035757600080fd5b506103c66004803603602081101561036e57600080fd5b810190602081018135600160201b81111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460208302840111600160201b831117156103bb57600080fd5b509092509050610bc1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104025781810151838201526020016103ea565b505050509050019250505060405180910390f35b6102066004803603602081101561042c57600080fd5b5035610c60565b34801561043f57600080fd5b5061024e610d81565b34801561045457600080fd5b5061024e6004803603602081101561046b57600080fd5b5035610d9c565b34801561047e57600080fd5b50610275610dae565b34801561049357600080fd5b50610159600480360360208110156104aa57600080fd5b5035610db3565b3480156104bd57600080fd5b5061024e600480360360208110156104d457600080fd5b5035610dc8565b3480156104e757600080fd5b5061024e610dda565b3480156104fc57600080fd5b5061021d610dfe565b34801561051157600080fd5b5061024e6004803603602081101561052857600080fd5b5035610e22565b34801561053b57600080fd5b50610275610e34565b60056020526000908152604090205460ff1681565b600260045414156105b1576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026004557f000000000000000000000000000000000000000000000000000000000000000082111561062b576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b60008581526005602052604090205460ff161561068f576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b6106988661093e565b6106e9576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663695ef6f989896040518060c001604052808b60001c81526020018a60001c8152602001896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152506040518463ffffffff1660e01b8152600401808060200183600660200280838360005b8381101561079a578181015183820152602001610782565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156107ec57600080fd5b505af1158015610800573d6000803e3d6000fd5b505050506040513d602081101561081657600080fd5b5051610862576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152600560205260409020805460ff1916600117905561088784848484610e47565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506001600455505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805160206112ad83398151915281565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008161094d575060006109ab565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054841415610980576001925050506109ab565b63ffffffff811661098f5750601e5b6000190163ffffffff8082169083161415610958576000925050505b919050565b60066020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006000805160206112ad8339815191528310610a4d576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206112ad8339815191528210610a995760405162461bcd60e51b81526004018080602001828103825260218152602001806112586021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b158015610ae857600080fd5b505afa158015610afc573d6000803e3d6000fd5b505050506040513d6040811015610b1257600080fd5b50805160209091015190925090506000805160206112ad8339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b7f57600080fd5b505afa158015610b93573d6000803e3d6000fd5b505050506040513d6040811015610ba957600080fd5b50519695505050505050565b60035463ffffffff1681565b60608167ffffffffffffffff81118015610bda57600080fd5b50604051908082528060200260200182016040528015610c04578160200160208202803683370190505b50905060005b82811015610c5957610c2d848483818110610c2157fe5b90506020020135610db3565b15610c51576001828281518110610c4057fe5b911515602092830291909101909101525b600101610c0a565b5092915050565b60026004541415610cb8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260045560008181526006602052604090205460ff1615610d0b5760405162461bcd60e51b81526004018080602001828103825260218152602001806112cd6021913960400191505060405180910390fd5b6000610d1682611011565b6000838152600660205260409020805460ff191660011790559050610d396111bf565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506001600455565b60035463ffffffff1660009081526002602052604090205490565b60026020526000908152604090205481565b601e81565b60009081526005602052604090205460ff1690565b60016020526000908152604090205481565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020819052908152604090205481565b600354600160201b900463ffffffff1681565b3415610e845760405162461bcd60e51b81526004018080602001828103825260358152602001806113666035913960400191505060405180910390fd5b8015610ec15760405162461bcd60e51b81526004018080602001828103825260348152602001806112796034913960400191505060405180910390fd5b6040516000906001600160a01b038616907f0000000000000000000000000000000000000000000000000000000000000000859003908381818185875af1925050503d8060008114610f2f576040519150601f19603f3d011682016040523d82523d6000602084013e610f34565b606091505b5050905080610f745760405162461bcd60e51b81526004018080602001828103825260258152602001806112ee6025913960400191505060405180910390fd5b821561100a576040516001600160a01b038516908490600081818185875af1925050503d8060008114610fc3576040519150601f19603f3d011682016040523d82523d6000602084013e610fc8565b606091505b5050809150508061100a5760405162461bcd60e51b81526004018080602001828103825260238152602001806113136023913960400191505060405180910390fd5b5050505050565b60035460009063ffffffff600160201b9091048116907f0000000000000000000000000000000000000000000000000000000000000000811660020a1681141561108c5760405162461bcd60e51b81526004018080602001828103825260308152602001806113366030913960400191505060405180910390fd5b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561115957600185166110fc5763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150611118565b63ffffffff811660009081526020819052604090205492508391505b6111437f000000000000000000000000000000000000000000000000000000000000000084846109e9565b9350600263ffffffff8616049450600101611093565b505060038054601e63ffffffff8083166001908101821692909206811663ffffffff199093168317845560009283526002602052604090922094909455815493860116600160201b0267ffffffff00000000199093169290921790915550909392505050565b7f0000000000000000000000000000000000000000000000000000000000000000341461121d5760405162461bcd60e51b81526004018080602001828103825260388152602001806112206038913960400191505060405180910390fd5b56fe506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e5f72696768742073686f756c6420626520696e7369646520746865206669656c64526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e636530644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465647061796d656e7420746f205f726563697069656e7420646964206e6f7420676f20746872757061796d656e7420746f205f72656c6179657220646964206e6f7420676f20746872754d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c65617665732063616e2062652061646465644d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365a26469706673582212208ceda25717bed5d981a763bf8fc532aaf1c7aafa06a512f58b473b522acadc9964736f6c6343000706003364656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e20305f72696768742073686f756c6420626520696e7369646520746865206669656c6430644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f6c6576656c732073686f756c642062652067726561746572207468616e207a65726f000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a00000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000000014",
- "expectedAddress": "0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178",
- "title": "Tornado.cash instance for 1,000 of xDAI",
- "constructorArgs": "0x000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a00000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000000014",
- "description": "Tornado cash instance for 1,000 of xDAI",
+ "domain": "proxy.contract.tornadocash.eth",
+ "contract": "CrossChainUpgradeableProxy.sol",
+ "bytecode": "0x60e06040523480156200001157600080fd5b5060405162000eb738038062000eb7833981810160405260a08110156200003757600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006357600080fd5b9083019060208201858111156200007957600080fd5b82516401000000008111828201881017156200009457600080fd5b82525081516020918201929091019080838360005b83811015620000c3578181015183820152602001620000a9565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b506040908152602082015191015190925090508181858781878281620001178262000179565b8051156200013857620001368282620001f060201b620005e31760201c565b505b50620001419050565b6200014c826200021f565b5050506001600160601b0319606093841b8116608052921b90911660c05260a05250620004009350505050565b6200018f816200024360201b6200060f1760201c565b620001cc5760405162461bcd60e51b815260040180806020018281038252603681526020018062000e5b6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606062000218838360405180606001604052806027815260200162000e346027913962000249565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b6060620002568462000243565b620002935760405162461bcd60e51b815260040180806020018281038252602681526020018062000e916026913960400191505060405180910390fd5b600080856001600160a01b0316856040518082805190602001908083835b60208310620002d25780518252601f199092019160209182019101620002b1565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811462000334576040519150601f19603f3d011682016040523d82523d6000602084013e62000339565b606091505b5090925090506200034c82828662000356565b9695505050505050565b606083156200036757508162000218565b825115620003785782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620003c4578181015183820152602001620003aa565b50505050905090810190601f168015620003f25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60805160601c60a05160c05160601c6109e86200044c6000398061036b52806104e05250806102bc52806105c1525080610263528061029252806102dd528061039552506109e86000f3fe60806040526004361061008a5760003560e01c80635c60da1b116100595780635c60da1b146101ae5780638da5cb5b146101c35780638f283970146101d8578063f851a4401461020b578063ff4d18151461022057610099565b80630ba54df6146100a1578063270af851146100d25780633659cfe6146100fb5780634f1ef2861461012e57610099565b3661009957610097610247565b005b610097610247565b3480156100ad57600080fd5b506100b6610261565b604080516001600160a01b039092168252519081900360200190f35b3480156100de57600080fd5b506100e7610285565b604080519115158252519081900360200190f35b34801561010757600080fd5b506100976004803603602081101561011e57600080fd5b50356001600160a01b0316610429565b6100976004803603604081101561014457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561016f57600080fd5b82018360208201111561018157600080fd5b803590602001918460018302840111640100000000831117156101a357600080fd5b50909250905061044f565b3480156101ba57600080fd5b506100b66104b8565b3480156101cf57600080fd5b506100b66104de565b3480156101e457600080fd5b50610097600480360360208110156101fb57600080fd5b50356001600160a01b0316610502565b34801561021757600080fd5b506100b66105a8565b34801561022c57600080fd5b506102356105bf565b60408051918252519081900360200190f35b61024f61025f565b61025f61025a610615565b61063a565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561036257507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639e307dff6040518163ffffffff1660e01b815260040160206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d602081101561035e57600080fd5b5051145b801561042357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d67bdd256040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ec57600080fd5b505afa158015610400573d6000803e3d6000fd5b505050506040513d602081101561041657600080fd5b50516001600160a01b0316145b90505b90565b610431610285565b156104445761043f8161065e565b61044c565b61044c610247565b50565b610457610285565b156104ab576104658361065e565b6104a58383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506105e392505050565b506104b3565b6104b3610247565b505050565b60006104c2610285565b156104d6576104cf610615565b9050610426565b610426610247565b7f000000000000000000000000000000000000000000000000000000000000000081565b61050a610285565b15610444576001600160a01b0381166105545760405162461bcd60e51b815260040180806020018281038252603a8152602001806108f6603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61057d61069e565b604080516001600160a01b03928316815291841660208301528051918290030190a161043f816106c3565b60006105b2610285565b156104d6576104cf61069e565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606106088383604051806060016040528060278152602001610930602791396106e7565b9392505050565b3b151590565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610659573d6000f35b3d6000fd5b610667816107e9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60606106f28461060f565b61072d5760405162461bcd60e51b815260040180806020018281038252602681526020018061098d6026913960400191505060405180910390fd5b600080856001600160a01b0316856040518082805190602001908083835b6020831061076a5780518252601f19909201916020918201910161074b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146107ca576040519150601f19603f3d011682016040523d82523d6000602084013e6107cf565b606091505b50915091506107df828286610851565b9695505050505050565b6107f28161060f565b61082d5760405162461bcd60e51b81526004018080602001828103825260368152602001806109576036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b60608315610860575081610608565b8251156108705782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108ba5781810151838201526020016108a2565b50505050905090810190601f1680156108e75780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374a2646970667358221220fac7decadce2928c9ad9cf8145d5db4c44ff466bbb7236fb8f584932654d6f4d64736f6c63430007060033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000007bf481bdce2756e6c734d01983a19127d473d1420000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000162e898bd0aacb578c8d5f8d6ca588c13d2a383f00000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000044e4a3011600000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000",
+ "expectedAddress": "0xB4333BB9063d1DF5b53f8e755A9715027D1D9B06",
+ "title": "Cross-chain Upgradeable Proxy",
+ "constructorArgs": "0x0000000000000000000000007bf481bdce2756e6c734d01983a19127d473d1420000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000162e898bd0aacb578c8d5f8d6ca588c13d2a383f00000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000044e4a3011600000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000",
+ "description": "Upgradability proxy contract for Tornado Pool owned by TornadoCash governance",
"dependsOn": [
- "deployer.contract.tornadocash.eth",
- "hasher.contract.tornadocash.eth",
- "verifier.contract.tornadocash.eth"
- ]
- },
- {
- "domain": "xdai-10000.tornadocash.eth",
- "contract": "ETHTornado.sol",
- "bytecode": "0x610100604052600380546001600160401b03191690553480156200002257600080fd5b50604051620018c5380380620018c5833981810160405260808110156200004857600080fd5b508051602082015160408301516060909301519192909183838383808363ffffffff8216620000a95760405162461bcd60e51b8152600401808060200182810382526023815260200180620018a26023913960400191505060405180910390fd5b60208263ffffffff161062000105576040805162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015290519081900360640190fd5b6001600160e01b031960e083901b1660a0526001600160601b0319606082901b166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156200019e5763ffffffff811660009081526001602090815260408083208590559082905290208290556200019383838062000232565b91506001016200014d565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816200020f5760405162461bcd60e51b81526004018080602001828103825260258152602001806200183c6025913960400191505060405180910390fd5b5060609290921b6001600160601b03191660c0525060e052506200040a92505050565b600060008051602062001882833981519152831062000298576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b600080516020620018828339815191528210620002e75760405162461bcd60e51b8152600401808060200182810382526021815260200180620018616021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b1580156200033757600080fd5b505afa1580156200034c573d6000803e3d6000fd5b505050506040513d60408110156200036357600080fd5b5080516020909101519092509050600080516020620018828339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015620003d257600080fd5b505afa158015620003e7573d6000803e3d6000fd5b505050506040513d6040811015620003fe57600080fd5b50519695505050505050565b60805160601c60a05160e01c60c05160601c60e0516113d06200046c600039806105b852806109c75280610ed452806111c15250806106eb52806108e652508061091c52806110295280611095525080610e00528061111d52506113d06000f3fe60806040526004361061012a5760003560e01c80639fa12d0b116100ab578063e5285dcc1161006f578063e5285dcc14610487578063e8295588146104b1578063ec732959146104db578063ed33639f146104f0578063f178e47c14610505578063fc7e9c6f1461052f5761012a565b80639fa12d0b1461034b578063b214faa514610416578063ba70f75714610433578063c2b40ae414610448578063cd87a3b4146104725761012a565b80636d9833e3116100f25780636d9833e31461028e578063839df945146102b85780638bca6d16146102e25780638ea3099e146102f757806390eeb02b146103365761012a565b806317cc915c1461012f57806321a0adb61461016d5780632b7ac3f314610208578063414a37ba146102395780634ecf518b14610260575b600080fd5b34801561013b57600080fd5b506101596004803603602081101561015257600080fd5b5035610544565b604080519115158252519081900360200190f35b610206600480360360e081101561018357600080fd5b810190602081018135600160201b81111561019d57600080fd5b8201836020820111156101af57600080fd5b803590602001918460018302840111600160201b831117156101d057600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610559565b005b34801561021457600080fd5b5061021d6108e4565b604080516001600160a01b039092168252519081900360200190f35b34801561024557600080fd5b5061024e610908565b60408051918252519081900360200190f35b34801561026c57600080fd5b5061027561091a565b6040805163ffffffff9092168252519081900360200190f35b34801561029a57600080fd5b50610159600480360360208110156102b157600080fd5b503561093e565b3480156102c457600080fd5b50610159600480360360208110156102db57600080fd5b50356109b0565b3480156102ee57600080fd5b5061024e6109c5565b34801561030357600080fd5b5061024e6004803603606081101561031a57600080fd5b506001600160a01b0381351690602081013590604001356109e9565b34801561034257600080fd5b50610275610bb5565b34801561035757600080fd5b506103c66004803603602081101561036e57600080fd5b810190602081018135600160201b81111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460208302840111600160201b831117156103bb57600080fd5b509092509050610bc1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104025781810151838201526020016103ea565b505050509050019250505060405180910390f35b6102066004803603602081101561042c57600080fd5b5035610c60565b34801561043f57600080fd5b5061024e610d81565b34801561045457600080fd5b5061024e6004803603602081101561046b57600080fd5b5035610d9c565b34801561047e57600080fd5b50610275610dae565b34801561049357600080fd5b50610159600480360360208110156104aa57600080fd5b5035610db3565b3480156104bd57600080fd5b5061024e600480360360208110156104d457600080fd5b5035610dc8565b3480156104e757600080fd5b5061024e610dda565b3480156104fc57600080fd5b5061021d610dfe565b34801561051157600080fd5b5061024e6004803603602081101561052857600080fd5b5035610e22565b34801561053b57600080fd5b50610275610e34565b60056020526000908152604090205460ff1681565b600260045414156105b1576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026004557f000000000000000000000000000000000000000000000000000000000000000082111561062b576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b60008581526005602052604090205460ff161561068f576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b6106988661093e565b6106e9576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663695ef6f989896040518060c001604052808b60001c81526020018a60001c8152602001896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152506040518463ffffffff1660e01b8152600401808060200183600660200280838360005b8381101561079a578181015183820152602001610782565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156107ec57600080fd5b505af1158015610800573d6000803e3d6000fd5b505050506040513d602081101561081657600080fd5b5051610862576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152600560205260409020805460ff1916600117905561088784848484610e47565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506001600455505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805160206112ad83398151915281565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008161094d575060006109ab565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054841415610980576001925050506109ab565b63ffffffff811661098f5750601e5b6000190163ffffffff8082169083161415610958576000925050505b919050565b60066020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006000805160206112ad8339815191528310610a4d576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206112ad8339815191528210610a995760405162461bcd60e51b81526004018080602001828103825260218152602001806112586021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b158015610ae857600080fd5b505afa158015610afc573d6000803e3d6000fd5b505050506040513d6040811015610b1257600080fd5b50805160209091015190925090506000805160206112ad8339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b7f57600080fd5b505afa158015610b93573d6000803e3d6000fd5b505050506040513d6040811015610ba957600080fd5b50519695505050505050565b60035463ffffffff1681565b60608167ffffffffffffffff81118015610bda57600080fd5b50604051908082528060200260200182016040528015610c04578160200160208202803683370190505b50905060005b82811015610c5957610c2d848483818110610c2157fe5b90506020020135610db3565b15610c51576001828281518110610c4057fe5b911515602092830291909101909101525b600101610c0a565b5092915050565b60026004541415610cb8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260045560008181526006602052604090205460ff1615610d0b5760405162461bcd60e51b81526004018080602001828103825260218152602001806112cd6021913960400191505060405180910390fd5b6000610d1682611011565b6000838152600660205260409020805460ff191660011790559050610d396111bf565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506001600455565b60035463ffffffff1660009081526002602052604090205490565b60026020526000908152604090205481565b601e81565b60009081526005602052604090205460ff1690565b60016020526000908152604090205481565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020819052908152604090205481565b600354600160201b900463ffffffff1681565b3415610e845760405162461bcd60e51b81526004018080602001828103825260358152602001806113666035913960400191505060405180910390fd5b8015610ec15760405162461bcd60e51b81526004018080602001828103825260348152602001806112796034913960400191505060405180910390fd5b6040516000906001600160a01b038616907f0000000000000000000000000000000000000000000000000000000000000000859003908381818185875af1925050503d8060008114610f2f576040519150601f19603f3d011682016040523d82523d6000602084013e610f34565b606091505b5050905080610f745760405162461bcd60e51b81526004018080602001828103825260258152602001806112ee6025913960400191505060405180910390fd5b821561100a576040516001600160a01b038516908490600081818185875af1925050503d8060008114610fc3576040519150601f19603f3d011682016040523d82523d6000602084013e610fc8565b606091505b5050809150508061100a5760405162461bcd60e51b81526004018080602001828103825260238152602001806113136023913960400191505060405180910390fd5b5050505050565b60035460009063ffffffff600160201b9091048116907f0000000000000000000000000000000000000000000000000000000000000000811660020a1681141561108c5760405162461bcd60e51b81526004018080602001828103825260308152602001806113366030913960400191505060405180910390fd5b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561115957600185166110fc5763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150611118565b63ffffffff811660009081526020819052604090205492508391505b6111437f000000000000000000000000000000000000000000000000000000000000000084846109e9565b9350600263ffffffff8616049450600101611093565b505060038054601e63ffffffff8083166001908101821692909206811663ffffffff199093168317845560009283526002602052604090922094909455815493860116600160201b0267ffffffff00000000199093169290921790915550909392505050565b7f0000000000000000000000000000000000000000000000000000000000000000341461121d5760405162461bcd60e51b81526004018080602001828103825260388152602001806112206038913960400191505060405180910390fd5b56fe506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e5f72696768742073686f756c6420626520696e7369646520746865206669656c64526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e636530644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465647061796d656e7420746f205f726563697069656e7420646964206e6f7420676f20746872757061796d656e7420746f205f72656c6179657220646964206e6f7420676f20746872754d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c65617665732063616e2062652061646465644d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365a26469706673582212208ceda25717bed5d981a763bf8fc532aaf1c7aafa06a512f58b473b522acadc9964736f6c6343000706003364656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e20305f72696768742073686f756c6420626520696e7369646520746865206669656c6430644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f6c6576656c732073686f756c642062652067726561746572207468616e207a65726f000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a00000000000000000000000000000000000000000000021e19e0c9bab24000000000000000000000000000000000000000000000000000000000000000000014",
- "expectedAddress": "0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040",
- "title": "Tornado.cash instance for 10,000 of xDAI",
- "constructorArgs": "0x000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a00000000000000000000000000000000000000000000021e19e0c9bab24000000000000000000000000000000000000000000000000000000000000000000014",
- "description": "Tornado cash instance for 10,000 of xDAI",
- "dependsOn": [
- "deployer.contract.tornadocash.eth",
- "hasher.contract.tornadocash.eth",
- "verifier.contract.tornadocash.eth"
- ]
- },
- {
- "domain": "xdai-100000.tornadocash.eth",
- "contract": "ETHTornado.sol",
- "bytecode": "0x610100604052600380546001600160401b03191690553480156200002257600080fd5b50604051620018c5380380620018c5833981810160405260808110156200004857600080fd5b508051602082015160408301516060909301519192909183838383808363ffffffff8216620000a95760405162461bcd60e51b8152600401808060200182810382526023815260200180620018a26023913960400191505060405180910390fd5b60208263ffffffff161062000105576040805162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015290519081900360640190fd5b6001600160e01b031960e083901b1660a0526001600160601b0319606082901b166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156200019e5763ffffffff811660009081526001602090815260408083208590559082905290208290556200019383838062000232565b91506001016200014d565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816200020f5760405162461bcd60e51b81526004018080602001828103825260258152602001806200183c6025913960400191505060405180910390fd5b5060609290921b6001600160601b03191660c0525060e052506200040a92505050565b600060008051602062001882833981519152831062000298576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b600080516020620018828339815191528210620002e75760405162461bcd60e51b8152600401808060200182810382526021815260200180620018616021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b1580156200033757600080fd5b505afa1580156200034c573d6000803e3d6000fd5b505050506040513d60408110156200036357600080fd5b5080516020909101519092509050600080516020620018828339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015620003d257600080fd5b505afa158015620003e7573d6000803e3d6000fd5b505050506040513d6040811015620003fe57600080fd5b50519695505050505050565b60805160601c60a05160e01c60c05160601c60e0516113d06200046c600039806105b852806109c75280610ed452806111c15250806106eb52806108e652508061091c52806110295280611095525080610e00528061111d52506113d06000f3fe60806040526004361061012a5760003560e01c80639fa12d0b116100ab578063e5285dcc1161006f578063e5285dcc14610487578063e8295588146104b1578063ec732959146104db578063ed33639f146104f0578063f178e47c14610505578063fc7e9c6f1461052f5761012a565b80639fa12d0b1461034b578063b214faa514610416578063ba70f75714610433578063c2b40ae414610448578063cd87a3b4146104725761012a565b80636d9833e3116100f25780636d9833e31461028e578063839df945146102b85780638bca6d16146102e25780638ea3099e146102f757806390eeb02b146103365761012a565b806317cc915c1461012f57806321a0adb61461016d5780632b7ac3f314610208578063414a37ba146102395780634ecf518b14610260575b600080fd5b34801561013b57600080fd5b506101596004803603602081101561015257600080fd5b5035610544565b604080519115158252519081900360200190f35b610206600480360360e081101561018357600080fd5b810190602081018135600160201b81111561019d57600080fd5b8201836020820111156101af57600080fd5b803590602001918460018302840111600160201b831117156101d057600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610559565b005b34801561021457600080fd5b5061021d6108e4565b604080516001600160a01b039092168252519081900360200190f35b34801561024557600080fd5b5061024e610908565b60408051918252519081900360200190f35b34801561026c57600080fd5b5061027561091a565b6040805163ffffffff9092168252519081900360200190f35b34801561029a57600080fd5b50610159600480360360208110156102b157600080fd5b503561093e565b3480156102c457600080fd5b50610159600480360360208110156102db57600080fd5b50356109b0565b3480156102ee57600080fd5b5061024e6109c5565b34801561030357600080fd5b5061024e6004803603606081101561031a57600080fd5b506001600160a01b0381351690602081013590604001356109e9565b34801561034257600080fd5b50610275610bb5565b34801561035757600080fd5b506103c66004803603602081101561036e57600080fd5b810190602081018135600160201b81111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460208302840111600160201b831117156103bb57600080fd5b509092509050610bc1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104025781810151838201526020016103ea565b505050509050019250505060405180910390f35b6102066004803603602081101561042c57600080fd5b5035610c60565b34801561043f57600080fd5b5061024e610d81565b34801561045457600080fd5b5061024e6004803603602081101561046b57600080fd5b5035610d9c565b34801561047e57600080fd5b50610275610dae565b34801561049357600080fd5b50610159600480360360208110156104aa57600080fd5b5035610db3565b3480156104bd57600080fd5b5061024e600480360360208110156104d457600080fd5b5035610dc8565b3480156104e757600080fd5b5061024e610dda565b3480156104fc57600080fd5b5061021d610dfe565b34801561051157600080fd5b5061024e6004803603602081101561052857600080fd5b5035610e22565b34801561053b57600080fd5b50610275610e34565b60056020526000908152604090205460ff1681565b600260045414156105b1576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026004557f000000000000000000000000000000000000000000000000000000000000000082111561062b576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b60008581526005602052604090205460ff161561068f576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b6106988661093e565b6106e9576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663695ef6f989896040518060c001604052808b60001c81526020018a60001c8152602001896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152506040518463ffffffff1660e01b8152600401808060200183600660200280838360005b8381101561079a578181015183820152602001610782565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156107ec57600080fd5b505af1158015610800573d6000803e3d6000fd5b505050506040513d602081101561081657600080fd5b5051610862576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152600560205260409020805460ff1916600117905561088784848484610e47565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506001600455505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805160206112ad83398151915281565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008161094d575060006109ab565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054841415610980576001925050506109ab565b63ffffffff811661098f5750601e5b6000190163ffffffff8082169083161415610958576000925050505b919050565b60066020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006000805160206112ad8339815191528310610a4d576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206112ad8339815191528210610a995760405162461bcd60e51b81526004018080602001828103825260218152602001806112586021913960400191505060405180910390fd5b6040805163f47d33b560e01b8152600481018590526000602482018190528251869391926001600160a01b0389169263f47d33b592604480840193829003018186803b158015610ae857600080fd5b505afa158015610afc573d6000803e3d6000fd5b505050506040513d6040811015610b1257600080fd5b50805160209091015190925090506000805160206112ad8339815191528483089150856001600160a01b031663f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b7f57600080fd5b505afa158015610b93573d6000803e3d6000fd5b505050506040513d6040811015610ba957600080fd5b50519695505050505050565b60035463ffffffff1681565b60608167ffffffffffffffff81118015610bda57600080fd5b50604051908082528060200260200182016040528015610c04578160200160208202803683370190505b50905060005b82811015610c5957610c2d848483818110610c2157fe5b90506020020135610db3565b15610c51576001828281518110610c4057fe5b911515602092830291909101909101525b600101610c0a565b5092915050565b60026004541415610cb8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260045560008181526006602052604090205460ff1615610d0b5760405162461bcd60e51b81526004018080602001828103825260218152602001806112cd6021913960400191505060405180910390fd5b6000610d1682611011565b6000838152600660205260409020805460ff191660011790559050610d396111bf565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506001600455565b60035463ffffffff1660009081526002602052604090205490565b60026020526000908152604090205481565b601e81565b60009081526005602052604090205460ff1690565b60016020526000908152604090205481565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020819052908152604090205481565b600354600160201b900463ffffffff1681565b3415610e845760405162461bcd60e51b81526004018080602001828103825260358152602001806113666035913960400191505060405180910390fd5b8015610ec15760405162461bcd60e51b81526004018080602001828103825260348152602001806112796034913960400191505060405180910390fd5b6040516000906001600160a01b038616907f0000000000000000000000000000000000000000000000000000000000000000859003908381818185875af1925050503d8060008114610f2f576040519150601f19603f3d011682016040523d82523d6000602084013e610f34565b606091505b5050905080610f745760405162461bcd60e51b81526004018080602001828103825260258152602001806112ee6025913960400191505060405180910390fd5b821561100a576040516001600160a01b038516908490600081818185875af1925050503d8060008114610fc3576040519150601f19603f3d011682016040523d82523d6000602084013e610fc8565b606091505b5050809150508061100a5760405162461bcd60e51b81526004018080602001828103825260238152602001806113136023913960400191505060405180910390fd5b5050505050565b60035460009063ffffffff600160201b9091048116907f0000000000000000000000000000000000000000000000000000000000000000811660020a1681141561108c5760405162461bcd60e51b81526004018080602001828103825260308152602001806113366030913960400191505060405180910390fd5b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561115957600185166110fc5763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150611118565b63ffffffff811660009081526020819052604090205492508391505b6111437f000000000000000000000000000000000000000000000000000000000000000084846109e9565b9350600263ffffffff8616049450600101611093565b505060038054601e63ffffffff8083166001908101821692909206811663ffffffff199093168317845560009283526002602052604090922094909455815493860116600160201b0267ffffffff00000000199093169290921790915550909392505050565b7f0000000000000000000000000000000000000000000000000000000000000000341461121d5760405162461bcd60e51b81526004018080602001828103825260388152602001806112206038913960400191505060405180910390fd5b56fe506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e5f72696768742073686f756c6420626520696e7369646520746865206669656c64526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e636530644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465647061796d656e7420746f205f726563697069656e7420646964206e6f7420676f20746872757061796d656e7420746f205f72656c6179657220646964206e6f7420676f20746872754d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c65617665732063616e2062652061646465644d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365a26469706673582212208ceda25717bed5d981a763bf8fc532aaf1c7aafa06a512f58b473b522acadc9964736f6c6343000706003364656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e20305f72696768742073686f756c6420626520696e7369646520746865206669656c6430644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f6c6576656c732073686f756c642062652067726561746572207468616e207a65726f000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a00000000000000000000000000000000000000000000152d02c7e14af68000000000000000000000000000000000000000000000000000000000000000000014",
- "expectedAddress": "0xa5C2254e4253490C54cef0a4347fddb8f75A4998",
- "title": "Tornado.cash instance for 100,000 of xDAI",
- "constructorArgs": "0x000000000000000000000000fc9859303c0ac1a7721ece639f2e249d8fd72ac6000000000000000000000000baffbe0e6c73d4dad3f813194695fdc5829c962a00000000000000000000000000000000000000000000152d02c7e14af68000000000000000000000000000000000000000000000000000000000000000000014",
- "description": "Tornado cash instance for 100,000 of xDAI",
- "dependsOn": [
- "deployer.contract.tornadocash.eth",
- "hasher.contract.tornadocash.eth",
- "verifier.contract.tornadocash.eth"
- ]
+ "deployerL2.contract.tornadocash.eth",
+ "tornadoPool.contract.tornadocash.eth"
+ ],
+ "isL1Contract": false
}
]
}
\ No newline at end of file
diff --git a/store/deploy.js b/store/deploy.js
index 4668538..0ea0d0b 100644
--- a/store/deploy.js
+++ b/store/deploy.js
@@ -25,7 +25,7 @@ const mutations = {}
const actions = {
async deployContract(
{ state, dispatch, getters, rootGetters, commit, rootState },
- { action, index }
+ { action, index, isL1 }
) {
try {
dispatch('loading/enable', {}, { root: true })
@@ -69,12 +69,17 @@ const actions = {
],
from: ethAccount,
}
- const gasEstimate =
- action.domain === 'deployer.contract.tornadocash.eth'
- ? numberToHex(1e6)
- : await dispatch('provider/sendRequest', callParamsEstimate, {
- root: true,
- })
+
+ const deployerContracts = [
+ 'deployerL1.contract.tornadocash.eth',
+ 'deployerL2.contract.tornadocash.eth',
+ ]
+
+ const gasEstimate = deployerContracts.includes(action.domain)
+ ? numberToHex(1e6)
+ : await dispatch('provider/sendRequest', callParamsEstimate, {
+ root: true,
+ })
const gasWithBuffer = Math.ceil(hexToNumber(gasEstimate) * 1.1)
const callParams = {
method: 'eth_sendTransaction',
@@ -106,7 +111,7 @@ const actions = {
dispatch('loading/disable', {}, { root: true })
dispatch(
'steps/setPendingState',
- { status: true, stepIndex: index },
+ { status: true, stepIndex: index, isL1 },
{ root: true }
)
@@ -172,7 +177,7 @@ const actions = {
dispatch('loading/disable', {}, { root: true })
dispatch(
'steps/setPendingState',
- { status: false, stepIndex: index },
+ { status: false, stepIndex: index, isL1 },
{ root: true }
)
}
diff --git a/store/provider/actions.js b/store/provider/actions.js
index 16e7b66..10831cb 100644
--- a/store/provider/actions.js
+++ b/store/provider/actions.js
@@ -14,20 +14,33 @@ export default {
async initProvider({ commit, state, getters, dispatch }, { name, network }) {
try {
const account = await this.$provider.initProvider(getters.getProvider)
- if (window.ethereum.chainId !== '0x64') {
+ const supportedNetworks = [numberToHex(1), numberToHex(100)]
+ if (!supportedNetworks.includes(window.ethereum.chainId)) {
await dispatch(
'notice/addNotice',
{
notice: {
- title: 'xDaiOnly',
+ title: 'switchToL1',
type: 'danger',
- callback: () => dispatch('switchNetwork', { netId: 100 }),
- message: 'switchNetwork',
+ callback: () => dispatch('switchNetwork', { netId: 1 }),
+ message: 'switchNetworkToL1',
},
},
{ root: true }
)
- throw new Error('Connect to xDai')
+ await dispatch(
+ 'notice/addNotice',
+ {
+ notice: {
+ title: 'switchToL2',
+ type: 'danger',
+ callback: () => dispatch('switchNetwork', { netId: 100 }),
+ message: 'switchNetworkToL2',
+ },
+ },
+ { root: true }
+ )
+ throw new Error('Connect to L1 or L2')
}
commit(SET_PROVIDER_NAME, name)
diff --git a/store/provider/state.js b/store/provider/state.js
index da7181a..1b60a66 100644
--- a/store/provider/state.js
+++ b/store/provider/state.js
@@ -1,8 +1,8 @@
export default () => ({
account: null,
network: {
- name: 'xdai',
- id: 100,
+ name: 'mainnet',
+ id: 1,
},
provider: {
name: '',
diff --git a/store/steps.js b/store/steps.js
index 156f880..41759e9 100644
--- a/store/steps.js
+++ b/store/steps.js
@@ -1,44 +1,76 @@
/* eslint-disable no-console */
import deploymentActions from '../static/deploymentActions.json'
+const l1Steps = deploymentActions.actions.filter(
+ ({ isL1Contract }) => isL1Contract
+)
+const l2Steps = deploymentActions.actions.filter(
+ ({ isL1Contract }) => !isL1Contract
+)
+
const state = () => {
return {
- steps: deploymentActions.actions,
+ l1Steps,
+ l2Steps,
}
}
const getters = {
- deployedCount: (state) => {
- const deployed = state.steps.filter((step) => !!step.deployerAddress).length
- const all = state.steps.length
+ deployedL1Count: (state, getters) => {
+ return getters.deployedCount(true)
+ },
+ deployedL2Count: (state, getters) => {
+ return getters.deployedCount(false)
+ },
+ steps: (state) => (isL1) => {
+ return isL1 ? state.l1Steps : state.l2Steps
+ },
+ deployedCount: (state, getters) => (isL1) => {
+ const steps = getters.steps(isL1)
+ const deployed = steps.filter((step) => !!step.deployerAddress).length
+ const all = steps.length
return `${deployed}/${all}`
},
- canDeploy: (state) => (domain) => {
- const { dependsOn } = state.steps.find((s) => s.domain === domain)
- return dependsOn.every(
- (d) => !!state.steps.find((s) => s.domain === d).deployerAddress
- )
+ canDeploy: (state, getters) => (domain, isL1) => {
+ const steps = getters.steps(isL1)
+ const { dependsOn } = steps.find((s) => s.domain === domain)
+ return dependsOn.every((d) => {
+ return Boolean(steps.find((s) => s.domain === d)?.deployerAddress)
+ })
},
}
const SET_DEPLOYER = 'SET_DEPLOYER'
const SET_PENDING_STATE = 'SET_PENDING_STATE'
const mutations = {
- [SET_DEPLOYER](state, { stepIndex, deployerAddress, deployTransaction }) {
- this._vm.$set(state.steps[stepIndex], 'deployerAddress', deployerAddress)
+ [SET_DEPLOYER](
+ state,
+ { stepIndex, deployerAddress, deployTransaction, isL1 }
+ ) {
+ const steps = isL1 ? 'l1Steps' : 'l2Steps'
+ this._vm.$set(state[steps][stepIndex], 'deployerAddress', deployerAddress)
this._vm.$set(
- state.steps[stepIndex],
+ state[steps][stepIndex],
'deployTransaction',
deployTransaction
)
},
- [SET_PENDING_STATE](state, { status, stepIndex }) {
- this._vm.$set(state.steps[stepIndex], 'isPending', status)
+ [SET_PENDING_STATE](state, { status, stepIndex, isL1 }) {
+ const steps = isL1 ? 'l1Steps' : 'l2Steps'
+ this._vm.$set(state[steps][stepIndex], 'isPending', status)
},
}
const actions = {
- async fetchDeploymentStatus({ state, dispatch, commit, rootGetters }) {
+ async fetchDeploymentStatus({
+ state,
+ getters,
+ dispatch,
+ commit,
+ rootGetters,
+ }) {
+ const { isL1 } = rootGetters['provider/getNetwork']
+ const steps = getters.steps(isL1)
const deployContract = rootGetters['deploy/deployerContract'](false)
const events = await deployContract.getPastEvents('Deployed', {
fromBlock: 0,
@@ -46,7 +78,7 @@ const actions = {
})
for (const event of events) {
- const step = state.steps.find(
+ const step = steps.find(
(s) => s.expectedAddress === event.returnValues.addr
)
@@ -54,9 +86,10 @@ const actions = {
continue
}
commit(SET_DEPLOYER, {
- stepIndex: state.steps.indexOf(step),
+ stepIndex: steps.indexOf(step),
deployerAddress: event.returnValues.sender,
deployTransaction: event.transactionHash,
+ isL1,
})
}
},
@@ -70,8 +103,8 @@ const actions = {
}
}, 15000)
},
- setPendingState({ commit }, { status, stepIndex }) {
- commit(SET_PENDING_STATE, { status, stepIndex })
+ setPendingState({ commit }, payload) {
+ commit(SET_PENDING_STATE, payload)
},
}
export default {