diff --git a/.github/workflows/solidity.yml b/.github/workflows/solidity.yml index 92f61c933..946d81108 100644 --- a/.github/workflows/solidity.yml +++ b/.github/workflows/solidity.yml @@ -32,10 +32,8 @@ jobs: - name: lint run: | - cd ./solidity/abacus-core - npm run lint - cd ../abacus-xapps - npm run lint + npm --prefix ./solidity/abacus-core run lint + npm --prefix ./solidity/abacus-xapps run lint solidity-test: env: @@ -51,4 +49,6 @@ jobs: with: runneros: ${{ runner.os }} - name: test - run: ./scripts/test-solidity.sh + run: | + npm --prefix ./solidity/abacus-core run test + npm --prefix ./solidity/abacus-xapps run test diff --git a/package-lock.json b/package-lock.json index 3e181f110..098c0d265 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,7 @@ "typescript/typechain", "typescript/abacus-sdk", "typescript/contract-metrics", - "typescript/abacus-deploy", - "typescript/abacus-tests" + "typescript/abacus-deploy" ] }, "node_modules/@abacus-network/abacus-deploy": { @@ -31,10 +30,6 @@ "resolved": "typescript/abacus-sdk", "link": true }, - "node_modules/@abacus-network/test": { - "resolved": "typescript/abacus-tests", - "link": true - }, "node_modules/@abacus-network/ts-interface": { "resolved": "typescript/typechain", "link": true @@ -1378,6 +1373,7 @@ "version": "3.6.1", "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.1.tgz", "integrity": "sha512-o5d/zpGl4SdVfdTfrsq9ZgYMXddc0ucKMiFW5OphBCX+ep4xzYnSjboFcZXT2V/tcSBr84VrKWWp21CGVb3DGw==", + "dev": true, "dependencies": { "@ethereumjs/common": "^2.6.1", "@ethereumjs/tx": "^3.5.0", @@ -1389,6 +1385,7 @@ "version": "5.5.1", "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.1.tgz", "integrity": "sha512-JS2jeKxl3tlaa5oXrZ8mGoVBCz6YqsGG350XVNtHAtNZXKk7pU3rH4xzF2ru42fksMMqzFLzKh9l4EQzmNWDqA==", + "dev": true, "dependencies": { "@ethereumjs/block": "^3.6.0", "@ethereumjs/common": "^2.6.0", @@ -1404,6 +1401,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { "ms": "2.0.0" } @@ -1412,6 +1410,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -1419,17 +1418,20 @@ "node_modules/@ethereumjs/blockchain/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "node_modules/@ethereumjs/blockchain/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/@ethereumjs/common": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.2.tgz", "integrity": "sha512-vDwye5v0SVeuDky4MtKsu+ogkH2oFUV8pBKzH/eNBzT8oI91pKa8WyzDuYuxOQsgNgv5R34LfFDh2aaw3H4HbQ==", + "dev": true, "dependencies": { "crc-32": "^1.2.0", "ethereumjs-util": "^7.1.4" @@ -1439,6 +1441,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", + "dev": true, "dependencies": { "@ethereumjs/block": "^3.5.0", "@types/levelup": "^4.3.0", @@ -1451,6 +1454,7 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.0.tgz", "integrity": "sha512-/+ZNbnJhQhXC83Xuvy6I9k4jT5sXiV0tMR9C+AzSSpcCV64+NB8dTE1m3x98RYMqb8+TLYWA+HML4F5lfXTlJw==", + "dev": true, "dependencies": { "@ethereumjs/common": "^2.6.1", "ethereumjs-util": "^7.1.4" @@ -1460,6 +1464,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.7.1.tgz", "integrity": "sha512-NiFm5FMaeDGZ9ojBL+Y9Y/xhW6S4Fgez+zPBM402T5kLsfeAR9mrRVckYhvkGVJ6FMwsY820CLjYP5OVwMjLTg==", + "dev": true, "dependencies": { "@ethereumjs/block": "^3.6.1", "@ethereumjs/blockchain": "^5.5.1", @@ -2263,6 +2268,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.0.tgz", "integrity": "sha512-LczOjjxY4A7XYloxzyxJIHONELmUxVZncpOLoClpEcTiebiVdM46KRPYXGuULro9oNNR2xdVx3yoKiQjdfWmoA==", + "dev": true, "dependencies": { "ethereumjs-abi": "^0.6.8", "ethereumjs-util": "^6.2.1", @@ -2278,6 +2284,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -2286,6 +2293,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, "dependencies": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -2513,6 +2521,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, "dependencies": { "@sentry/hub": "5.30.0", "@sentry/minimal": "5.30.0", @@ -2527,12 +2536,14 @@ "node_modules/@sentry/core/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@sentry/hub": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, "dependencies": { "@sentry/types": "5.30.0", "@sentry/utils": "5.30.0", @@ -2545,12 +2556,14 @@ "node_modules/@sentry/hub/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@sentry/minimal": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, "dependencies": { "@sentry/hub": "5.30.0", "@sentry/types": "5.30.0", @@ -2563,12 +2576,14 @@ "node_modules/@sentry/minimal/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@sentry/node": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, "dependencies": { "@sentry/core": "5.30.0", "@sentry/hub": "5.30.0", @@ -2587,12 +2602,14 @@ "node_modules/@sentry/node/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@sentry/tracing": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, "dependencies": { "@sentry/hub": "5.30.0", "@sentry/minimal": "5.30.0", @@ -2607,12 +2624,14 @@ "node_modules/@sentry/tracing/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@sentry/types": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, "engines": { "node": ">=6" } @@ -2621,6 +2640,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, "dependencies": { "@sentry/types": "5.30.0", "tslib": "^1.9.3" @@ -2632,7 +2652,8 @@ "node_modules/@sentry/utils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@sindresorhus/is": { "version": "4.5.0", @@ -2649,6 +2670,7 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.1.tgz", "integrity": "sha512-eLjj2L6AuQjBB6s/ibwCAc0DwrR5Ge+ys+wgWo+bviU7fV2nTMQhU63CGaDKXg9iTmMxwhkyoggdIR7ZGRfMgw==", + "dev": true, "dependencies": { "antlr4ts": "^0.5.0-alpha.4" } @@ -2903,12 +2925,14 @@ "node_modules/@types/abstract-leveldown": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==" + "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==", + "dev": true }, "node_modules/@types/bn.js": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -2956,6 +2980,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -2998,6 +3023,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "dev": true, "dependencies": { "@types/node": "*" } @@ -3039,12 +3065,14 @@ "node_modules/@types/level-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==" + "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", + "dev": true }, "node_modules/@types/levelup": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", + "dev": true, "dependencies": { "@types/abstract-leveldown": "*", "@types/level-errors": "*", @@ -3054,7 +3082,8 @@ "node_modules/@types/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true }, "node_modules/@types/mime": { "version": "1.3.2", @@ -3076,10 +3105,9 @@ } }, "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz", + "integrity": "sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==" }, "node_modules/@types/node": { "version": "17.0.21", @@ -3114,6 +3142,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -3172,6 +3201,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -3463,6 +3493,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", + "dev": true, "dependencies": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -3527,6 +3558,7 @@ "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, "engines": { "node": ">=0.3.0" } @@ -3581,6 +3613,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, "engines": { "node": ">=6" } @@ -3589,6 +3622,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -3603,6 +3637,7 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "engines": { "node": ">=10" }, @@ -3641,12 +3676,14 @@ "node_modules/antlr4ts": { "version": "0.5.0-alpha.4", "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==" + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3664,6 +3701,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -3737,6 +3775,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -3752,7 +3791,8 @@ "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true }, "node_modules/asn1": { "version": "0.2.6", @@ -3808,6 +3848,7 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, "dependencies": { "lodash": "^4.17.14" } @@ -3816,6 +3857,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, "dependencies": { "async": "^2.4.0" } @@ -3887,6 +3929,7 @@ "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, "dependencies": { "safe-buffer": "^5.0.1" } @@ -3940,6 +3983,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "engines": { "node": ">=8" } @@ -3953,6 +3997,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, "dependencies": { "file-uri-to-path": "1.0.0" } @@ -3966,6 +4011,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "dev": true, "dependencies": { "safe-buffer": "^5.0.1" } @@ -4027,7 +4073,8 @@ "node_modules/blakejs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==", + "dev": true }, "node_modules/bluebird": { "version": "3.7.2", @@ -4091,6 +4138,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -4106,12 +4154,14 @@ "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -4124,7 +4174,8 @@ "node_modules/browserify-aes/node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true }, "node_modules/browserify-cipher": { "version": "1.0.1", @@ -4192,6 +4243,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dev": true, "dependencies": { "base-x": "^3.0.2" } @@ -4200,6 +4252,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, "dependencies": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -4210,6 +4263,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "funding": [ { "type": "github", @@ -4249,6 +4303,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, "dependencies": { "safe-buffer": "^5.1.1" } @@ -4320,6 +4375,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -4374,6 +4430,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, "engines": { "node": ">=6" } @@ -4455,6 +4512,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true, "engines": { "node": "*" } @@ -4471,6 +4529,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "funding": [ { "type": "individual", @@ -4502,7 +4561,8 @@ "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "node_modules/cids": { "version": "0.7.5", @@ -4537,6 +4597,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -4569,6 +4630,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, "dependencies": { "object-assign": "^4.1.0", "string-width": "^2.1.1" @@ -4714,6 +4776,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, "engines": { "node": ">=0.1.90" } @@ -4732,7 +4795,8 @@ "node_modules/command-exists": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true }, "node_modules/command-line-args": { "version": "4.0.7", @@ -4883,6 +4947,7 @@ "version": "3.21.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "dev": true, "hasInstallScript": true, "funding": { "type": "opencollective", @@ -4953,6 +5018,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", + "dev": true, "dependencies": { "exit-on-epipe": "~1.0.1", "printj": "~1.3.1" @@ -4978,6 +5044,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -4990,6 +5057,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -5022,6 +5090,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true, "engines": { "node": "*" } @@ -5256,6 +5325,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5322,6 +5392,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "dev": true, "dependencies": { "abstract-leveldown": "~6.2.1", "inherits": "^2.0.3" @@ -5334,6 +5405,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, "dependencies": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -5349,6 +5421,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "dependencies": { "object-keys": "^1.0.12" }, @@ -5433,6 +5506,7 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, "engines": { "node": ">=0.3.1" } @@ -5499,6 +5573,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "dev": true, "dependencies": { "browserify-aes": "^1.0.6", "create-hash": "^1.1.2", @@ -5655,6 +5730,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", + "dev": true, "dependencies": { "abstract-leveldown": "^6.2.1", "inherits": "^2.0.3", @@ -5677,6 +5753,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, "dependencies": { "ansi-colors": "^4.1.1" }, @@ -5696,6 +5773,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, "engines": { "node": ">=6" } @@ -5704,6 +5782,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, "dependencies": { "prr": "~1.0.1" }, @@ -5724,6 +5803,7 @@ "version": "1.19.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -5757,6 +5837,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -5774,6 +5855,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -6224,6 +6306,7 @@ "version": "0.2.24", "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.24.tgz", "integrity": "sha512-RbXLC2bnuPHzIMU/rnLXXlb6oiHEEKu7rq2UrAX/0mfo0Lzrr/kb9QTjWjfz8eNvc+uu6J8AuBwI++b+MLNI2w==", + "dev": true, "dependencies": { "@ethersproject/abi": "^5.0.0-beta.146", "@solidity-parser/parser": "^0.14.0", @@ -6254,6 +6337,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -6262,6 +6346,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", + "dev": true, "dependencies": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -6276,6 +6361,7 @@ "version": "4.0.49", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, "dependencies": { "aes-js": "3.0.0", "bn.js": "^4.11.9", @@ -6292,6 +6378,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.0" @@ -6300,12 +6387,14 @@ "node_modules/eth-gas-reporter/node_modules/js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true }, "node_modules/eth-gas-reporter/node_modules/keccak": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", + "dev": true, "hasInstallScript": true, "dependencies": { "bindings": "^1.5.0", @@ -6320,12 +6409,14 @@ "node_modules/eth-gas-reporter/node_modules/scrypt-js": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true }, "node_modules/eth-gas-reporter/node_modules/secp256k1": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", + "dev": true, "hasInstallScript": true, "dependencies": { "bindings": "^1.5.0", @@ -6344,13 +6435,15 @@ "node_modules/eth-gas-reporter/node_modules/setimmediate": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", + "dev": true }, "node_modules/eth-gas-reporter/node_modules/uuid": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true }, "node_modules/eth-lib": { "version": "0.1.29", @@ -6396,6 +6489,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "dependencies": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -6437,6 +6531,7 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, "dependencies": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -6446,6 +6541,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -6454,6 +6550,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, "dependencies": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -6468,6 +6565,7 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "dev": true, "dependencies": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -6482,7 +6580,8 @@ "node_modules/ethereumjs-util/node_modules/bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true }, "node_modules/ethers": { "version": "5.5.4", @@ -6555,6 +6654,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, "dependencies": { "is-hex-prefixed": "1.0.0", "strip-hex-prefix": "1.0.0" @@ -6590,6 +6690,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -6599,6 +6700,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "dev": true, "engines": { "node": ">=0.8" } @@ -6817,12 +6919,14 @@ "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6889,6 +6993,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "dependencies": { "locate-path": "^2.0.0" }, @@ -6909,6 +7014,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, "dependencies": { "is-buffer": "~2.0.3" }, @@ -7020,7 +7126,8 @@ "node_modules/fp-ts": { "version": "1.19.3", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true }, "node_modules/fresh": { "version": "0.5.2", @@ -7080,6 +7187,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -7101,7 +7209,8 @@ "node_modules/fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -7112,6 +7221,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -7124,12 +7234,14 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, "node_modules/ganache-core": { "version": "2.13.2", @@ -16366,6 +16478,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -16379,6 +16492,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true, "engines": { "node": ">=4" } @@ -16401,6 +16515,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -16575,6 +16690,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -16930,6 +17046,7 @@ "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, "engines": { "node": ">=4.x" } @@ -17002,6 +17119,7 @@ "version": "2.8.4", "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.8.4.tgz", "integrity": "sha512-lEwvQSbhABpKgBTJnRgdZ6nZZRmgKUF2G8aGNaBVIQnJeRZjELnZHLIWXAF1HW0Q1NFCyo9trxOrOuzmiS+r/w==", + "dev": true, "dependencies": { "@ethereumjs/block": "^3.6.0", "@ethereumjs/blockchain": "^5.5.0", @@ -17062,6 +17180,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.8.tgz", "integrity": "sha512-1G5thPnnhcwLHsFnl759f2tgElvuwdkzxlI65fC9PwxYMEe9cmjkVAAWTf3/3y8uP6ZSPiUiOW8PgZnykmZe0g==", + "dev": true, "dependencies": { "array-uniq": "1.0.3", "eth-gas-reporter": "^0.2.24", @@ -17075,6 +17194,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -17086,6 +17206,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -17099,6 +17220,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -17106,17 +17228,20 @@ "node_modules/hardhat/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "node_modules/hardhat/node_modules/commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true }, "node_modules/hardhat/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -17125,6 +17250,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, "engines": { "node": ">=4" } @@ -17133,6 +17259,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -17141,6 +17268,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -17152,6 +17280,7 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, "dependencies": { "command-exists": "^1.2.8", "commander": "3.0.2", @@ -17174,6 +17303,7 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0", @@ -17186,6 +17316,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, "bin": { "semver": "bin/semver" } @@ -17194,6 +17325,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -17205,6 +17337,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -17216,6 +17349,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17258,6 +17392,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -17281,6 +17416,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -17295,6 +17431,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -17317,6 +17454,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "bin": { "he": "bin/he" } @@ -17346,6 +17484,7 @@ "version": "8.1.3", "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, "dependencies": { "caseless": "^0.12.0", "concat-stream": "^1.6.2", @@ -17386,6 +17525,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, "dependencies": { "@types/node": "^10.0.3" } @@ -17393,7 +17533,8 @@ "node_modules/http-response-object/node_modules/@types/node": { "version": "10.17.60", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true }, "node_modules/http-signature": { "version": "1.2.0", @@ -17497,12 +17638,14 @@ "node_modules/immediate": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true }, "node_modules/immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -17678,6 +17821,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", @@ -17709,6 +17853,7 @@ "version": "1.10.4", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, "dependencies": { "fp-ts": "^1.0.0" } @@ -17752,6 +17897,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, @@ -17763,6 +17909,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -17785,6 +17932,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -17827,6 +17975,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -17850,6 +17999,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -17888,6 +18038,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -17920,6 +18071,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, "engines": { "node": ">=4" } @@ -17949,6 +18101,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -17960,6 +18113,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "dev": true, "engines": { "node": ">=6.5.0", "npm": ">=3" @@ -17982,6 +18136,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -17993,6 +18148,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -18001,6 +18157,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -18040,6 +18197,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -18064,6 +18222,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -18083,6 +18242,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -18107,6 +18267,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -18157,6 +18318,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -18184,7 +18346,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "node_modules/isstream": { "version": "0.1.2", @@ -18277,6 +18440,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -18332,6 +18496,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "dev": true, "hasInstallScript": true, "dependencies": { "node-addon-api": "^2.0.0", @@ -18363,6 +18528,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.9" } @@ -18392,6 +18558,7 @@ "version": "9.0.2", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, "dependencies": { "buffer": "^5.6.0" }, @@ -18403,6 +18570,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "dev": true, "engines": { "node": ">=6" } @@ -18411,6 +18579,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, "dependencies": { "errno": "~0.1.1" }, @@ -18422,6 +18591,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "dev": true, "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.4.0", @@ -18435,6 +18605,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", + "dev": true, "dependencies": { "level-packager": "^5.0.3", "memdown": "^5.0.0" @@ -18447,6 +18618,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", + "dev": true, "dependencies": { "encoding-down": "^6.3.0", "levelup": "^4.3.2" @@ -18459,6 +18631,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, "dependencies": { "xtend": "^4.0.2" }, @@ -18470,6 +18643,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", + "dev": true, "dependencies": { "inherits": "^2.0.3", "readable-stream": "^3.1.0", @@ -18483,6 +18657,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "dev": true, "dependencies": { "deferred-leveldown": "~5.3.0", "level-errors": "~2.0.0", @@ -18548,6 +18723,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -18582,6 +18758,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, "dependencies": { "chalk": "^2.4.2" }, @@ -18593,6 +18770,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -18604,6 +18782,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -18617,6 +18796,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -18624,12 +18804,14 @@ "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "node_modules/log-symbols/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -18638,6 +18820,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, "engines": { "node": ">=4" } @@ -18646,6 +18829,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -18672,7 +18856,8 @@ "node_modules/lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", + "dev": true }, "node_modules/lru-cache": { "version": "6.0.0", @@ -18688,7 +18873,8 @@ "node_modules/ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "dev": true }, "node_modules/make-error": { "version": "1.3.6", @@ -18747,7 +18933,8 @@ "node_modules/markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true }, "node_modules/math-log2": { "version": "1.0.1", @@ -18761,6 +18948,7 @@ "version": "0.7.9", "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "dev": true, "engines": { "node": ">=8.9.0" } @@ -18769,6 +18957,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -18787,6 +18976,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", + "dev": true, "dependencies": { "abstract-leveldown": "~6.2.1", "functional-red-black-tree": "~1.0.1", @@ -18803,6 +18993,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, "dependencies": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -18817,12 +19008,14 @@ "node_modules/memdown/node_modules/immediate": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true, "engines": { "node": ">= 0.10.0" } @@ -18845,6 +19038,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.3.tgz", "integrity": "sha512-S4xevdXl5KvdBGgUxhQcxoep0onqXiIhzfwZp4M78kIuJH3Pu9o9IUgqhzSFOR2ykLO6t265026Xb6PY0q2UFQ==", + "dev": true, "dependencies": { "@types/levelup": "^4.3.0", "ethereumjs-util": "^7.1.4", @@ -18879,6 +19073,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -19023,6 +19218,7 @@ "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, "dependencies": { "obliterator": "^2.0.0" } @@ -19031,6 +19227,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, "dependencies": { "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", @@ -19073,6 +19270,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, "engines": { "node": ">=6" } @@ -19081,6 +19279,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, "engines": { "node": ">=6" } @@ -19089,6 +19288,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -19100,6 +19300,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", @@ -19120,6 +19321,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -19130,6 +19332,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -19137,13 +19340,15 @@ "node_modules/mocha/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "node_modules/mocha/node_modules/debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -19151,12 +19356,14 @@ "node_modules/mocha/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -19165,6 +19372,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "dependencies": { "locate-path": "^3.0.0" }, @@ -19177,6 +19385,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -19190,6 +19399,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -19206,6 +19416,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, "engines": { "node": ">=4" } @@ -19214,6 +19425,7 @@ "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -19226,6 +19438,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -19238,6 +19451,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -19249,6 +19463,7 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "dependencies": { "minimist": "^1.2.5" }, @@ -19259,12 +19474,14 @@ "node_modules/mocha/node_modules/ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true }, "node_modules/mocha/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -19279,6 +19496,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, "dependencies": { "p-limit": "^2.0.0" }, @@ -19290,6 +19508,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, "engines": { "node": ">=6" } @@ -19298,6 +19517,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, "dependencies": { "picomatch": "^2.0.4" }, @@ -19308,12 +19528,14 @@ "node_modules/mocha/node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "node_modules/mocha/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -19327,6 +19549,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, @@ -19338,6 +19561,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -19346,6 +19570,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -19357,6 +19582,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -19367,12 +19593,14 @@ "node_modules/mocha/node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "node_modules/mocha/node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -19385,12 +19613,14 @@ "node_modules/mocha/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, "node_modules/mocha/node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -19571,7 +19801,8 @@ "node_modules/nan": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "devOptional": true }, "node_modules/nano-json-stream-parser": { "version": "0.1.2", @@ -19651,7 +19882,8 @@ "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true }, "node_modules/node-emoji": { "version": "1.11.0", @@ -19666,6 +19898,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, "dependencies": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" @@ -19675,6 +19908,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, "bin": { "semver": "bin/semver" } @@ -19710,6 +19944,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "devOptional": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -19770,6 +20005,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -19850,6 +20086,7 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -19866,6 +20103,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, "dependencies": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -19880,6 +20118,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -19895,7 +20134,8 @@ "node_modules/obliterator": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.2.tgz", - "integrity": "sha512-g0TrA7SbUggROhDPK8cEu/qpItwH2LSKcNl4tlfBNT54XY+nOsqrs0Q68h1V9b3HOSpIWv15jb1lax2hAggdIg==" + "integrity": "sha512-g0TrA7SbUggROhDPK8cEu/qpItwH2LSKcNl4tlfBNT54XY+nOsqrs0Q68h1V9b3HOSpIWv15jb1lax2hAggdIg==", + "dev": true }, "node_modules/oboe": { "version": "2.1.5", @@ -19986,6 +20226,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -20011,6 +20252,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "dependencies": { "p-try": "^1.0.0" }, @@ -20022,6 +20264,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "dependencies": { "p-limit": "^1.1.0" }, @@ -20045,6 +20288,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, "engines": { "node": ">=4" } @@ -20082,7 +20326,8 @@ "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", + "dev": true }, "node_modules/parse-headers": { "version": "2.0.4", @@ -20325,6 +20570,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, "engines": { "node": ">=4" } @@ -20395,6 +20641,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -20420,6 +20667,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -20638,6 +20886,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", + "dev": true, "bin": { "printj": "bin/printj.njs" }, @@ -20693,6 +20942,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "dev": true, "dependencies": { "asap": "~2.0.6" } @@ -20717,7 +20967,8 @@ "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true }, "node_modules/psl": { "version": "1.8.0", @@ -20859,6 +21110,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -20974,6 +21226,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -20987,6 +21240,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -21127,6 +21381,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", "integrity": "sha1-1AgrTURZgDZkD7c93qAe1T20nrw=", + "dev": true, "dependencies": { "req-from": "^2.0.0" }, @@ -21138,6 +21393,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", "integrity": "sha1-10GI5H+TeW9Kpx327jWuaJ8+DnA=", + "dev": true, "dependencies": { "resolve-from": "^3.0.0" }, @@ -21149,6 +21405,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, "engines": { "node": ">=4" } @@ -21188,6 +21445,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, "dependencies": { "lodash": "^4.17.19" }, @@ -21203,6 +21461,7 @@ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dev": true, "dependencies": { "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", @@ -21257,6 +21516,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -21355,6 +21615,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -21364,6 +21625,7 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, "dependencies": { "bn.js": "^5.2.0" }, @@ -21374,7 +21636,8 @@ "node_modules/rlp/node_modules/bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true }, "node_modules/run-async": { "version": "2.4.1", @@ -21411,7 +21674,8 @@ "node_modules/rustbn.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true }, "node_modules/rw": { "version": "1.3.3", @@ -21591,6 +21855,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "dev": true, "hasInstallScript": true, "dependencies": { "elliptic": "^6.5.4", @@ -21605,6 +21870,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo=", + "dev": true, "engines": { "node": ">=4.1" } @@ -21613,6 +21879,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -21691,12 +21958,14 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -21707,6 +21976,7 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -21719,6 +21989,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=", + "dev": true, "dependencies": { "charenc": ">= 0.0.1", "crypt": ">= 0.0.1" @@ -21774,6 +22045,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -21841,6 +22113,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "engines": { "node": ">=8" } @@ -22673,6 +22946,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -22682,6 +22956,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -22721,7 +22996,8 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "node_modules/sshpk": { "version": "1.17.0", @@ -22764,6 +23040,7 @@ "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, "dependencies": { "type-fest": "^0.7.1" }, @@ -22775,6 +23052,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, "engines": { "node": ">=8" } @@ -22876,6 +23154,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -22919,6 +23198,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -22944,6 +23224,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -22956,6 +23237,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, "engines": { "node": ">=4" } @@ -22964,6 +23246,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "dependencies": { "ansi-regex": "^3.0.0" }, @@ -22975,6 +23258,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -22987,6 +23271,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -23022,6 +23307,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dev": true, "dependencies": { "is-hex-prefixed": "1.0.0" }, @@ -23215,6 +23501,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, "dependencies": { "http-response-object": "^3.0.1", "sync-rpc": "^1.2.1", @@ -23228,6 +23515,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, "dependencies": { "get-port": "^3.1.0" } @@ -23385,6 +23673,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, "dependencies": { "@types/concat-stream": "^1.6.0", "@types/form-data": "0.0.33", @@ -23405,7 +23694,8 @@ "node_modules/then-request/node_modules/@types/node": { "version": "8.10.66", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true }, "node_modules/through": { "version": "2.3.8", @@ -23480,6 +23770,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -23523,6 +23814,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -23591,7 +23883,8 @@ "node_modules/true-case-path": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "dev": true }, "node_modules/ts-essentials": { "version": "1.0.4", @@ -23760,7 +24053,8 @@ "node_modules/tsort": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=" + "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", + "dev": true }, "node_modules/tsutils": { "version": "3.21.0", @@ -23797,12 +24091,14 @@ "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true }, "node_modules/tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true }, "node_modules/type": { "version": "1.2.0", @@ -23955,6 +24251,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "has-bigints": "^1.0.1", @@ -23969,6 +24266,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "engines": { "node": ">= 4.0.0" } @@ -25271,6 +25569,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -25312,6 +25611,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, "dependencies": { "string-width": "^1.0.2 || 2" } @@ -25490,6 +25790,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "dev": true, "engines": { "node": ">=0.4.0" } @@ -25545,6 +25846,7 @@ "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -25554,6 +25856,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, "dependencies": { "flat": "^4.1.0", "lodash": "^4.17.15", @@ -25567,6 +25870,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, "engines": { "node": ">=6" } @@ -25575,6 +25879,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -25586,6 +25891,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -25596,6 +25902,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -25603,17 +25910,20 @@ "node_modules/yargs-unparser/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "node_modules/yargs-unparser/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, "node_modules/yargs-unparser/node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "dependencies": { "locate-path": "^3.0.0" }, @@ -25625,6 +25935,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -25637,6 +25948,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -25651,6 +25963,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, "dependencies": { "p-limit": "^2.0.0" }, @@ -25662,6 +25975,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, "engines": { "node": ">=6" } @@ -25669,12 +25983,14 @@ "node_modules/yargs-unparser/node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "node_modules/yargs-unparser/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -25688,6 +26004,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, @@ -25698,12 +26015,14 @@ "node_modules/yargs-unparser/node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "node_modules/yargs-unparser/node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -25716,12 +26035,14 @@ "node_modules/yargs-unparser/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, "node_modules/yargs-unparser/node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -25798,7 +26119,8 @@ "eslint": "^7.20.0", "ethereum-waffle": "^3.2.2", "ethers": "^5.4.4", - "hardhat": "^2.0.8", + "hardhat": "^2.8.3", + "hardhat-gas-reporter": "^1.0.7", "prettier": "^2.2.1", "prettier-plugin-solidity": "^1.0.0-beta.5", "solhint": "^3.3.2", @@ -25829,7 +26151,8 @@ "eslint": "^7.20.0", "ethereum-waffle": "^3.2.2", "ethers": "^5.4.4", - "hardhat": "^2.0.8", + "hardhat": "^2.8.3", + "hardhat-gas-reporter": "^1.0.7", "prettier": "^2.2.1", "prettier-plugin-solidity": "^1.0.0-beta.5", "solhint": "^3.3.2", @@ -25849,6 +26172,7 @@ "@abacus-network/ts-interface": "^0.0.1", "@aws-sdk/client-kms": "3.48.0", "@ethersproject/experimental": "^5.3.0", + "@types/mocha": "^9.1.0", "@types/node": "^16.9.1", "@types/yargs": "^17.0.8", "asn1.js": "5.4.1", @@ -25858,8 +26182,14 @@ "yargs": "^17.3.1" }, "devDependencies": { + "@nomiclabs/hardhat-ethers": "^2.0.5", + "@nomiclabs/hardhat-waffle": "^2.0.2", + "@typechain/ethers-v5": "~7.0.0", + "@typechain/hardhat": "^2.0.1", "@types/chai": "^4.2.21", + "ethereum-waffle": "^3.2.2", "ethers": "^5.4.7", + "hardhat": "^2.8.4", "prettier": "^2.3.1", "ts-node": "^10.1.0", "typechain": "^5.0.0", @@ -25901,6 +26231,7 @@ "typescript/abacus-tests": { "name": "@abacus-network/test", "version": "0.0.0", + "extraneous": true, "license": "MIT OR Apache-2.0", "dependencies": { "@abacus-network/abacus-deploy": "^0.0.5", @@ -25927,21 +26258,6 @@ "typescript": "^4.3.2" } }, - "typescript/abacus-tests/node_modules/@types/node": { - "version": "15.14.9", - "license": "MIT" - }, - "typescript/abacus-tests/node_modules/prettier": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, "typescript/contract-metrics": { "dependencies": { "@abacus-network/sdk": "^0.0.1", @@ -26002,14 +26318,21 @@ "@abacus-network/ts-interface": "^0.0.1", "@aws-sdk/client-kms": "3.48.0", "@ethersproject/experimental": "^5.3.0", + "@nomiclabs/hardhat-ethers": "^2.0.5", + "@nomiclabs/hardhat-waffle": "^2.0.2", + "@typechain/ethers-v5": "~7.0.0", + "@typechain/hardhat": "^2.0.1", "@types/chai": "^4.2.21", + "@types/mocha": "^9.1.0", "@types/node": "^16.9.1", "@types/yargs": "^17.0.8", "asn1.js": "5.4.1", "axios": "^0.21.3", "chai": "^4.3.4", "dotenv": "^10.0.0", + "ethereum-waffle": "^3.2.2", "ethers": "^5.4.7", + "hardhat": "^2.8.3", "prettier": "^2.3.1", "ts-node": "^10.1.0", "typechain": "^5.0.0", @@ -26038,7 +26361,8 @@ "eslint": "^7.20.0", "ethereum-waffle": "^3.2.2", "ethers": "^5.4.4", - "hardhat": "^2.0.8", + "hardhat": "^2.8.3", + "hardhat-gas-reporter": "^1.0.7", "prettier": "^2.2.1", "prettier-plugin-solidity": "^1.0.0-beta.5", "solhint": "^3.3.2", @@ -26066,7 +26390,8 @@ "eslint": "^7.20.0", "ethereum-waffle": "^3.2.2", "ethers": "^5.4.4", - "hardhat": "^2.0.8", + "hardhat": "^2.8.3", + "hardhat-gas-reporter": "^1.0.7", "prettier": "^2.2.1", "prettier-plugin-solidity": "^1.0.0-beta.5", "solhint": "^3.3.2", @@ -26102,40 +26427,6 @@ } } }, - "@abacus-network/test": { - "version": "file:typescript/abacus-tests", - "requires": { - "@abacus-network/abacus-deploy": "^0.0.5", - "@abacus-network/sdk": "^0.0.1", - "@abacus-network/ts-interface": "^0.0.1", - "@nomiclabs/hardhat-ethers": "^2.0.2", - "@nomiclabs/hardhat-waffle": "^2.0.1", - "@typechain/ethers-v5": "^7.0.0", - "@types/chai": "^4.2.18", - "@types/mocha": "^8.2.2", - "@types/node": "^15.14.7", - "chai": "^4.3.4", - "dotenv": "^10.0.0", - "ethereum-waffle": "^3.3.0", - "ethers": "^5.5.3", - "hardhat": "^2.8.3", - "hardhat-gas-reporter": "^1.0.7", - "mkdirp": "^1.0.4", - "prettier": "2.3.0", - "ts-node": "^10.0.0", - "typechain": "^5.0.0", - "typescript": "^4.3.2" - }, - "dependencies": { - "@types/node": { - "version": "15.14.9" - }, - "prettier": { - "version": "2.3.0", - "dev": true - } - } - }, "@abacus-network/ts-interface": { "version": "file:typescript/typechain", "requires": { @@ -27274,6 +27565,7 @@ "version": "3.6.1", "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.1.tgz", "integrity": "sha512-o5d/zpGl4SdVfdTfrsq9ZgYMXddc0ucKMiFW5OphBCX+ep4xzYnSjboFcZXT2V/tcSBr84VrKWWp21CGVb3DGw==", + "dev": true, "requires": { "@ethereumjs/common": "^2.6.1", "@ethereumjs/tx": "^3.5.0", @@ -27285,6 +27577,7 @@ "version": "5.5.1", "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.1.tgz", "integrity": "sha512-JS2jeKxl3tlaa5oXrZ8mGoVBCz6YqsGG350XVNtHAtNZXKk7pU3rH4xzF2ru42fksMMqzFLzKh9l4EQzmNWDqA==", + "dev": true, "requires": { "@ethereumjs/block": "^3.6.0", "@ethereumjs/common": "^2.6.0", @@ -27300,6 +27593,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -27308,6 +27602,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "requires": { "yallist": "^3.0.2" } @@ -27315,12 +27610,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -27328,6 +27625,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.2.tgz", "integrity": "sha512-vDwye5v0SVeuDky4MtKsu+ogkH2oFUV8pBKzH/eNBzT8oI91pKa8WyzDuYuxOQsgNgv5R34LfFDh2aaw3H4HbQ==", + "dev": true, "requires": { "crc-32": "^1.2.0", "ethereumjs-util": "^7.1.4" @@ -27337,6 +27635,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", + "dev": true, "requires": { "@ethereumjs/block": "^3.5.0", "@types/levelup": "^4.3.0", @@ -27349,6 +27648,7 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.0.tgz", "integrity": "sha512-/+ZNbnJhQhXC83Xuvy6I9k4jT5sXiV0tMR9C+AzSSpcCV64+NB8dTE1m3x98RYMqb8+TLYWA+HML4F5lfXTlJw==", + "dev": true, "requires": { "@ethereumjs/common": "^2.6.1", "ethereumjs-util": "^7.1.4" @@ -27358,6 +27658,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.7.1.tgz", "integrity": "sha512-NiFm5FMaeDGZ9ojBL+Y9Y/xhW6S4Fgez+zPBM402T5kLsfeAR9mrRVckYhvkGVJ6FMwsY820CLjYP5OVwMjLTg==", + "dev": true, "requires": { "@ethereumjs/block": "^3.6.1", "@ethereumjs/blockchain": "^5.5.1", @@ -27833,6 +28134,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.0.tgz", "integrity": "sha512-LczOjjxY4A7XYloxzyxJIHONELmUxVZncpOLoClpEcTiebiVdM46KRPYXGuULro9oNNR2xdVx3yoKiQjdfWmoA==", + "dev": true, "requires": { "ethereumjs-abi": "^0.6.8", "ethereumjs-util": "^6.2.1", @@ -27845,6 +28147,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "requires": { "@types/node": "*" } @@ -27853,6 +28156,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -28069,6 +28373,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, "requires": { "@sentry/hub": "5.30.0", "@sentry/minimal": "5.30.0", @@ -28080,7 +28385,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -28088,6 +28394,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, "requires": { "@sentry/types": "5.30.0", "@sentry/utils": "5.30.0", @@ -28097,7 +28404,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -28105,6 +28413,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, "requires": { "@sentry/hub": "5.30.0", "@sentry/types": "5.30.0", @@ -28114,7 +28423,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -28122,6 +28432,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, "requires": { "@sentry/core": "5.30.0", "@sentry/hub": "5.30.0", @@ -28137,7 +28448,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -28145,6 +28457,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, "requires": { "@sentry/hub": "5.30.0", "@sentry/minimal": "5.30.0", @@ -28156,19 +28469,22 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, "@sentry/types": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==" + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true }, "@sentry/utils": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, "requires": { "@sentry/types": "5.30.0", "tslib": "^1.9.3" @@ -28177,7 +28493,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -28190,6 +28507,7 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.1.tgz", "integrity": "sha512-eLjj2L6AuQjBB6s/ibwCAc0DwrR5Ge+ys+wgWo+bviU7fV2nTMQhU63CGaDKXg9iTmMxwhkyoggdIR7ZGRfMgw==", + "dev": true, "requires": { "antlr4ts": "^0.5.0-alpha.4" } @@ -28411,12 +28729,14 @@ "@types/abstract-leveldown": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==" + "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==", + "dev": true }, "@types/bn.js": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, "requires": { "@types/node": "*" } @@ -28464,6 +28784,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, "requires": { "@types/node": "*" } @@ -28506,6 +28827,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "dev": true, "requires": { "@types/node": "*" } @@ -28547,12 +28869,14 @@ "@types/level-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==" + "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", + "dev": true }, "@types/levelup": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", + "dev": true, "requires": { "@types/abstract-leveldown": "*", "@types/level-errors": "*", @@ -28562,7 +28886,8 @@ "@types/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true }, "@types/mime": { "version": "1.3.2", @@ -28584,10 +28909,9 @@ } }, "@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz", + "integrity": "sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==" }, "@types/node": { "version": "17.0.21", @@ -28621,6 +28945,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dev": true, "requires": { "@types/node": "*" } @@ -28679,6 +29004,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dev": true, "requires": { "@types/node": "*" } @@ -28885,6 +29211,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", + "dev": true, "requires": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -28928,7 +29255,8 @@ "adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==" + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true }, "aes-js": { "version": "3.0.0", @@ -28969,12 +29297,14 @@ "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "requires": { "type-fest": "^0.21.3" }, @@ -28982,7 +29312,8 @@ "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true } } }, @@ -29008,12 +29339,14 @@ "antlr4ts": { "version": "0.5.0-alpha.4", "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==" + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -29028,6 +29361,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -29088,7 +29422,8 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true }, "arrify": { "version": "2.0.1", @@ -29098,7 +29433,8 @@ "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true }, "asn1": { "version": "0.2.6", @@ -29145,6 +29481,7 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, "requires": { "lodash": "^4.17.14" } @@ -29153,6 +29490,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, "requires": { "async": "^2.4.0" } @@ -29212,6 +29550,7 @@ "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -29249,7 +29588,8 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, "binary-search-bounds": { "version": "2.0.5", @@ -29260,6 +29600,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, "requires": { "file-uri-to-path": "1.0.0" } @@ -29273,6 +29614,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -29336,7 +29678,8 @@ "blakejs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==", + "dev": true }, "bluebird": { "version": "3.7.2", @@ -29399,6 +29742,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -29411,12 +29755,14 @@ "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -29429,7 +29775,8 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true } } }, @@ -29503,6 +29850,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dev": true, "requires": { "base-x": "^3.0.2" } @@ -29511,6 +29859,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, "requires": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -29521,6 +29870,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -29546,6 +29896,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, "requires": { "safe-buffer": "^5.1.1" } @@ -29598,6 +29949,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -29638,7 +29990,8 @@ "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "canvas-fit": { "version": "1.5.0", @@ -29704,7 +30057,8 @@ "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true }, "check-error": { "version": "1.0.2", @@ -29715,6 +30069,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -29735,7 +30090,8 @@ "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "cids": { "version": "0.7.5", @@ -29766,6 +30122,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -29795,6 +30152,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", @@ -29924,7 +30282,8 @@ "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true }, "combined-stream": { "version": "1.0.8", @@ -29937,7 +30296,8 @@ "command-exists": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true }, "command-line-args": { "version": "4.0.7", @@ -30104,7 +30464,8 @@ "core-js-pure": { "version": "3.21.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==" + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -30160,6 +30521,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", + "dev": true, "requires": { "exit-on-epipe": "~1.0.1", "printj": "~1.3.1" @@ -30179,6 +30541,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -30191,6 +30554,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -30219,7 +30583,8 @@ "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true }, "crypto-browserify": { "version": "3.12.0", @@ -30429,7 +30794,8 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decode-uri-component": { "version": "0.2.0", @@ -30474,6 +30840,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "dev": true, "requires": { "abstract-leveldown": "~6.2.1", "inherits": "^2.0.3" @@ -30483,6 +30850,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, "requires": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -30497,6 +30865,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -30566,7 +30935,8 @@ "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "diffie-hellman": { "version": "5.0.3", @@ -30621,6 +30991,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "dev": true, "requires": { "browserify-aes": "^1.0.6", "create-hash": "^1.1.2", @@ -30766,6 +31137,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", + "dev": true, "requires": { "abstract-leveldown": "^6.2.1", "inherits": "^2.0.3", @@ -30785,6 +31157,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, "requires": { "ansi-colors": "^4.1.1" } @@ -30797,12 +31170,14 @@ "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, "requires": { "prr": "~1.0.1" } @@ -30820,6 +31195,7 @@ "version": "1.19.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -30847,6 +31223,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -30860,6 +31237,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -31197,6 +31575,7 @@ "version": "0.2.24", "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.24.tgz", "integrity": "sha512-RbXLC2bnuPHzIMU/rnLXXlb6oiHEEKu7rq2UrAX/0mfo0Lzrr/kb9QTjWjfz8eNvc+uu6J8AuBwI++b+MLNI2w==", + "dev": true, "requires": { "@ethersproject/abi": "^5.0.0-beta.146", "@solidity-parser/parser": "^0.14.0", @@ -31219,6 +31598,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "requires": { "@types/node": "*" } @@ -31227,6 +31607,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", + "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -31241,6 +31622,7 @@ "version": "4.0.49", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, "requires": { "aes-js": "3.0.0", "bn.js": "^4.11.9", @@ -31257,6 +31639,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.0" @@ -31265,12 +31648,14 @@ "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true }, "keccak": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", + "dev": true, "requires": { "bindings": "^1.5.0", "inherits": "^2.0.4", @@ -31281,12 +31666,14 @@ "scrypt-js": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true }, "secp256k1": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", + "dev": true, "requires": { "bindings": "^1.5.0", "bip66": "^1.1.5", @@ -31301,12 +31688,14 @@ "setimmediate": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", + "dev": true }, "uuid": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", + "dev": true } } }, @@ -31356,6 +31745,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "requires": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -31391,6 +31781,7 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, "requires": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -31400,6 +31791,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "requires": { "@types/node": "*" } @@ -31408,6 +31800,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -31424,6 +31817,7 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "dev": true, "requires": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -31435,7 +31829,8 @@ "bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true } } }, @@ -31498,6 +31893,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, "requires": { "is-hex-prefixed": "1.0.0", "strip-hex-prefix": "1.0.0" @@ -31523,6 +31919,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -31531,7 +31928,8 @@ "exit-on-epipe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "dev": true }, "express": { "version": "4.17.3", @@ -31722,12 +32120,14 @@ "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -31786,6 +32186,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -31803,6 +32204,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, "requires": { "is-buffer": "~2.0.3" } @@ -31885,7 +32287,8 @@ "fp-ts": { "version": "1.19.3", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true }, "fresh": { "version": "0.5.2", @@ -31944,6 +32347,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -31962,7 +32366,8 @@ "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true }, "fs.realpath": { "version": "1.0.0", @@ -31973,17 +32378,20 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, "ganache-core": { "version": "2.13.2", @@ -39081,6 +39489,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -39090,7 +39499,8 @@ "get-port": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true }, "get-stream": { "version": "5.2.0", @@ -39104,6 +39514,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -39250,6 +39661,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -39562,7 +39974,8 @@ "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true }, "gtoken": { "version": "5.3.2", @@ -39613,6 +40026,7 @@ "version": "2.8.4", "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.8.4.tgz", "integrity": "sha512-lEwvQSbhABpKgBTJnRgdZ6nZZRmgKUF2G8aGNaBVIQnJeRZjELnZHLIWXAF1HW0Q1NFCyo9trxOrOuzmiS+r/w==", + "dev": true, "requires": { "@ethereumjs/block": "^3.6.0", "@ethereumjs/blockchain": "^5.5.0", @@ -39667,6 +40081,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -39675,6 +40090,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -39685,6 +40101,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -39692,27 +40109,32 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -39721,6 +40143,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "requires": { "glob": "^7.1.3" } @@ -39729,6 +40152,7 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, "requires": { "command-exists": "^1.2.8", "commander": "3.0.2", @@ -39745,6 +40169,7 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0", @@ -39756,7 +40181,8 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -39764,6 +40190,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -39774,6 +40201,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.8.tgz", "integrity": "sha512-1G5thPnnhcwLHsFnl759f2tgElvuwdkzxlI65fC9PwxYMEe9cmjkVAAWTf3/3y8uP6ZSPiUiOW8PgZnykmZe0g==", + "dev": true, "requires": { "array-uniq": "1.0.3", "eth-gas-reporter": "^0.2.24", @@ -39784,6 +40212,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -39791,7 +40220,8 @@ "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true }, "has-flag": { "version": "4.0.0", @@ -39824,7 +40254,8 @@ "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true }, "has-to-string-tag-x": { "version": "1.4.1", @@ -39839,6 +40270,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, "requires": { "has-symbols": "^1.0.2" } @@ -39847,6 +40279,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, "requires": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -39865,7 +40298,8 @@ "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true }, "hmac-drbg": { "version": "1.0.1", @@ -39892,6 +40326,7 @@ "version": "8.1.3", "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, "requires": { "caseless": "^0.12.0", "concat-stream": "^1.6.2", @@ -39926,6 +40361,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, "requires": { "@types/node": "^10.0.3" }, @@ -39933,7 +40369,8 @@ "@types/node": { "version": "10.17.60", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true } } }, @@ -40006,12 +40443,14 @@ "immediate": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true }, "immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true }, "import-fresh": { "version": "3.3.0", @@ -40153,6 +40592,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, "requires": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", @@ -40175,6 +40615,7 @@ "version": "1.10.4", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, "requires": { "fp-ts": "^1.0.0" } @@ -40209,6 +40650,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, "requires": { "has-bigints": "^1.0.1" } @@ -40217,6 +40659,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -40230,6 +40673,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -40248,7 +40692,8 @@ "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true }, "is-ci": { "version": "2.0.0", @@ -40263,6 +40708,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -40282,7 +40728,8 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-finite": { "version": "1.1.0", @@ -40302,7 +40749,8 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-function": { "version": "1.0.2", @@ -40323,6 +40771,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -40330,7 +40779,8 @@ "is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "dev": true }, "is-iexplorer": { "version": "1.0.0", @@ -40345,17 +40795,20 @@ "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-number-object": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -40380,6 +40833,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -40394,7 +40848,8 @@ "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true }, "is-stream": { "version": "2.0.1", @@ -40405,6 +40860,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -40423,6 +40879,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, "requires": { "has-symbols": "^1.0.2" } @@ -40461,6 +40918,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "requires": { "call-bind": "^1.0.2" } @@ -40482,7 +40940,8 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isstream": { "version": "0.1.2", @@ -40569,6 +41028,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -40618,6 +41078,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "dev": true, "requires": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", @@ -40642,6 +41103,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, "requires": { "graceful-fs": "^4.1.9" } @@ -40668,6 +41130,7 @@ "version": "9.0.2", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, "requires": { "buffer": "^5.6.0" } @@ -40675,12 +41138,14 @@ "level-concat-iterator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==" + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "dev": true }, "level-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, "requires": { "errno": "~0.1.1" } @@ -40689,6 +41154,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "dev": true, "requires": { "inherits": "^2.0.4", "readable-stream": "^3.4.0", @@ -40699,6 +41165,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", + "dev": true, "requires": { "level-packager": "^5.0.3", "memdown": "^5.0.0" @@ -40708,6 +41175,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", + "dev": true, "requires": { "encoding-down": "^6.3.0", "levelup": "^4.3.2" @@ -40717,6 +41185,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, "requires": { "xtend": "^4.0.2" } @@ -40725,6 +41194,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", + "dev": true, "requires": { "inherits": "^2.0.3", "readable-stream": "^3.1.0", @@ -40735,6 +41205,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "dev": true, "requires": { "deferred-leveldown": "~5.3.0", "level-errors": "~2.0.0", @@ -40787,6 +41258,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -40818,6 +41290,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, "requires": { "chalk": "^2.4.2" }, @@ -40826,6 +41299,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -40834,6 +41308,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -40844,6 +41319,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -40851,22 +41327,26 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -40889,7 +41369,8 @@ "lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", + "dev": true }, "lru-cache": { "version": "6.0.0", @@ -40902,7 +41383,8 @@ "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "dev": true }, "make-error": { "version": "1.3.6", @@ -40960,7 +41442,8 @@ "markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true }, "math-log2": { "version": "1.0.1", @@ -40970,12 +41453,14 @@ "mcl-wasm": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", - "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==" + "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "dev": true }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -40991,6 +41476,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", + "dev": true, "requires": { "abstract-leveldown": "~6.2.1", "functional-red-black-tree": "~1.0.1", @@ -41004,6 +41490,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, "requires": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -41015,14 +41502,16 @@ "immediate": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true } } }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true }, "merge-descriptors": { "version": "1.0.1", @@ -41039,6 +41528,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.3.tgz", "integrity": "sha512-S4xevdXl5KvdBGgUxhQcxoep0onqXiIhzfwZp4M78kIuJH3Pu9o9IUgqhzSFOR2ykLO6t265026Xb6PY0q2UFQ==", + "dev": true, "requires": { "@types/levelup": "^4.3.0", "ethereumjs-util": "^7.1.4", @@ -41067,6 +41557,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -41179,6 +41670,7 @@ "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, "requires": { "obliterator": "^2.0.0" } @@ -41187,6 +41679,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, "requires": { "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", @@ -41217,17 +41710,20 @@ "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -41236,6 +41732,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", @@ -41251,6 +41748,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -41261,6 +41759,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -41268,12 +41767,14 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -41281,17 +41782,20 @@ "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -41300,12 +41804,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, "optional": true }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -41318,12 +41824,14 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -41333,6 +41841,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -41342,6 +41851,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -41350,6 +41860,7 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "requires": { "minimist": "^1.2.5" } @@ -41357,12 +41868,14 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "requires": { "p-try": "^2.0.0" } @@ -41371,6 +41884,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -41378,12 +41892,14 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, "readdirp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, "requires": { "picomatch": "^2.0.4" } @@ -41391,12 +41907,14 @@ "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -41407,6 +41925,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -41414,12 +41933,14 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "supports-color": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -41428,6 +41949,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -41435,12 +41957,14 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -41450,12 +41974,14 @@ "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -41623,7 +42149,8 @@ "nan": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "devOptional": true }, "nano-json-stream-parser": { "version": "0.1.2", @@ -41693,7 +42220,8 @@ "node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true }, "node-emoji": { "version": "1.11.0", @@ -41708,6 +42236,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, "requires": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" @@ -41716,7 +42245,8 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -41736,7 +42266,8 @@ "node-gyp-build": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "devOptional": true }, "nodeplotlib": { "version": "0.7.7", @@ -41784,7 +42315,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-svg-path": { "version": "0.1.0", @@ -41841,7 +42373,8 @@ "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true }, "object-keys": { "version": "1.1.1", @@ -41852,6 +42385,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -41863,6 +42397,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -41872,7 +42407,8 @@ "obliterator": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.2.tgz", - "integrity": "sha512-g0TrA7SbUggROhDPK8cEu/qpItwH2LSKcNl4tlfBNT54XY+nOsqrs0Q68h1V9b3HOSpIWv15jb1lax2hAggdIg==" + "integrity": "sha512-g0TrA7SbUggROhDPK8cEu/qpItwH2LSKcNl4tlfBNT54XY+nOsqrs0Q68h1V9b3HOSpIWv15jb1lax2hAggdIg==", + "dev": true }, "oboe": { "version": "2.1.5", @@ -41944,7 +42480,8 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "p-cancelable": { "version": "2.1.1", @@ -41961,6 +42498,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "requires": { "p-try": "^1.0.0" } @@ -41969,6 +42507,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "requires": { "p-limit": "^1.1.0" } @@ -41985,7 +42524,8 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, "parent-module": { "version": "1.0.1", @@ -42017,7 +42557,8 @@ "parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", + "dev": true }, "parse-headers": { "version": "2.0.4", @@ -42210,7 +42751,8 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -42263,6 +42805,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -42284,7 +42827,8 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pify": { "version": "4.0.1", @@ -42457,7 +43001,8 @@ "printj": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", - "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==" + "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", + "dev": true }, "probe-image-size": { "version": "7.2.3", @@ -42498,6 +43043,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "dev": true, "requires": { "asap": "~2.0.6" } @@ -42519,7 +43065,8 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true }, "psl": { "version": "1.8.0", @@ -42622,6 +43169,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -42717,6 +43265,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -42727,6 +43276,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -42851,6 +43401,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", "integrity": "sha1-1AgrTURZgDZkD7c93qAe1T20nrw=", + "dev": true, "requires": { "req-from": "^2.0.0" } @@ -42859,6 +43410,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", "integrity": "sha1-10GI5H+TeW9Kpx327jWuaJ8+DnA=", + "dev": true, "requires": { "resolve-from": "^3.0.0" }, @@ -42866,7 +43418,8 @@ "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true } } }, @@ -42923,6 +43476,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, "requires": { "lodash": "^4.17.19" } @@ -42931,6 +43485,7 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, "requires": { "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", @@ -42945,7 +43500,8 @@ "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true }, "require-main-filename": { "version": "1.0.1", @@ -43022,6 +43578,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -43031,6 +43588,7 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, "requires": { "bn.js": "^5.2.0" }, @@ -43038,7 +43596,8 @@ "bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true } } }, @@ -43060,7 +43619,8 @@ "rustbn.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true }, "rw": { "version": "1.3.3", @@ -43202,6 +43762,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "dev": true, "requires": { "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", @@ -43211,12 +43772,14 @@ "semaphore-async-await": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", - "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo=" + "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo=", + "dev": true }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true }, "send": { "version": "0.17.2", @@ -43287,12 +43850,14 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "setprototypeof": { "version": "1.2.0", @@ -43303,6 +43868,7 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -43312,6 +43878,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=", + "dev": true, "requires": { "charenc": ">= 0.0.1", "crypt": ">= 0.0.1" @@ -43352,6 +43919,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -43400,7 +43968,8 @@ "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, "slice-ansi": { "version": "4.0.0", @@ -44055,6 +44624,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -44063,7 +44633,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -44102,7 +44673,8 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "sshpk": { "version": "1.17.0", @@ -44136,6 +44708,7 @@ "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, "requires": { "type-fest": "^0.7.1" }, @@ -44143,7 +44716,8 @@ "type-fest": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true } } }, @@ -44218,7 +44792,8 @@ "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true }, "stream-parser": { "version": "0.3.1", @@ -44258,6 +44833,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -44283,6 +44859,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -44291,12 +44868,14 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -44307,6 +44886,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -44316,6 +44896,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -44342,6 +44923,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dev": true, "requires": { "is-hex-prefixed": "1.0.0" } @@ -44508,6 +45090,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, "requires": { "http-response-object": "^3.0.1", "sync-rpc": "^1.2.1", @@ -44518,6 +45101,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, "requires": { "get-port": "^3.1.0" } @@ -44655,6 +45239,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, "requires": { "@types/concat-stream": "^1.6.0", "@types/form-data": "0.0.33", @@ -44672,7 +45257,8 @@ "@types/node": { "version": "8.10.66", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true } } }, @@ -44745,6 +45331,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "requires": { "os-tmpdir": "~1.0.2" } @@ -44782,6 +45369,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -44835,7 +45423,8 @@ "true-case-path": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "dev": true }, "ts-essentials": { "version": "1.0.4", @@ -44957,7 +45546,8 @@ "tsort": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=" + "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", + "dev": true }, "tsutils": { "version": "3.21.0", @@ -44987,12 +45577,14 @@ "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true }, "tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true }, "type": { "version": "1.2.0", @@ -45111,6 +45703,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, "requires": { "function-bind": "^1.1.1", "has-bigints": "^1.0.1", @@ -45121,7 +45714,8 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true }, "unpipe": { "version": "1.0.0", @@ -46279,6 +46873,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -46311,6 +46906,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -46451,7 +47047,8 @@ "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "dev": true }, "xtend": { "version": "4.0.2", @@ -46519,6 +47116,7 @@ "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -46528,6 +47126,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, "requires": { "flat": "^4.1.0", "lodash": "^4.17.15", @@ -46537,12 +47136,14 @@ "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -46551,6 +47152,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -46561,6 +47163,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -46568,17 +47171,20 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -46587,6 +47193,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -46596,6 +47203,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "requires": { "p-try": "^2.0.0" } @@ -46604,6 +47212,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -46611,17 +47220,20 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -46632,6 +47244,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -46639,12 +47252,14 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -46654,12 +47269,14 @@ "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", diff --git a/package.json b/package.json index 5a6229f54..959c00144 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ "typescript/typechain", "typescript/abacus-sdk", "typescript/contract-metrics", - "typescript/abacus-deploy", - "typescript/abacus-tests" + "typescript/abacus-deploy" ] } diff --git a/scripts/test-solidity.sh b/scripts/test-solidity.sh deleted file mode 100755 index e501f73f2..000000000 --- a/scripts/test-solidity.sh +++ /dev/null @@ -1,18 +0,0 @@ -# script for running solidity tests locally -# Run from root (./scripts/test-solidity.sh) - -set -e - -# compile contracts -npm run build - -# copy artifacts -cp -R ./solidity/abacus-xapps/artifacts ./typescript/abacus-tests -cp -R ./solidity/abacus-core/artifacts ./typescript/abacus-tests - -# copy cache -cp -R ./solidity/abacus-xapps/cache ./typescript/abacus-tests -cp -R ./solidity/abacus-core/cache ./typescript/abacus-tests - -# run tests -npm --prefix ./typescript/abacus-tests run testNoCompile diff --git a/solidity/abacus-core/.prettierrc b/solidity/abacus-core/.prettierrc index dc9e8b1f9..bf810e7b0 100644 --- a/solidity/abacus-core/.prettierrc +++ b/solidity/abacus-core/.prettierrc @@ -1,13 +1,8 @@ { + "tabWidth": 2, + "singleQuote": true, + "trailingComma": "all", "overrides": [ - { - "files": "*.js", - "options": { - "tabWidth": 2, - "singleQuote": true, - "trailingComma": "all" - } - }, { "files": "*.sol", "options": { diff --git a/solidity/abacus-core/contracts/test/TestGovernanceRouter.sol b/solidity/abacus-core/contracts/test/TestGovernanceRouter.sol index cb6a06e21..39687d9e1 100644 --- a/solidity/abacus-core/contracts/test/TestGovernanceRouter.sol +++ b/solidity/abacus-core/contracts/test/TestGovernanceRouter.sol @@ -6,10 +6,6 @@ import "../governance/GovernanceRouter.sol"; import {TypeCasts} from "../XAppConnectionManager.sol"; contract TestGovernanceRouter is GovernanceRouter { - using TypedMemView for bytes; - using TypedMemView for bytes29; - using GovernanceMessage for bytes29; - constructor(uint32 _localDomain, uint256 _recoveryTimelock) GovernanceRouter(_localDomain, 50) {} // solhint-disable-line no-empty-blocks @@ -25,10 +21,6 @@ contract TestGovernanceRouter is GovernanceRouter { _sendToAllRemoteRouters(_setRouterMessage); } - function setRouterAddress(uint32 _domain, address _router) external { - _setRouter(_domain, TypeCasts.addressToBytes32(_router)); - } - function containsDomain(uint32 _domain) external view returns (bool) { for (uint256 i = 0; i < domains.length; i++) { if (domains[i] == _domain) return true; diff --git a/solidity/abacus-core/contracts/test/TestHome.sol b/solidity/abacus-core/contracts/test/TestHome.sol index c86805015..de509a90e 100644 --- a/solidity/abacus-core/contracts/test/TestHome.sol +++ b/solidity/abacus-core/contracts/test/TestHome.sol @@ -4,20 +4,9 @@ pragma solidity >=0.6.11; import "../Home.sol"; contract TestHome is Home { - using QueueLib for QueueLib.Queue; - using MerkleLib for MerkleLib.Tree; - constructor(uint32 _localDomain) Home(_localDomain) {} // solhint-disable-line no-empty-blocks - function nextLeafIndex() external view returns (uint256) { - return count(); - } - - function testHomeDomainHash() external view returns (bytes32) { - return homeDomainHash(); - } - - function testDestinationAndNonce(uint32 _destination, uint32 _nonce) + function destinationAndNonce(uint32 _destination, uint32 _nonce) external pure returns (uint64) diff --git a/solidity/abacus-core/contracts/test/TestReplica.sol b/solidity/abacus-core/contracts/test/TestReplica.sol index cfab26b82..4c423c8f0 100644 --- a/solidity/abacus-core/contracts/test/TestReplica.sol +++ b/solidity/abacus-core/contracts/test/TestReplica.sol @@ -18,11 +18,7 @@ contract TestReplica is Replica { _setFailed(); } - function setRemoteDomain(uint32 _remoteDomain) external { - remoteDomain = _remoteDomain; - } - - function setMessagePending(bytes memory _message) external { + function setMessageProven(bytes memory _message) external { bytes29 _m = _message.ref(0); messages[_m.keccak()] = MessageStatus.Proven; } @@ -32,14 +28,6 @@ contract TestReplica is Replica { confirmAt[_newRoot] = 1; } - function timestamp() external view returns (uint256) { - return block.timestamp; - } - - function testHomeDomainHash() external view returns (bytes32) { - return homeDomainHash(); - } - function testBranchRoot( bytes32 leaf, bytes32[32] calldata proof, diff --git a/solidity/abacus-core/hardhat.config.ts b/solidity/abacus-core/hardhat.config.ts index 440e27605..c2030ddf8 100644 --- a/solidity/abacus-core/hardhat.config.ts +++ b/solidity/abacus-core/hardhat.config.ts @@ -1,6 +1,9 @@ import "solidity-coverage"; import "@typechain/hardhat"; import "@nomiclabs/hardhat-etherscan"; +import "@nomiclabs/hardhat-waffle"; +import "hardhat-gas-reporter"; +import './test/lib/index'; import { task } from "hardhat/config"; import { verifyLatestCoreDeploy } from "../../typescript/abacus-deploy/src/verification/verifyLatestDeploy"; @@ -33,7 +36,9 @@ module.exports = { }, }, }, - + gasReporter: { + currency: "USD", + }, networks: { localhost: { url: "http://localhost:8545", @@ -56,7 +61,7 @@ module.exports = { // TODO: add Ropsten }, typechain: { - outDir: "../../typescript/typechain/abacus-core", + outDir: "./typechain", target: "ethers-v5", alwaysGenerateOverloads: false, // should overloads with full signatures like deposit(uint256) be generated always, even if there are no overloads? }, diff --git a/solidity/abacus-core/libs/Message.sol b/solidity/abacus-core/libs/Message.sol index 7b416ada5..15e58717e 100644 --- a/solidity/abacus-core/libs/Message.sol +++ b/solidity/abacus-core/libs/Message.sol @@ -3,9 +3,7 @@ pragma solidity >=0.6.11; import "@summa-tx/memview-sol/contracts/TypedMemView.sol"; -import { - TypeCasts -} from "./TypeCasts.sol"; +import {TypeCasts} from "./TypeCasts.sol"; /** * @title Message Library @@ -119,6 +117,14 @@ library Message { } function leaf(bytes29 _message) internal view returns (bytes32) { - return messageHash(origin(_message), sender(_message), nonce(_message), destination(_message), recipient(_message), TypedMemView.clone(body(_message))); + return + messageHash( + origin(_message), + sender(_message), + nonce(_message), + destination(_message), + recipient(_message), + TypedMemView.clone(body(_message)) + ); } } diff --git a/solidity/abacus-core/package.json b/solidity/abacus-core/package.json index 0de65359d..8f3cecfc3 100644 --- a/solidity/abacus-core/package.json +++ b/solidity/abacus-core/package.json @@ -10,7 +10,8 @@ "eslint": "^7.20.0", "ethereum-waffle": "^3.2.2", "ethers": "^5.4.4", - "hardhat": "^2.0.8", + "hardhat": "^2.8.3", + "hardhat-gas-reporter": "^1.0.7", "prettier": "^2.2.1", "prettier-plugin-solidity": "^1.0.0-beta.5", "solhint": "^3.3.2", @@ -20,17 +21,18 @@ "typechain": "^5.0.0" }, "version": "0.0.0", - "description": "Optimistic Interchain Communications", + "description": "Abacus Interchain Communications", "main": " ", "directories": { "test": "test" }, "scripts": { - "prettier": "prettier --write ./contracts", - "compile": "hardhat compile && hardhat typechain && npm run prettier && ./update_abis.sh", + "prettier": "prettier --write ./contracts ./libs ./test", + "compile": "hardhat compile && hardhat typechain && npm run prettier && npm run copy-typechain", + "copy-typechain": "cp -r typechain/* ../../typescript/typechain/abacus-core/", "build": "npm run compile", + "test": "hardhat test", "coverage": "npm run compile && hardhat coverage", - "test": "cd ../../ && ./scripts/test-solidity.sh", "lint": "solhint 'contracts/*.sol' && solhint 'contracts/**/*.sol'", "lint:fix": "solhint --fix 'contracts/*.sol' && solhint --fix 'contracts/**/*.sol'", "deploy": "npm run compile && cd ../../typescript/abacus-deploy && npm run deploy-core", diff --git a/typescript/abacus-tests/test/common.test.ts b/solidity/abacus-core/test/common.test.ts similarity index 95% rename from typescript/abacus-tests/test/common.test.ts rename to solidity/abacus-core/test/common.test.ts index f86430d74..ffa373fc6 100644 --- a/typescript/abacus-tests/test/common.test.ts +++ b/solidity/abacus-core/test/common.test.ts @@ -1,13 +1,10 @@ import { ethers } from 'hardhat'; import { expect } from 'chai'; -import { AbacusState, Updater } from '../lib/core'; -import { Signer } from '../lib/types'; +import { AbacusState, Updater } from './lib/core'; +import { Signer } from './lib/types'; -import { - TestCommon__factory, - TestCommon, -} from '@abacus-network/ts-interface/dist/abacus-core'; +import { TestCommon__factory, TestCommon } from '../typechain'; const signedUpdateTestCases = require('../../../vectors/signedUpdate.json'); const localDomain = 1000; diff --git a/typescript/abacus-tests/test/cross-chain/governanceRouter.test.ts b/solidity/abacus-core/test/cross-chain/governanceRouter.test.ts similarity index 67% rename from typescript/abacus-tests/test/cross-chain/governanceRouter.test.ts rename to solidity/abacus-core/test/cross-chain/governanceRouter.test.ts index ac4b2ad8e..c0c53e48f 100644 --- a/typescript/abacus-tests/test/cross-chain/governanceRouter.test.ts +++ b/solidity/abacus-core/test/cross-chain/governanceRouter.test.ts @@ -3,42 +3,49 @@ import { expect } from 'chai'; import { updateReplica, formatCall, formatAbacusMessage } from './utils'; import { increaseTimestampBy, UpgradeTestHelpers } from '../utils'; -import { getTestDeploy } from '../testChain'; -import { Updater } from '../../lib/core'; -import { Address, Signer } from '../../lib/types'; -import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; +import { Updater } from '../lib/core'; +import { Address, Signer } from '../lib/types'; +import { AbacusDeployment } from '../lib/AbacusDeployment'; +import { GovernanceDeployment } from '../lib/GovernanceDeployment'; import { - deployNChains, - deployUnenrolledReplica, -} from '@abacus-network/abacus-deploy/dist/src/core'; -import * as contracts from '@abacus-network/ts-interface/dist/abacus-core'; + MysteryMathV2__factory, + TestReplica, + TestReplica__factory, + TestRecipient__factory, + TestGovernanceRouter, + Replica, + Home, +} from '../../typechain'; const helpers = require('../../../../vectors/proof.json'); const governorDomain = 1000; const nonGovernorDomain = 2000; const thirdDomain = 3000; +const domains = [governorDomain, nonGovernorDomain, thirdDomain]; +const processGas = 850000; +const reserveGas = 15000; /* * Deploy the full Abacus suite on two chains */ describe('GovernanceRouter', async () => { - let deploys: Deploy[] = []; - + let abacusDeployment: AbacusDeployment; + let governanceDeployment: GovernanceDeployment; let signer: Signer, - secondGovernorSigner: Signer, + secondSigner: Signer, thirdRouter: Signer, - governorRouter: contracts.TestGovernanceRouter, - governorHome: contracts.Home, - governorReplicaOnNonGovernorChain: contracts.TestReplica, - nonGovernorRouter: contracts.TestGovernanceRouter, - nonGovernorReplicaOnGovernorChain: contracts.TestReplica, firstGovernor: Address, secondGovernor: Address, + governorRouter: TestGovernanceRouter, + nonGovernorRouter: TestGovernanceRouter, + governorHome: Home, + governorReplicaOnNonGovernorChain: TestReplica, + nonGovernorReplicaOnGovernorChain: TestReplica, updater: Updater; async function expectGovernor( - governanceRouter: contracts.TestGovernanceRouter, + governanceRouter: TestGovernanceRouter, expectedGovernorDomain: number, expectedGovernor: Address, ) { @@ -49,130 +56,82 @@ describe('GovernanceRouter', async () => { } before(async () => { - [thirdRouter, signer, secondGovernorSigner] = await ethers.getSigners(); + [thirdRouter, signer, secondSigner] = await ethers.getSigners(); updater = await Updater.fromSigner(signer, governorDomain); }); beforeEach(async () => { - // reset deploys - deploys[0] = await getTestDeploy(governorDomain, updater.address, []); - deploys[1] = await getTestDeploy(nonGovernorDomain, updater.address, []); - deploys[2] = await getTestDeploy(thirdDomain, updater.address, []); - - // deploy the entire Abacus suite on two chains - await deployNChains([deploys[0], deploys[1]]); - - // get both governanceRouters - governorRouter = deploys[0].contracts.governanceRouter - ?.proxy! as contracts.TestGovernanceRouter; - nonGovernorRouter = deploys[1].contracts.governanceRouter - ?.proxy! as contracts.TestGovernanceRouter; - - firstGovernor = await governorRouter.governor(); - secondGovernor = await secondGovernorSigner.getAddress(); - - governorHome = deploys[0].contracts.home?.proxy!; - - governorReplicaOnNonGovernorChain = deploys[1].contracts.replicas[ - governorDomain - ].proxy! as contracts.TestReplica; - nonGovernorReplicaOnGovernorChain = deploys[0].contracts.replicas[ - nonGovernorDomain - ].proxy! as contracts.TestReplica; + abacusDeployment = await abacus.deployment.fromDomains(domains, signer); + governanceDeployment = await GovernanceDeployment.fromAbacusDeployment( + abacusDeployment, + signer, + ); + + firstGovernor = await signer.getAddress(); + secondGovernor = await secondSigner.getAddress(); + + governorRouter = governanceDeployment.router(governorDomain); + nonGovernorRouter = governanceDeployment.router(nonGovernorDomain); + + governorReplicaOnNonGovernorChain = abacusDeployment.replica( + nonGovernorDomain, + governorDomain, + ); + nonGovernorReplicaOnGovernorChain = abacusDeployment.replica( + governorDomain, + nonGovernorDomain, + ); + + governorHome = abacusDeployment.home(governorDomain); }); // NB: must be first test for message proof it('Sends cross-chain message to upgrade contract', async () => { - const deploy = deploys[1]; const upgradeUtils = new UpgradeTestHelpers(); // get upgradeBeaconController - const upgradeBeaconController = deploy.contracts.upgradeBeaconController!; - + const ubc = abacusDeployment.ubc(nonGovernorDomain); + // Transfer ownership of the UBC to governance. + await ubc.transferOwnership(nonGovernorRouter.address); const mysteryMath = await upgradeUtils.deployMysteryMathUpgradeSetup( - deploy, signer, - false, + ubc, ); // expect results before upgrade await upgradeUtils.expectMysteryMathV1(mysteryMath.proxy); // Deploy Implementation 2 - const factory2 = new contracts.MysteryMathV2__factory(signer); + const factory2 = new MysteryMathV2__factory(signer); const implementation2 = await factory2.deploy(); // Format abacus call message - const call = await formatCall(upgradeBeaconController, 'upgrade', [ + const call = await formatCall(ubc, 'upgrade', [ mysteryMath.beacon.address, implementation2.address, ]); - const committedRoot = await governorHome.committedRoot(); - // dispatch call on local governorRouter let tx = await governorRouter.callRemote(nonGovernorDomain, [call]); - let receipt = await tx.wait(0); - let leaf = receipt.events?.[0].topics[1]; - - expect(leaf).to.equal(helpers.proof.leaf); - - const [, latestRoot] = await governorHome.suggestUpdate(); - expect(latestRoot).to.equal(helpers.root); - - const { signature } = await updater.signUpdate(committedRoot, latestRoot); - - await expect(governorHome.update(committedRoot, latestRoot, signature)) - .to.emit(governorHome, 'Update') - .withArgs(governorDomain, committedRoot, latestRoot, signature); - - expect(await governorHome.committedRoot()).to.equal(latestRoot); - expect(await governorHome.queueContains(latestRoot)).to.be.false; - - await updateReplica( - { oldRoot: committedRoot, newRoot: latestRoot, signature }, - governorReplicaOnNonGovernorChain, - ); - - // Increase time enough for both updates to be confirmable - const optimisticSeconds = deploy.config.optimisticSeconds; - await increaseTimestampBy(deploy.chain.provider, optimisticSeconds * 2); - - // after confirming, committedRoot should be equal to the last submitted update - expect(await governorReplicaOnNonGovernorChain.committedRoot()).to.equal( - latestRoot, - ); - - const callMessage = abacus.governance.formatCalls([call]); - - const nonce = await governorHome.nonces(nonGovernorDomain); - const abacusMessage = abacus.formatMessage( - governorDomain, - governorRouter.address, - nonce - 1, - nonGovernorDomain, - nonGovernorRouter.address, - callMessage, - ); - - expect(ethers.utils.keccak256(abacusMessage)).to.equal(leaf); - - const { path, index } = helpers.proof; - await governorReplicaOnNonGovernorChain.proveAndProcess( - abacusMessage, - path, - index, - ); + await abacusDeployment.processMessages(); // test implementation was upgraded await upgradeUtils.expectMysteryMathV2(mysteryMath.proxy); }); it('Rejects message from unenrolled replica', async () => { - await deployUnenrolledReplica(deploys[1], deploys[2]); - - const unenrolledReplica = deploys[1].contracts.replicas[thirdDomain] - .proxy! as contracts.TestReplica; + const replicaFactory = new TestReplica__factory(signer); + const unenrolledReplica = await replicaFactory.deploy( + nonGovernorDomain, + processGas, + reserveGas, + ); + await unenrolledReplica.initialize( + thirdDomain, + await signer.getAddress(), + ethers.constants.HashZero, + 0, + ); // Create TransferGovernor message const transferGovernorMessage = abacus.governance.formatTransferGovernor( @@ -206,8 +165,8 @@ describe('GovernanceRouter', async () => { transferGovernorMessage, ); - // Set message status to MessageStatus.Pending - await nonGovernorReplicaOnGovernorChain.setMessagePending(abacusMessage); + // Set message status to MessageStatus.Proven + await nonGovernorReplicaOnGovernorChain.setMessageProven(abacusMessage); // Expect replica processing to fail when nonGovernorRouter reverts in handle let success = @@ -286,12 +245,12 @@ describe('GovernanceRouter', async () => { it('Accepts valid call messages', async () => { // const TestRecipient = await abacus.deployImplementation('TestRecipient'); - const testRecipientFactory = new contracts.TestRecipient__factory(signer); - const TestRecipient = await testRecipientFactory.deploy(); + const testRecipientFactory = new TestRecipient__factory(signer); + const testRecipient = await testRecipientFactory.deploy(); // Format abacus call message const arg = 'String!'; - const call = await formatCall(TestRecipient, 'receiveString', [arg]); + const call = await formatCall(testRecipient, 'receiveString', [arg]); // Create Call message to test recipient that calls receiveString const callMessage = abacus.governance.formatCalls([call, call]); @@ -393,31 +352,32 @@ describe('GovernanceRouter', async () => { it('Upgrades using GovernanceRouter call', async () => { const upgradeUtils = new UpgradeTestHelpers(); - const deploy = deploys[0]; + // get upgradeBeaconController + const ubc = abacusDeployment.ubc(governorDomain); + // Transfer ownership of the UBC to governance. + await ubc.transferOwnership(governorRouter.address); const mysteryMath = await upgradeUtils.deployMysteryMathUpgradeSetup( - deploy, signer, + ubc, ); - const upgradeBeaconController = deploy.contracts.upgradeBeaconController!; - // expect results before upgrade await upgradeUtils.expectMysteryMathV1(mysteryMath.proxy); // Deploy Implementation 2 - const v2Factory = new contracts.MysteryMathV2__factory(signer); + const v2Factory = new MysteryMathV2__factory(signer); const implementation = await v2Factory.deploy(); // Format abacus call message - const call = await formatCall(upgradeBeaconController, 'upgrade', [ + const call = await formatCall(ubc, 'upgrade', [ mysteryMath.beacon.address, implementation.address, ]); // dispatch call on local governorRouter await expect(governorRouter.callLocal([call])).to.emit( - upgradeBeaconController, + ubc, 'BeaconUpgraded', ); @@ -427,11 +387,14 @@ describe('GovernanceRouter', async () => { it('Calls UpdaterManager to change the Updater on Home', async () => { const [newUpdater] = await ethers.getSigners(); - const updaterManager = deploys[0].contracts.updaterManager!; + const updaterManager = abacusDeployment.updaterManager(governorDomain); + await updaterManager.transferOwnership(governorRouter.address); // check current Updater address on Home let currentUpdaterAddr = await governorHome.updater(); - expect(currentUpdaterAddr).to.equal(deploys[0].updater); + expect(currentUpdaterAddr).to.equal( + await abacusDeployment.updater(governorDomain).signer.getAddress(), + ); // format abacus call message const call = await formatCall(updaterManager, 'setUpdater', [ diff --git a/typescript/abacus-tests/test/cross-chain/recoveryManager.test.ts b/solidity/abacus-core/test/cross-chain/recoveryManager.test.ts similarity index 90% rename from typescript/abacus-tests/test/cross-chain/recoveryManager.test.ts rename to solidity/abacus-core/test/cross-chain/recoveryManager.test.ts index 8092871fc..2e9f2fcca 100644 --- a/typescript/abacus-tests/test/cross-chain/recoveryManager.test.ts +++ b/solidity/abacus-core/test/cross-chain/recoveryManager.test.ts @@ -4,20 +4,23 @@ import * as types from 'ethers'; import { formatCall, sendFromSigner } from './utils'; import { increaseTimestampBy } from '../utils'; -import { getTestDeploy } from '../testChain'; -import { Updater } from '../../lib/core'; -import { Signer } from '../../lib/types'; -import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; -import { deployNChains } from '@abacus-network/abacus-deploy/dist/src/core'; -import * as contracts from '@abacus-network/ts-interface/dist/abacus-core'; +import { Updater } from '../lib/core'; +import { Signer } from '../lib/types'; +import { + UpdaterManager, + TestGovernanceRouter, + TestHome, +} from '../../typechain'; +import { AbacusDeployment } from '../lib/AbacusDeployment'; +import { GovernanceDeployment } from '../lib/GovernanceDeployment'; async function expectNotInRecovery( - updaterManager: contracts.UpdaterManager, + updaterManager: UpdaterManager, recoveryManager: types.Signer, randomSigner: Signer, governor: Signer, - governanceRouter: contracts.TestGovernanceRouter, - home: contracts.TestHome, + governanceRouter: TestGovernanceRouter, + home: TestHome, ) { expect(await governanceRouter.inRecovery()).to.be.false; @@ -102,7 +105,7 @@ async function expectNotInRecovery( async function expectOnlyRecoveryManagerCanTransferRole( governor: Signer, - governanceRouter: contracts.TestGovernanceRouter, + governanceRouter: TestGovernanceRouter, randomSigner: Signer, recoveryManager: Signer, ) { @@ -140,7 +143,7 @@ async function expectOnlyRecoveryManagerCanTransferRole( async function expectOnlyRecoveryManagerCanExitRecovery( governor: Signer, - governanceRouter: contracts.TestGovernanceRouter, + governanceRouter: TestGovernanceRouter, randomSigner: Signer, recoveryManager: Signer, ) { @@ -161,7 +164,7 @@ async function expectOnlyRecoveryManagerCanExitRecovery( async function expectOnlyRecoveryManagerCanInitiateRecovery( governor: Signer, - governanceRouter: contracts.TestGovernanceRouter, + governanceRouter: TestGovernanceRouter, randomSigner: Signer, recoveryManager: Signer, ) { @@ -194,47 +197,42 @@ async function expectOnlyRecoveryManagerCanInitiateRecovery( const localDomain = 1000; const remoteDomain = 2000; +const domains = [localDomain, remoteDomain]; /* * Deploy the full Abacus suite on two chains */ describe('RecoveryManager', async () => { + let abacusDeployment: AbacusDeployment; + let governanceDeployment: GovernanceDeployment; let governor: Signer, recoveryManager: Signer, randomSigner: Signer, - governanceRouter: contracts.TestGovernanceRouter, - home: contracts.TestHome, - updaterManager: contracts.UpdaterManager; - - let deploys: Deploy[] = []; + governanceRouter: TestGovernanceRouter, + home: TestHome, + updaterManager: UpdaterManager; before(async () => { [governor, recoveryManager, randomSigner] = await ethers.getSigners(); const updater = await Updater.fromSigner(randomSigner, localDomain); - - deploys.push( - await getTestDeploy( - localDomain, - updater.address, - [], - recoveryManager.address, - ), + abacusDeployment = await abacus.deployment.fromDomains( + domains, + randomSigner, ); - deploys.push( - await getTestDeploy( - remoteDomain, - updater.address, - [], - recoveryManager.address, - ), + governanceDeployment = await GovernanceDeployment.fromAbacusDeployment( + abacusDeployment, + recoveryManager, ); + for (const domain of domains) { + await abacusDeployment.transferOwnership( + domain, + governanceDeployment.router(domain).address, + ); + } - await deployNChains(deploys); - - governanceRouter = deploys[0].contracts.governanceRouter - ?.proxy! as contracts.TestGovernanceRouter; - home = deploys[0].contracts.home?.proxy! as contracts.TestHome; - updaterManager = deploys[0].contracts.updaterManager!; + governanceRouter = governanceDeployment.router(localDomain); + home = abacusDeployment.home(localDomain); + updaterManager = abacusDeployment.updaterManager(localDomain); // set governor await governanceRouter.transferGovernor(localDomain, governor.address); diff --git a/typescript/abacus-tests/test/cross-chain/simpleMessage.test.ts b/solidity/abacus-core/test/cross-chain/simpleMessage.test.ts similarity index 72% rename from typescript/abacus-tests/test/cross-chain/simpleMessage.test.ts rename to solidity/abacus-core/test/cross-chain/simpleMessage.test.ts index 2e3458376..d80599a66 100644 --- a/typescript/abacus-tests/test/cross-chain/simpleMessage.test.ts +++ b/solidity/abacus-core/test/cross-chain/simpleMessage.test.ts @@ -2,15 +2,11 @@ import { abacus, ethers } from 'hardhat'; import { expect } from 'chai'; import * as utils from './utils'; -import { getTestDeploy } from '../testChain'; -import { Updater, MessageStatus } from '../../lib/core'; -import { Update, Signer, BytesArray } from '../../lib/types'; -import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; -import { deployTwoChains } from '@abacus-network/abacus-deploy/dist/src/core'; -import { - TestRecipient__factory, - TestReplica, -} from '@abacus-network/ts-interface/dist/abacus-core'; +import { Updater, MessageStatus } from '../lib/core'; +import { Update, Signer, BytesArray } from '../lib/types'; +import { TestRecipient__factory, TestReplica } from '../../typechain'; +import { AbacusDeployment } from '../lib/AbacusDeployment'; +import { GovernanceDeployment } from '../lib/GovernanceDeployment'; const proveAndProcessTestCases = require('../../../../vectors/proveAndProcess.json'); @@ -27,37 +23,38 @@ const remoteDomain = domains[1]; * TODO prove and process messages on Replica */ describe('SimpleCrossChainMessage', async () => { - // deploys[0] is the local deploy and governor chain - // deploys[1] is the remote deploy - let deploys: Deploy[] = []; - + let abacusDeployment: AbacusDeployment; + let governanceDeployment: GovernanceDeployment; let randomSigner: Signer, updater: Updater, latestUpdate: Update; before(async () => { [randomSigner] = await ethers.getSigners(); updater = await Updater.fromSigner(randomSigner, localDomain); - - deploys.push(await getTestDeploy(localDomain, updater.address, [])); - deploys.push(await getTestDeploy(remoteDomain, updater.address, [])); - - await deployTwoChains(deploys[0], deploys[1]); + abacusDeployment = await abacus.deployment.fromDomains( + domains, + randomSigner, + ); + governanceDeployment = await GovernanceDeployment.fromAbacusDeployment( + abacusDeployment, + randomSigner, + ); }); it('All Homes have correct initial state', async () => { const nullRoot = '0x' + '00'.repeat(32); - // governorHome has 1 updates - const governorHome = deploys[0].contracts.home?.proxy!; + // governorHome has 0 updates + const governorHome = abacusDeployment.home(localDomain); let length = await governorHome.queueLength(); - expect(length).to.equal(1); + expect(length).to.equal(0); let [suggestedCommitted, suggestedNew] = await governorHome.suggestUpdate(); expect(suggestedCommitted).to.equal(nullRoot); - expect(suggestedNew).to.not.equal(nullRoot); + expect(suggestedNew).to.equal(nullRoot); // nonGovernorHome has 2 updates - const nonGovernorHome = deploys[1].contracts.home?.proxy!; + const nonGovernorHome = abacusDeployment.home(remoteDomain); length = await nonGovernorHome.queueLength(); expect(length).to.equal(2); @@ -72,7 +69,7 @@ describe('SimpleCrossChainMessage', async () => { utils.formatMessage(message, remoteDomain, randomSigner.address), ); const update = await utils.dispatchMessagesAndUpdateHome( - deploys[0].contracts.home?.proxy!, + abacusDeployment.home(localDomain), messages, updater, ); @@ -83,7 +80,7 @@ describe('SimpleCrossChainMessage', async () => { it('Destination Replica Accepts the first update', async () => { await utils.updateReplica( latestUpdate, - deploys[1].contracts.replicas[localDomain].proxy!, + abacusDeployment.replica(remoteDomain, localDomain), ); }); @@ -92,7 +89,7 @@ describe('SimpleCrossChainMessage', async () => { utils.formatMessage(message, remoteDomain, randomSigner.address), ); const update = await utils.dispatchMessagesAndUpdateHome( - deploys[0].contracts.home?.proxy!, + abacusDeployment.home(localDomain), messages, updater, ); @@ -102,23 +99,22 @@ describe('SimpleCrossChainMessage', async () => { it('Destination Replica Accepts the second update', async () => { await utils.updateReplica( latestUpdate, - deploys[1].contracts.replicas[localDomain].proxy, + abacusDeployment.replica(remoteDomain, localDomain), ); }); it('Destination Replica shows latest update as the committed root', async () => { - const replica = deploys[1].contracts.replicas[localDomain].proxy; + const replica = abacusDeployment.replica(remoteDomain, localDomain); const { newRoot } = latestUpdate; expect(await replica.committedRoot()).to.equal(newRoot); }); it('Proves and processes a message on Replica', async () => { // get governance routers - const governorRouter = deploys[0].contracts.governanceRouter!.proxy; - const nonGovernorRouter = deploys[1].contracts.governanceRouter!.proxy; + const governorRouter = governanceDeployment.router(localDomain); + const nonGovernorRouter = governanceDeployment.router(remoteDomain); - const replica = deploys[1].contracts.replicas[localDomain] - .proxy as TestReplica; + const replica = abacusDeployment.replica(remoteDomain, localDomain); const testRecipientFactory = new TestRecipient__factory(randomSigner); const TestRecipient = await testRecipientFactory.deploy(); diff --git a/typescript/abacus-tests/test/cross-chain/utils.ts b/solidity/abacus-core/test/cross-chain/utils.ts similarity index 95% rename from typescript/abacus-tests/test/cross-chain/utils.ts rename to solidity/abacus-core/test/cross-chain/utils.ts index a9a37bcd1..374ff827d 100644 --- a/typescript/abacus-tests/test/cross-chain/utils.ts +++ b/solidity/abacus-core/test/cross-chain/utils.ts @@ -2,14 +2,14 @@ import { expect } from 'chai'; import { ethers, abacus } from 'hardhat'; import * as types from 'ethers'; -import { Updater } from '../../lib/core'; -import { Update, CallData, Address } from '../../lib/types'; +import { Updater } from '../lib/core'; +import { Update, CallData, Address } from '../lib/types'; import { Replica, TestReplica, Home, TestGovernanceRouter, -} from '@abacus-network/ts-interface/dist/abacus-core'; +} from '../../typechain'; type MessageDetails = { message: string; @@ -175,8 +175,8 @@ export async function formatAbacusMessage( message, ); - // Set message status to MessageStatus.Pending - await replica.setMessagePending(abacusMessage); + // Set message status to MessageStatus.Proven + await replica.setMessageProven(abacusMessage); return abacusMessage; } diff --git a/typescript/abacus-tests/test/home.test.ts b/solidity/abacus-core/test/home.test.ts similarity index 82% rename from typescript/abacus-tests/test/home.test.ts rename to solidity/abacus-core/test/home.test.ts index e7abc496f..62b279a91 100644 --- a/typescript/abacus-tests/test/home.test.ts +++ b/solidity/abacus-core/test/home.test.ts @@ -1,16 +1,14 @@ import { ethers, abacus } from 'hardhat'; import { expect } from 'chai'; -import { getTestDeploy } from './testChain'; -import { AbacusState, Updater } from '../lib/core'; -import { Signer } from '../lib/types'; -import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; -import * as deploys from '@abacus-network/abacus-deploy/dist/src/core'; +import { AbacusState, Updater } from './lib/core'; +import { Signer } from './lib/types'; import { TestHome, + TestHome__factory, UpdaterManager__factory, UpdaterManager, -} from '@abacus-network/ts-interface/dist/abacus-core'; +} from '../typechain'; const homeDomainHashTestCases = require('../../../vectors/homeDomainHash.json'); const destinationNonceTestCases = require('../../../vectors/destinationNonce.json'); @@ -19,15 +17,14 @@ const localDomain = 1000; const destDomain = 2000; const emptyAddress: string = '0x' + '00'.repeat(32); -describe.only('Home', async () => { - let deploy: Deploy, - home: TestHome, +describe('Home', async () => { + let home: TestHome, signer: Signer, fakeSigner: Signer, recipient: Signer, updater: Updater, fakeUpdater: Updater, - fakeUpdaterManager: UpdaterManager; + updaterManager: UpdaterManager; // Helper function that dispatches message and returns intermediate root. // The message recipient is the same for all messages dispatched. @@ -45,35 +42,26 @@ describe.only('Home', async () => { before(async () => { [signer, fakeSigner, recipient] = await ethers.getSigners(); updater = await Updater.fromSigner(signer, localDomain); - - deploy = await getTestDeploy(localDomain, updater.address, []); - - await deploys.deployUpdaterManager(deploy); - await deploys.deployUpgradeBeaconController(deploy); - fakeUpdater = await Updater.fromSigner(fakeSigner, localDomain); - // deploy fake UpdaterManager + // deploy UpdaterManagers const updaterManagerFactory = new UpdaterManager__factory(signer); - fakeUpdaterManager = await updaterManagerFactory.deploy(updater.address); - - const ret = await fakeUpdaterManager.updater(); - expect(ret).to.equal(signer.address); + updaterManager = await updaterManagerFactory.deploy(updater.address); }); beforeEach(async () => { // redeploy the home before each test run - await deploys.deployHome(deploy); - home = deploy.contracts.home?.proxy as TestHome; - + const homeFactory = new TestHome__factory(signer); + home = await homeFactory.deploy(localDomain); + await home.initialize(updaterManager.address); // set home on UpdaterManager - await deploy.contracts.updaterManager!.setHome(home.address); + await updaterManager.setHome(home.address); }); it('Cannot be initialized twice', async () => { - await expect( - home.initialize(fakeUpdaterManager.address), - ).to.be.revertedWith('Initializable: contract is already initialized'); + await expect(home.initialize(updaterManager.address)).to.be.revertedWith( + 'Initializable: contract is already initialized', + ); }); it('Halts on fail', async () => { @@ -94,18 +82,10 @@ describe.only('Home', async () => { // Compare Rust output in json file to solidity output (json file matches // hash for local domain of 1000) for (let testCase of homeDomainHashTestCases) { - let deploy = await getTestDeploy( - testCase.homeDomain, - fakeUpdaterManager.address, - [], - ); - await deploys.deployUpdaterManager(deploy); - await deploys.deployUpgradeBeaconController(deploy); - await deploys.deployHome(deploy); - - const tempHome = deploy.contracts.home?.proxy! as TestHome; + const homeFactory = new TestHome__factory(signer); + const tempHome = await homeFactory.deploy(testCase.homeDomain); const { expectedDomainHash } = testCase; - const homeDomainHash = await tempHome.testHomeDomainHash(); + const homeDomainHash = await tempHome.homeDomainHash(); expect(homeDomainHash).to.equal(expectedDomainHash); } }); @@ -139,7 +119,7 @@ describe.only('Home', async () => { message, ); const messageHash = abacus.messageHash(abacusMessage); - const leafIndex = await home.nextLeafIndex(); + const leafIndex = await home.tree(); const committedRoot = await home.committedRoot(); // Send message with signer address as msg.sender @@ -272,7 +252,7 @@ describe.only('Home', async () => { it('Correctly calculates destinationAndNonce', async () => { for (let testCase of destinationNonceTestCases) { let { destination, nonce, expectedDestinationAndNonce } = testCase; - const solidityDestinationAndNonce = await home.testDestinationAndNonce( + const solidityDestinationAndNonce = await home.destinationAndNonce( destination, nonce, ); diff --git a/solidity/abacus-core/test/lib/AbacusDeployment.ts b/solidity/abacus-core/test/lib/AbacusDeployment.ts new file mode 100644 index 000000000..c9d07a914 --- /dev/null +++ b/solidity/abacus-core/test/lib/AbacusDeployment.ts @@ -0,0 +1,188 @@ +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { assert } from 'chai'; +import * as ethers from 'ethers'; + +import * as types from './types'; +import { Updater } from './core'; + +import { + TestHome, + TestHome__factory, + UpdaterManager, + UpdaterManager__factory, + UpgradeBeaconController, + UpgradeBeaconController__factory, + XAppConnectionManager, + XAppConnectionManager__factory, + TestReplica, + TestReplica__factory, +} from '../../typechain'; + +export interface AbacusInstance { + domain: types.Domain; + updater: Updater; + updaterManager: UpdaterManager; + home: TestHome; + connectionManager: XAppConnectionManager; + ubc: UpgradeBeaconController; + replicas: Record; +} + +const processGas = 850000; +const reserveGas = 15000; +const optimisticSeconds = 0; + +export class AbacusDeployment { + constructor( + public readonly domains: types.Domain[], + public readonly instances: Record, + public readonly signer: ethers.Signer, + ) {} + + static async fromDomains(domains: types.Domain[], signer: ethers.Signer) { + const instances: Record = {}; + for (const local of domains) { + const instance = await AbacusDeployment.deployInstance( + local, + domains.filter((d) => d !== local), + signer, + ); + instances[local] = instance; + } + return new AbacusDeployment(domains, instances, signer); + } + + static async deployInstance( + local: types.Domain, + remotes: types.Domain[], + signer: ethers.Signer, + ): Promise { + const updaterManagerFactory = new UpdaterManager__factory(signer); + const updaterManager = await updaterManagerFactory.deploy( + await signer.getAddress(), + ); + + const ubcFactory = new UpgradeBeaconController__factory(signer); + const ubc = await ubcFactory.deploy(); + + const homeFactory = new TestHome__factory(signer); + const home = await homeFactory.deploy(local); + await home.initialize(updaterManager.address); + await updaterManager.setHome(home.address); + + const connectionManagerFactory = new XAppConnectionManager__factory(signer); + const connectionManager = await connectionManagerFactory.deploy(); + await connectionManager.setHome(home.address); + + const replicaFactory = new TestReplica__factory(signer); + const replicas: Record = {}; + const deploys = remotes.map(async (remoteDomain) => { + const replica = await replicaFactory.deploy( + local, + processGas, + reserveGas, + ); + await replica.initialize( + remoteDomain, + await signer.getAddress(), + ethers.constants.HashZero, + optimisticSeconds, + ); + await connectionManager.ownerEnrollReplica(replica.address, remoteDomain); + replicas[remoteDomain] = replica; + }); + await Promise.all(deploys); + return { + domain: local, + updater: await Updater.fromSigner(signer, local), + home, + connectionManager, + updaterManager, + replicas, + ubc, + }; + } + + async transferOwnership(domain: types.Domain, address: types.Address) { + await this.home(domain).transferOwnership(address); + await this.ubc(domain).transferOwnership(address); + await this.connectionManager(domain).transferOwnership(address); + await this.updaterManager(domain).transferOwnership(address); + for (const remote of this.domains) { + if (remote !== domain) { + await this.replica(domain, remote).transferOwnership(address); + } + } + } + + home(domain: types.Domain): TestHome { + return this.instances[domain].home; + } + + ubc(domain: types.Domain): UpgradeBeaconController { + return this.instances[domain].ubc; + } + + updater(domain: types.Domain): Updater { + return this.instances[domain].updater; + } + + replica(local: types.Domain, remote: types.Domain): TestReplica { + return this.instances[local].replicas[remote]; + } + + connectionManager(domain: types.Domain): XAppConnectionManager { + return this.instances[domain].connectionManager; + } + + updaterManager(domain: types.Domain): UpdaterManager { + return this.instances[domain].updaterManager; + } + + async processMessages() { + await Promise.all( + this.domains.map((d) => this.processMessagesFromDomain(d)), + ); + } + + async processMessagesFromDomain(local: types.Domain) { + const home = this.home(local); + const [committedRoot, latestRoot] = await home.suggestUpdate(); + + // Find the block number of the last update submitted on Home. + const updateFilter = home.filters.Update(null, null, committedRoot); + const updates = await home.queryFilter(updateFilter); + assert(updates.length === 0 || updates.length === 1); + const fromBlock = updates.length === 0 ? 0 : updates[0].blockNumber; + + // Update the Home and Replicas to the latest roots. + // This is technically not necessary given that we are not proving against + // a root in the TestReplica. + const updater = this.updater(local); + const { signature } = await updater.signUpdate(committedRoot, latestRoot); + await home.update(committedRoot, latestRoot, signature); + + for (const remote of this.domains) { + if (remote !== local) { + const replica = this.replica(remote, local); + await replica.update(committedRoot, latestRoot, signature); + } + } + + // Find all messages dispatched on the home since the previous update. + const dispatchFilter = home.filters.Dispatch(); + const dispatches = await home.queryFilter(dispatchFilter, fromBlock); + for (const dispatch of dispatches) { + const destination = dispatch.args.destinationAndNonce.shr(32).toNumber(); + if (destination !== local) { + const replica = this.replica(destination, local); + await replica.setMessageProven(dispatch.args.message); + await replica.testProcess(dispatch.args.message); + } + } + } +} + +export const abacus: any = { + AbacusDeployment, +}; diff --git a/solidity/abacus-core/test/lib/GovernanceDeployment.ts b/solidity/abacus-core/test/lib/GovernanceDeployment.ts new file mode 100644 index 000000000..665d9e043 --- /dev/null +++ b/solidity/abacus-core/test/lib/GovernanceDeployment.ts @@ -0,0 +1,85 @@ +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { assert } from 'chai'; +import * as ethers from 'ethers'; + +import { AbacusDeployment } from './AbacusDeployment'; +import { toBytes32 } from './utils'; +import * as types from './types'; + +import { + TestGovernanceRouter__factory, + TestGovernanceRouter, +} from '../../typechain'; + +export interface GovernanceInstance { + domain: types.Domain; + router: TestGovernanceRouter; +} + +const recoveryTimelock = 60 * 60 * 24 * 7; + +export class GovernanceDeployment { + constructor( + public readonly domains: types.Domain[], + public readonly instances: Record, + ) {} + + static async fromAbacusDeployment( + abacus: AbacusDeployment, + signer: ethers.Signer, + ) { + // Deploy routers. + const instances: Record = {}; + for (const domain of abacus.domains) { + const instance = await GovernanceDeployment.deployInstance( + domain, + signer, + abacus.connectionManager(domain).address, + ); + instances[domain] = instance; + } + + // Make all routers aware of eachother. + for (const local of abacus.domains) { + for (const remote of abacus.domains) { + await instances[local].router.setRouterLocal( + remote, + toBytes32(instances[remote].router.address), + ); + } + } + + // Set the governor on all routers. + for (let i = 0; i < abacus.domains.length; i++) { + if (i > 0) { + await instances[abacus.domains[i]].router.transferGovernor( + abacus.domains[0], + instances[abacus.domains[0]].router.address, + ); + } + } + + return new GovernanceDeployment(abacus.domains, instances); + } + + static async deployInstance( + domain: types.Domain, + signer: ethers.Signer, + connectionManagerAddress: types.Address, + ): Promise { + const routerFactory = new TestGovernanceRouter__factory(signer); + const router = await routerFactory.deploy(domain, recoveryTimelock); + await router.initialize( + connectionManagerAddress, + await signer.getAddress(), + ); + return { + domain, + router, + }; + } + + router(domain: types.Domain): TestGovernanceRouter { + return this.instances[domain].router; + } +} diff --git a/typescript/abacus-tests/lib/core.ts b/solidity/abacus-core/test/lib/core.ts similarity index 95% rename from typescript/abacus-tests/lib/core.ts rename to solidity/abacus-core/test/lib/core.ts index e45d7c52e..ae6dacc25 100644 --- a/typescript/abacus-tests/lib/core.ts +++ b/solidity/abacus-core/test/lib/core.ts @@ -1,17 +1,17 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; import { assert } from 'chai'; import * as ethers from 'ethers'; import * as types from './types'; import { getHexStringByteLength } from './utils'; +import { AbacusDeployment } from './AbacusDeployment'; export class Updater { localDomain: types.Domain; - signer: SignerWithAddress; + signer: ethers.Signer; address: types.Address; constructor( - signer: SignerWithAddress, + signer: ethers.Signer, address: types.Address, localDomain: types.Domain, disableWarn: boolean, @@ -24,10 +24,7 @@ export class Updater { this.address = address; } - static async fromSigner( - signer: SignerWithAddress, - localDomain: types.Domain, - ) { + static async fromSigner(signer: ethers.Signer, localDomain: types.Domain) { return new Updater(signer, await signer.getAddress(), localDomain, true); } @@ -187,6 +184,7 @@ function formatCalls(callsData: types.CallData[]): string { } export const abacus: types.HardhatAbacusHelpers = { + deployment: AbacusDeployment, formatMessage, governance: { formatTransferGovernor, diff --git a/typescript/abacus-tests/lib/index.ts b/solidity/abacus-core/test/lib/index.ts similarity index 77% rename from typescript/abacus-tests/lib/index.ts rename to solidity/abacus-core/test/lib/index.ts index 191e00afe..6024bf7bb 100644 --- a/typescript/abacus-tests/lib/index.ts +++ b/solidity/abacus-core/test/lib/index.ts @@ -3,10 +3,7 @@ import { extendEnvironment } from 'hardhat/config'; import { abacus } from './core'; -import { bridge } from './bridge'; - // HardhatRuntimeEnvironment extendEnvironment((hre) => { hre.abacus = abacus; - hre.bridge = bridge; }); diff --git a/typescript/abacus-tests/lib/types.ts b/solidity/abacus-core/test/lib/types.ts similarity index 58% rename from typescript/abacus-tests/lib/types.ts rename to solidity/abacus-core/test/lib/types.ts index b58c1e3cd..67b195f4c 100644 --- a/typescript/abacus-tests/lib/types.ts +++ b/solidity/abacus-core/test/lib/types.ts @@ -1,11 +1,10 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; -import { TokenIdentifier } from '@abacus-network/sdk/dist/abacus'; import { BytesLike, ethers } from 'ethers'; -import { BridgeMessageTypes } from './bridge'; /********* HRE *********/ export interface HardhatAbacusHelpers { + deployment: any; formatMessage: Function; governance: { formatTransferGovernor: Function; @@ -19,22 +18,9 @@ export interface HardhatAbacusHelpers { signedFailureNotification: Function; } -export interface HardhatBridgeHelpers { - BridgeMessageTypes: typeof BridgeMessageTypes; - typeToByte: Function; - MESSAGE_LEN: MessageLen; - serializeTransferAction: Function; - serializeDetailsAction: Function; - serializeRequestDetailsAction: Function; - serializeAction: Function; - serializeTokenId: Function; - serializeMessage: Function; -} - declare module 'hardhat/types/runtime' { interface HardhatRuntimeEnvironment { abacus: HardhatAbacusHelpers; - bridge: HardhatBridgeHelpers; } } @@ -101,37 +87,3 @@ export type SignedFailureNotification = { failureNotification: FailureNotification; signature: string; }; - -/********* TOKEN BRIDGE *********/ - -export type MessageLen = { - identifier: number; - tokenId: number; - transfer: number; - details: number; - requestDetails: number; -}; - -export type Action = DetailsAction | TransferAction | RequestDetailsAction; - -export type Message = { - tokenId: TokenIdentifier; - action: Action; -}; - -export type TransferAction = { - type: BridgeMessageTypes.TRANSFER; - recipient: ethers.BytesLike; - amount: number | ethers.BytesLike; -}; - -export type DetailsAction = { - type: BridgeMessageTypes.DETAILS; - name: string; - symbol: string; - decimals: number; -}; - -export type RequestDetailsAction = { - type: BridgeMessageTypes.REQUEST_DETAILS; -}; diff --git a/typescript/abacus-tests/lib/utils.ts b/solidity/abacus-core/test/lib/utils.ts similarity index 73% rename from typescript/abacus-tests/lib/utils.ts rename to solidity/abacus-core/test/lib/utils.ts index 1dd42690b..f28400a73 100644 --- a/typescript/abacus-tests/lib/utils.ts +++ b/solidity/abacus-core/test/lib/utils.ts @@ -25,3 +25,11 @@ export function getHexStringByteLength(hexStr: string) { export function toBytes32(address: string): string { return '0x' + '00'.repeat(12) + address.slice(2); } + +export const stringToBytes32 = (s: string): string => { + const str = Buffer.from(s.slice(0, 32), 'utf-8'); + const result = Buffer.alloc(32); + str.copy(result); + + return '0x' + result.toString('hex'); +}; diff --git a/typescript/abacus-tests/test/merkle.test.ts b/solidity/abacus-core/test/merkle.test.ts similarity index 90% rename from typescript/abacus-tests/test/merkle.test.ts rename to solidity/abacus-core/test/merkle.test.ts index daa12ea89..f508d8e29 100644 --- a/typescript/abacus-tests/test/merkle.test.ts +++ b/solidity/abacus-core/test/merkle.test.ts @@ -1,11 +1,8 @@ import { ethers } from 'hardhat'; import { expect } from 'chai'; -import { BytesArray } from '../lib/types'; -import { - TestMerkle, - TestMerkle__factory, -} from '@abacus-network/ts-interface/dist/abacus-core'; +import { BytesArray } from './lib/types'; +import { TestMerkle, TestMerkle__factory } from '../typechain'; const merkleTestCases = require('../../../vectors/merkle.json'); diff --git a/typescript/abacus-tests/test/message.test.ts b/solidity/abacus-core/test/message.test.ts similarity index 96% rename from typescript/abacus-tests/test/message.test.ts rename to solidity/abacus-core/test/message.test.ts index 8c9c6d4f3..571dadaa9 100644 --- a/typescript/abacus-tests/test/message.test.ts +++ b/solidity/abacus-core/test/message.test.ts @@ -1,9 +1,6 @@ import { ethers, abacus } from 'hardhat'; import { expect } from 'chai'; -import { - TestMessage, - TestMessage__factory, -} from '@abacus-network/ts-interface/dist/abacus-core'; +import { TestMessage, TestMessage__factory } from '../typechain'; const testCases = require('../../../vectors/message.json'); diff --git a/typescript/abacus-tests/test/queue.test.ts b/solidity/abacus-core/test/queue.test.ts similarity index 95% rename from typescript/abacus-tests/test/queue.test.ts rename to solidity/abacus-core/test/queue.test.ts index 9f706d386..5d34e84cd 100644 --- a/typescript/abacus-tests/test/queue.test.ts +++ b/solidity/abacus-core/test/queue.test.ts @@ -1,9 +1,6 @@ import { ethers } from 'hardhat'; import { expect } from 'chai'; -import { - TestQueue, - TestQueue__factory, -} from '@abacus-network/ts-interface/dist/abacus-core'; +import { TestQueue, TestQueue__factory } from '../typechain'; // create a proper hex encoded bytes32 filled with number. e.g 0x01010101... const bytes32 = (num: number) => `0x${Buffer.alloc(32, num).toString('hex')}`; diff --git a/typescript/abacus-tests/test/replica.test.ts b/solidity/abacus-core/test/replica.test.ts similarity index 84% rename from typescript/abacus-tests/test/replica.test.ts rename to solidity/abacus-core/test/replica.test.ts index bf516a84f..3f465e1c1 100644 --- a/typescript/abacus-tests/test/replica.test.ts +++ b/solidity/abacus-core/test/replica.test.ts @@ -1,17 +1,20 @@ import { ethers, abacus } from 'hardhat'; import { expect } from 'chai'; -import { getTestDeploy } from './testChain'; -import { Updater, AbacusState, MessageStatus } from '../lib/core'; -import { Signer, BytesArray } from '../lib/types'; -import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; +import { Updater, AbacusState, MessageStatus } from './lib/core'; +import { Signer, BytesArray } from './lib/types'; import { - deployUnenrolledReplica, - deployUpgradeBeaconController, - deployUpdaterManager, -} from '@abacus-network/abacus-deploy/dist/src/core'; - -import * as contracts from '@abacus-network/ts-interface/dist/abacus-core'; + BadRecipient1__factory, + BadRecipient2__factory, + BadRecipient3__factory, + BadRecipient4__factory, + BadRecipient5__factory, + BadRecipient6__factory, + BadRecipientHandle__factory, + TestReplica, + TestReplica__factory, + TestRecipient__factory, +} from '../typechain'; const homeDomainHashTestCases = require('../../../vectors/homeDomainHash.json'); const merkleTestCases = require('../../../vectors/merkle.json'); @@ -19,19 +22,21 @@ const proveAndProcessTestCases = require('../../../vectors/proveAndProcess.json' const localDomain = 2000; const remoteDomain = 1000; +const processGas = 850000; +const reserveGas = 15000; +const optimisticSeconds = 3; describe('Replica', async () => { const badRecipientFactories = [ - contracts.BadRecipient1__factory, - contracts.BadRecipient2__factory, - contracts.BadRecipient3__factory, - contracts.BadRecipient4__factory, - contracts.BadRecipient5__factory, - contracts.BadRecipient6__factory, + BadRecipient1__factory, + BadRecipient2__factory, + BadRecipient3__factory, + BadRecipient4__factory, + BadRecipient5__factory, + BadRecipient6__factory, ]; - let deploys: Deploy[] = []; - let replica: contracts.TestReplica, + let replica: TestReplica, signer: Signer, fakeSigner: Signer, abacusMessageSender: Signer, @@ -49,34 +54,27 @@ describe('Replica', async () => { [signer, fakeSigner, abacusMessageSender] = await ethers.getSigners(); updater = await Updater.fromSigner(signer, remoteDomain); fakeUpdater = await Updater.fromSigner(fakeSigner, remoteDomain); - - deploys.push(await getTestDeploy(localDomain, updater.address, [])); - deploys.push(await getTestDeploy(remoteDomain, updater.address, [])); }); beforeEach(async () => { - await deployUpdaterManager(deploys[0]); - await deployUpgradeBeaconController(deploys[0]); - - await deployUnenrolledReplica(deploys[0], deploys[1]); - - replica = deploys[0].contracts.replicas[remoteDomain] - .proxy! as contracts.TestReplica; + const replicaFactory = new TestReplica__factory(signer); + replica = await replicaFactory.deploy(localDomain, processGas, reserveGas); + await replica.initialize( + remoteDomain, + updater.address, + ethers.constants.HashZero, + optimisticSeconds, + ); }); it('Cannot be initialized twice', async () => { - let initData = replica.interface.encodeFunctionData('initialize', [ - deploys[0].chain.domain, - deploys[0].updater, - ethers.constants.HashZero, - deploys[0].config.optimisticSeconds, - ]); - await expect( - signer.sendTransaction({ - to: replica.address, - data: initData, - }), + replica.initialize( + remoteDomain, + updater.address, + ethers.constants.HashZero, + optimisticSeconds, + ), ).to.be.revertedWith('Initializable: contract is already initialized'); }); @@ -119,21 +117,23 @@ describe('Replica', async () => { it('Calculated domain hash matches Rust-produced domain hash', async () => { // Compare Rust output in json file to solidity output (json file matches // hash for remote domain of 1000) - let testDeploy = await getTestDeploy(0, updater.address, []); for (let testCase of homeDomainHashTestCases) { - // set domain, updaterManager and upgradeBeaconController - testDeploy.chain.domain = testCase.homeDomain; - testDeploy.contracts.updaterManager = deploys[0].contracts.updaterManager; - testDeploy.contracts.upgradeBeaconController = - deploys[0].contracts.upgradeBeaconController; - // deploy replica - await deployUnenrolledReplica(testDeploy, testDeploy); - const tempReplica = testDeploy.contracts.replicas[testCase.homeDomain] - .proxy! as contracts.TestReplica; + const replicaFactory = new TestReplica__factory(signer); + const tempReplica = await replicaFactory.deploy( + testCase.homeDomain, + processGas, + reserveGas, + ); + await tempReplica.initialize( + testCase.homeDomain, + updater.address, + ethers.constants.HashZero, + optimisticSeconds, + ); const { expectedDomainHash } = testCase; - const homeDomainHash = await tempReplica.testHomeDomainHash(); + const homeDomainHash = await tempReplica.homeDomainHash(); expect(homeDomainHash).to.equal(expectedDomainHash); } }); @@ -265,7 +265,7 @@ describe('Replica', async () => { it('Processes a proved message', async () => { const sender = abacusMessageSender; - const testRecipientFactory = new contracts.TestRecipient__factory(signer); + const testRecipientFactory = new TestRecipient__factory(signer); const testRecipient = await testRecipientFactory.deploy(); const nonce = 0; @@ -279,7 +279,7 @@ describe('Replica', async () => { ); // Set message status to MessageStatus.Pending - await replica.setMessagePending(abacusMessage); + await replica.setMessageProven(abacusMessage); // Ensure proper static call return value const success = await replica.callStatic.process(abacusMessage); @@ -327,7 +327,7 @@ describe('Replica', async () => { ); // Set message status to MessageStatus.Pending - await replica.setMessagePending(abacusMessage); + await replica.setMessageProven(abacusMessage); await replica.process(abacusMessage); }); } @@ -366,7 +366,7 @@ describe('Replica', async () => { ); // Set message status to MessageStatus.Pending - await replica.setMessagePending(abacusMessage); + await replica.setMessageProven(abacusMessage); await expect(replica.process(abacusMessage)).to.not.be.reverted; }); @@ -385,7 +385,7 @@ describe('Replica', async () => { ); // Set message status to MessageStatus.Pending - await replica.setMessagePending(abacusMessage); + await replica.setMessageProven(abacusMessage); // Required gas is >= 510,000 (we provide 500,000) await expect( @@ -396,7 +396,7 @@ describe('Replica', async () => { it('Returns false when processing message for bad handler function', async () => { const sender = abacusMessageSender; const [recipient] = await ethers.getSigners(); - const factory = new contracts.BadRecipientHandle__factory(recipient); + const factory = new BadRecipientHandle__factory(recipient); const testRecipient = await factory.deploy(); const nonce = 0; @@ -410,7 +410,7 @@ describe('Replica', async () => { ); // Set message status to MessageStatus.Pending - await replica.setMessagePending(abacusMessage); + await replica.setMessageProven(abacusMessage); // Ensure bad handler function causes process to return false let success = await replica.callStatic.process(abacusMessage); @@ -419,7 +419,7 @@ describe('Replica', async () => { it('Proves and processes a message', async () => { const sender = abacusMessageSender; - const testRecipientFactory = new contracts.TestRecipient__factory(signer); + const testRecipientFactory = new TestRecipient__factory(signer); const testRecipient = await testRecipientFactory.deploy(); const nonce = 0; diff --git a/typescript/abacus-tests/test/upgrade.test.ts b/solidity/abacus-core/test/upgrade.test.ts similarity index 52% rename from typescript/abacus-tests/test/upgrade.test.ts rename to solidity/abacus-core/test/upgrade.test.ts index 1799c3425..209460b6d 100644 --- a/typescript/abacus-tests/test/upgrade.test.ts +++ b/solidity/abacus-core/test/upgrade.test.ts @@ -1,32 +1,28 @@ import { ethers } from 'hardhat'; -import { getTestDeploy } from './testChain'; import { UpgradeTestHelpers, MysteryMathUpgrade } from './utils'; -import { Signer } from '../lib/types'; -import * as contracts from '@abacus-network/ts-interface/dist/abacus-core'; +import { Signer } from './lib/types'; +import { + UpgradeBeaconController__factory, + UpgradeBeaconController, + MysteryMathV2__factory, +} from '../typechain'; describe('Upgrade', async () => { const utils = new UpgradeTestHelpers(); let signer: Signer, mysteryMath: MysteryMathUpgrade, - upgradeBeaconController: contracts.UpgradeBeaconController; + ubc: UpgradeBeaconController; before(async () => { // set signer [signer] = await ethers.getSigners(); - // set up fresh test deploy - const deploy = await getTestDeploy(1000, ethers.constants.AddressZero, []); + const ubcFactory = new UpgradeBeaconController__factory(signer); + ubc = await ubcFactory.deploy(); // deploy upgrade setup for mysteryMath contract - mysteryMath = await utils.deployMysteryMathUpgradeSetup( - deploy, - signer, - true, - ); - - // set upgradeBeaconController - upgradeBeaconController = deploy.contracts.upgradeBeaconController!; + mysteryMath = await utils.deployMysteryMathUpgradeSetup(signer, ubc); }); it('Pre-Upgrade returns values from MysteryMathV1', async () => { @@ -35,14 +31,11 @@ describe('Upgrade', async () => { it('Upgrades without problem', async () => { // Deploy Implementation 2 - const factory = new contracts.MysteryMathV2__factory(signer); + const factory = new MysteryMathV2__factory(signer); const implementation = await factory.deploy(); // Upgrade to implementation 2 - await upgradeBeaconController.upgrade( - mysteryMath.beacon.address, - implementation.address, - ); + await ubc.upgrade(mysteryMath.beacon.address, implementation.address); }); it('Post-Upgrade returns values from MysteryMathV2', async () => { diff --git a/typescript/abacus-tests/test/utils.ts b/solidity/abacus-core/test/utils.ts similarity index 50% rename from typescript/abacus-tests/test/utils.ts rename to solidity/abacus-core/test/utils.ts index d2d00c362..6d9e9a941 100644 --- a/typescript/abacus-tests/test/utils.ts +++ b/solidity/abacus-core/test/utils.ts @@ -1,13 +1,16 @@ import { expect } from 'chai'; import ethers from 'ethers'; -import { Signer } from '../lib/types'; -import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; +import { Signer } from './lib/types'; import { - deployUpdaterManager, - deployUpgradeBeaconController, -} from '@abacus-network/abacus-deploy/dist/src/core'; -import * as contracts from '@abacus-network/ts-interface/dist/abacus-core'; + MysteryMathV1, + MysteryMathV2, + MysteryMathV1__factory, + UpgradeBeaconController, + UpgradeBeacon, + UpgradeBeacon__factory, + UpgradeBeaconProxy__factory, +} from '../typechain'; export const increaseTimestampBy = async ( provider: ethers.providers.JsonRpcProvider, @@ -18,9 +21,9 @@ export const increaseTimestampBy = async ( }; export type MysteryMathUpgrade = { - proxy: contracts.MysteryMathV1 | contracts.MysteryMathV2; - beacon: contracts.UpgradeBeacon; - implementation: contracts.MysteryMathV1 | contracts.MysteryMathV2; + proxy: MysteryMathV1 | MysteryMathV2; + beacon: UpgradeBeacon; + implementation: MysteryMathV1 | MysteryMathV2; }; export class UpgradeTestHelpers { @@ -29,39 +32,23 @@ export class UpgradeTestHelpers { stateVar: number = 17; async deployMysteryMathUpgradeSetup( - deploy: Deploy, signer: Signer, - isNewDeploy?: boolean, + ubc: UpgradeBeaconController, ): Promise { // deploy implementation - const mysteryMathFactory = new contracts.MysteryMathV1__factory(signer); + const mysteryMathFactory = new MysteryMathV1__factory(signer); const mysteryMathImplementation = await mysteryMathFactory.deploy(); - if (isNewDeploy) { - // deploy UpdaterManager - await deployUpdaterManager(deploy); - // deploy and set UpgradeBeaconController - await deployUpgradeBeaconController(deploy); - } - // deploy and set upgrade beacon - const beaconFactory = new contracts.UpgradeBeacon__factory( - deploy.chain.signer, - ); + const beaconFactory = new UpgradeBeacon__factory(signer); const beacon = await beaconFactory.deploy( mysteryMathImplementation.address, - deploy.contracts.upgradeBeaconController!.address, - { gasPrice: deploy.chain.gasPrice, gasLimit: 2_000_000 }, + ubc.address, ); // deploy proxy - let factory = new contracts.UpgradeBeaconProxy__factory( - deploy.chain.signer, - ); - const upgradeBeaconProxy = await factory.deploy(beacon.address, [], { - gasPrice: deploy.chain.gasPrice, - gasLimit: 1_000_000, - }); + const proxyFactory = new UpgradeBeaconProxy__factory(signer); + const upgradeBeaconProxy = await proxyFactory.deploy(beacon.address, []); // set proxy const proxy = mysteryMathFactory.attach(upgradeBeaconProxy.address); @@ -72,7 +59,7 @@ export class UpgradeTestHelpers { return { proxy, beacon, implementation: mysteryMathImplementation }; } - async expectMysteryMathV1(mysteryMathProxy: contracts.MysteryMathV1) { + async expectMysteryMathV1(mysteryMathProxy: MysteryMathV1) { const versionResult = await mysteryMathProxy.version(); expect(versionResult).to.equal(1); @@ -83,7 +70,7 @@ export class UpgradeTestHelpers { expect(stateResult).to.equal(this.stateVar); } - async expectMysteryMathV2(mysteryMathProxy: contracts.MysteryMathV2) { + async expectMysteryMathV2(mysteryMathProxy: MysteryMathV2) { const versionResult = await mysteryMathProxy.version(); expect(versionResult).to.equal(2); @@ -94,11 +81,3 @@ export class UpgradeTestHelpers { expect(stateResult).to.equal(this.stateVar); } } - -export const stringToBytes32 = (s: string): string => { - const str = Buffer.from(s.slice(0, 32), 'utf-8'); - const result = Buffer.alloc(32); - str.copy(result); - - return '0x' + result.toString('hex'); -}; diff --git a/typescript/abacus-tests/test/xAppConnectionManager.test.ts b/solidity/abacus-core/test/xAppConnectionManager.test.ts similarity index 76% rename from typescript/abacus-tests/test/xAppConnectionManager.test.ts rename to solidity/abacus-core/test/xAppConnectionManager.test.ts index 6548a5c0b..7c97b03ad 100644 --- a/typescript/abacus-tests/test/xAppConnectionManager.test.ts +++ b/solidity/abacus-core/test/xAppConnectionManager.test.ts @@ -1,52 +1,62 @@ import { ethers, abacus } from 'hardhat'; import { expect } from 'chai'; -import { getTestDeploy } from './testChain'; -import { Updater } from '../lib/core'; -import { Signer } from '../lib/types'; -import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; -import * as deploys from '@abacus-network/abacus-deploy/dist/src/core'; -import * as contracts from '@abacus-network/ts-interface/dist/abacus-core'; +import { + TestHome__factory, + TestReplica__factory, + TestXAppConnectionManager, + TestXAppConnectionManager__factory, + TestReplica, +} from '../typechain'; +import { Updater } from './lib/core'; +import { Signer } from './lib/types'; const signedFailureTestCases = require('../../../vectors/signedFailure.json'); const ONLY_OWNER_REVERT_MSG = 'Ownable: caller is not the owner'; const localDomain = 1000; const remoteDomain = 2000; +const processGas = 850000; +const reserveGas = 15000; +const optimisticSeconds = 3; describe('XAppConnectionManager', async () => { - let localDeploy: Deploy, - remoteDeploy: Deploy, - connectionManager: contracts.TestXAppConnectionManager, - enrolledReplica: contracts.TestReplica, + let connectionManager: TestXAppConnectionManager, + enrolledReplica: TestReplica, signer: Signer, updater: Updater; before(async () => { [signer] = await ethers.getSigners(); updater = await Updater.fromSigner(signer, localDomain); - - // get fresh test deploys - localDeploy = await getTestDeploy(localDomain, updater.address, []); - remoteDeploy = await getTestDeploy(remoteDomain, updater.address, []); - - // deploy abacus on remote domain - // NB: as tests stand currently, this only needs to be done once - await deploys.deployAbacus(remoteDeploy); }); beforeEach(async () => { - // deploy abacus on local domain - await deploys.deployAbacus(localDeploy); - - // deploy replica and enroll on local deploy - await deploys.enrollRemote(localDeploy, remoteDeploy); + const homeFactory = new TestHome__factory(signer); + const home = await homeFactory.deploy(localDomain); + + const replicaFactory = new TestReplica__factory(signer); + enrolledReplica = await replicaFactory.deploy( + localDomain, + processGas, + reserveGas, + ); + await enrolledReplica.initialize( + remoteDomain, + updater.address, + ethers.constants.HashZero, + optimisticSeconds, + ); - // set respective variables - connectionManager = localDeploy.contracts - .xAppConnectionManager! as contracts.TestXAppConnectionManager; - enrolledReplica = localDeploy.contracts.replicas[remoteDomain] - .proxy as contracts.TestReplica; + const connectionManagerFactory = new TestXAppConnectionManager__factory( + signer, + ); + connectionManager = await connectionManagerFactory.deploy(); + await connectionManager.setHome(home.address); + await connectionManager.ownerEnrollReplica( + enrolledReplica.address, + remoteDomain, + ); }); it('Returns the local domain', async () => { @@ -54,7 +64,7 @@ describe('XAppConnectionManager', async () => { }); it('onlyOwner function rejects call from non-owner', async () => { - const [nonOwner, nonHome] = await ethers.getSigners(); + const [nonHome, nonOwner] = await ethers.getSigners(); await expect( connectionManager.connect(nonOwner).setHome(nonHome.address), ).to.be.revertedWith(ONLY_OWNER_REVERT_MSG); @@ -69,8 +79,8 @@ describe('XAppConnectionManager', async () => { }); it('Allows owner to set the home', async () => { - await deploys.deployHome(localDeploy); - const newHome = localDeploy.contracts.home?.proxy as contracts.TestHome; + const homeFactory = new TestHome__factory(signer); + const newHome = await homeFactory.deploy(localDomain); await connectionManager.setHome(newHome.address); expect(await connectionManager.home()).to.equal(newHome.address); @@ -78,34 +88,27 @@ describe('XAppConnectionManager', async () => { it('Owner can enroll a new replica', async () => { const newRemoteDomain = 3000; - const newRemoteDeploy = await getTestDeploy( - newRemoteDomain, - updater.address, - [], + const replicaFactory = new TestReplica__factory(signer); + const newReplica = await replicaFactory.deploy( + localDomain, + processGas, + reserveGas, ); - await deploys.deployUnenrolledReplica(localDeploy, newRemoteDeploy); - const newReplicaProxy = - localDeploy.contracts.replicas[newRemoteDomain].proxy; // Assert new replica not considered replica before enrolled - expect(await connectionManager.isReplica(newReplicaProxy.address)).to.be - .false; + expect(await connectionManager.isReplica(newReplica.address)).to.be.false; await expect( - connectionManager.ownerEnrollReplica( - newReplicaProxy.address, - newRemoteDomain, - ), + connectionManager.ownerEnrollReplica(newReplica.address, newRemoteDomain), ).to.emit(connectionManager, 'ReplicaEnrolled'); expect(await connectionManager.domainToReplica(newRemoteDomain)).to.equal( - newReplicaProxy.address, + newReplica.address, ); expect( - await connectionManager.replicaToDomain(newReplicaProxy.address), + await connectionManager.replicaToDomain(newReplica.address), ).to.equal(newRemoteDomain); - expect(await connectionManager.isReplica(newReplicaProxy.address)).to.be - .true; + expect(await connectionManager.isReplica(newReplica.address)).to.be.true; }); it('Owner can unenroll a replica', async () => { @@ -156,7 +159,7 @@ describe('XAppConnectionManager', async () => { await abacus.signedFailureNotification( watcher, remoteDomain, - updater.signer.address, + await updater.signer.getAddress(), ); // Assert new replica considered replica before unenrolled @@ -198,7 +201,7 @@ describe('XAppConnectionManager', async () => { await abacus.signedFailureNotification( watcher, noReplicaDomain, - updater.signer.address, + await updater.signer.getAddress(), ); // Expect unenrollReplica call to revert @@ -254,7 +257,7 @@ describe('XAppConnectionManager', async () => { await abacus.signedFailureNotification( nonWatcher, remoteDomain, - updater.signer.address, + await updater.signer.getAddress(), ); // Expect unenrollReplica call to revert diff --git a/solidity/abacus-core/typechain/BadRecipient1.d.ts b/solidity/abacus-core/typechain/BadRecipient1.d.ts new file mode 100644 index 000000000..7968698be --- /dev/null +++ b/solidity/abacus-core/typechain/BadRecipient1.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BadRecipient1Interface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class BadRecipient1 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BadRecipient1Interface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/BadRecipient2.d.ts b/solidity/abacus-core/typechain/BadRecipient2.d.ts new file mode 100644 index 000000000..879c9a0ad --- /dev/null +++ b/solidity/abacus-core/typechain/BadRecipient2.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BadRecipient2Interface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class BadRecipient2 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BadRecipient2Interface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/BadRecipient3.d.ts b/solidity/abacus-core/typechain/BadRecipient3.d.ts new file mode 100644 index 000000000..1876d61cd --- /dev/null +++ b/solidity/abacus-core/typechain/BadRecipient3.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BadRecipient3Interface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class BadRecipient3 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BadRecipient3Interface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/BadRecipient4.d.ts b/solidity/abacus-core/typechain/BadRecipient4.d.ts new file mode 100644 index 000000000..ce038450a --- /dev/null +++ b/solidity/abacus-core/typechain/BadRecipient4.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BadRecipient4Interface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class BadRecipient4 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BadRecipient4Interface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/BadRecipient5.d.ts b/solidity/abacus-core/typechain/BadRecipient5.d.ts new file mode 100644 index 000000000..ffe8a441f --- /dev/null +++ b/solidity/abacus-core/typechain/BadRecipient5.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BadRecipient5Interface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class BadRecipient5 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BadRecipient5Interface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/BadRecipient6.d.ts b/solidity/abacus-core/typechain/BadRecipient6.d.ts new file mode 100644 index 000000000..9430239ec --- /dev/null +++ b/solidity/abacus-core/typechain/BadRecipient6.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BadRecipient6Interface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class BadRecipient6 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BadRecipient6Interface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/BadRecipientHandle.d.ts b/solidity/abacus-core/typechain/BadRecipientHandle.d.ts new file mode 100644 index 000000000..a6723d06a --- /dev/null +++ b/solidity/abacus-core/typechain/BadRecipientHandle.d.ts @@ -0,0 +1,118 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BadRecipientHandleInterface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class BadRecipientHandle extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BadRecipientHandleInterface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/Common.d.ts b/solidity/abacus-core/typechain/Common.d.ts new file mode 100644 index 000000000..e78ac2f5a --- /dev/null +++ b/solidity/abacus-core/typechain/Common.d.ts @@ -0,0 +1,255 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface CommonInterface extends ethers.utils.Interface { + functions: { + "committedRoot()": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "localDomain()": FunctionFragment; + "state()": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: { + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; +} + +export class Common extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: CommonInterface; + + functions: { + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + state(overrides?: CallOverrides): Promise<[number]>; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: { + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + }; + + estimateGas: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/GovernanceRouter.d.ts b/solidity/abacus-core/typechain/GovernanceRouter.d.ts new file mode 100644 index 000000000..4032e3447 --- /dev/null +++ b/solidity/abacus-core/typechain/GovernanceRouter.d.ts @@ -0,0 +1,715 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface GovernanceRouterInterface extends ethers.utils.Interface { + functions: { + "VERSION()": FunctionFragment; + "callLocal(tuple[])": FunctionFragment; + "callRemote(uint32,tuple[])": FunctionFragment; + "domains(uint256)": FunctionFragment; + "exitRecovery()": FunctionFragment; + "governor()": FunctionFragment; + "governorDomain()": FunctionFragment; + "handle(uint32,bytes32,bytes)": FunctionFragment; + "inRecovery()": FunctionFragment; + "initialize(address,address)": FunctionFragment; + "initiateRecoveryTimelock()": FunctionFragment; + "localDomain()": FunctionFragment; + "recoveryActiveAt()": FunctionFragment; + "recoveryManager()": FunctionFragment; + "recoveryTimelock()": FunctionFragment; + "routers(uint32)": FunctionFragment; + "setRouter(uint32,bytes32)": FunctionFragment; + "setRouterLocal(uint32,bytes32)": FunctionFragment; + "setXAppConnectionManager(address)": FunctionFragment; + "transferGovernor(uint32,address)": FunctionFragment; + "transferRecoveryManager(address)": FunctionFragment; + "xAppConnectionManager()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "callLocal", + values: [{ to: BytesLike; data: BytesLike }[]] + ): string; + encodeFunctionData( + functionFragment: "callRemote", + values: [BigNumberish, { to: BytesLike; data: BytesLike }[]] + ): string; + encodeFunctionData( + functionFragment: "domains", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "exitRecovery", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "governor", values?: undefined): string; + encodeFunctionData( + functionFragment: "governorDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "inRecovery", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "initiateRecoveryTimelock", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "recoveryActiveAt", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "recoveryManager", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "recoveryTimelock", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "routers", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setRouter", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setRouterLocal", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setXAppConnectionManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferGovernor", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "transferRecoveryManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "xAppConnectionManager", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "callLocal", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "callRemote", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "domains", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exitRecovery", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "governor", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "governorDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "inRecovery", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "initiateRecoveryTimelock", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "recoveryActiveAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "recoveryManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "recoveryTimelock", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "routers", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setRouter", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setRouterLocal", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setXAppConnectionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferGovernor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferRecoveryManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "xAppConnectionManager", + data: BytesLike + ): Result; + + events: { + "ExitRecovery(address)": EventFragment; + "InitiateRecovery(address,uint256)": EventFragment; + "SetRouter(uint32,bytes32,bytes32)": EventFragment; + "TransferGovernor(uint32,uint32,address,address)": EventFragment; + "TransferRecoveryManager(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "ExitRecovery"): EventFragment; + getEvent(nameOrSignatureOrTopic: "InitiateRecovery"): EventFragment; + getEvent(nameOrSignatureOrTopic: "SetRouter"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferGovernor"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferRecoveryManager"): EventFragment; +} + +export class GovernanceRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: GovernanceRouterInterface; + + functions: { + VERSION(overrides?: CallOverrides): Promise<[number]>; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise<[string]>; + + governorDomain(overrides?: CallOverrides): Promise<[number]>; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise<[boolean]>; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + recoveryActiveAt(overrides?: CallOverrides): Promise<[BigNumber]>; + + recoveryManager(overrides?: CallOverrides): Promise<[string]>; + + recoveryTimelock(overrides?: CallOverrides): Promise<[BigNumber]>; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + + callStatic: { + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: CallOverrides + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: CallOverrides + ): Promise; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + exitRecovery(overrides?: CallOverrides): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: CallOverrides + ): Promise; + + initiateRecoveryTimelock(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: CallOverrides + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: CallOverrides + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + filters: { + ExitRecovery( + recoveryManager?: null + ): TypedEventFilter<[string], { recoveryManager: string }>; + + InitiateRecovery( + recoveryManager?: string | null, + recoveryActiveAt?: null + ): TypedEventFilter< + [string, BigNumber], + { recoveryManager: string; recoveryActiveAt: BigNumber } + >; + + SetRouter( + domain?: BigNumberish | null, + previousRouter?: null, + newRouter?: null + ): TypedEventFilter< + [number, string, string], + { domain: number; previousRouter: string; newRouter: string } + >; + + TransferGovernor( + previousGovernorDomain?: null, + newGovernorDomain?: null, + previousGovernor?: string | null, + newGovernor?: string | null + ): TypedEventFilter< + [number, number, string, string], + { + previousGovernorDomain: number; + newGovernorDomain: number; + previousGovernor: string; + newGovernor: string; + } + >; + + TransferRecoveryManager( + previousRecoveryManager?: string | null, + newRecoveryManager?: string | null + ): TypedEventFilter< + [string, string], + { previousRecoveryManager: string; newRecoveryManager: string } + >; + }; + + estimateGas: { + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domains( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager( + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/Home.d.ts b/solidity/abacus-core/typechain/Home.d.ts new file mode 100644 index 000000000..e4a330779 --- /dev/null +++ b/solidity/abacus-core/typechain/Home.d.ts @@ -0,0 +1,799 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface HomeInterface extends ethers.utils.Interface { + functions: { + "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; + "VERSION()": FunctionFragment; + "committedRoot()": FunctionFragment; + "count()": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "improperUpdate(bytes32,bytes32,bytes)": FunctionFragment; + "initialize(address)": FunctionFragment; + "localDomain()": FunctionFragment; + "nonces(uint32)": FunctionFragment; + "owner()": FunctionFragment; + "queueContains(bytes32)": FunctionFragment; + "queueEnd()": FunctionFragment; + "queueLength()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "root()": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "setUpdaterManager(address)": FunctionFragment; + "state()": FunctionFragment; + "suggestUpdate()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "tree()": FunctionFragment; + "update(bytes32,bytes32,bytes)": FunctionFragment; + "updater()": FunctionFragment; + "updaterManager()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; + encodeFunctionData( + functionFragment: "dispatch", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "improperUpdate", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "initialize", values: [string]): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueContains", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueLength", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "root", values?: undefined): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData( + functionFragment: "setUpdaterManager", + values: [string] + ): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData( + functionFragment: "suggestUpdate", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData(functionFragment: "tree", values?: undefined): string; + encodeFunctionData( + functionFragment: "update", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + encodeFunctionData( + functionFragment: "updaterManager", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "improperUpdate", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueContains", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setUpdaterManager", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "suggestUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "update", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "updaterManager", + data: BytesLike + ): Result; + + events: { + "Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment; + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "ImproperUpdate(bytes32,bytes32,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "NewUpdaterManager(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + "UpdaterSlashed(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Dispatch"): EventFragment; + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ImproperUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdaterManager"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; + getEvent(nameOrSignatureOrTopic: "UpdaterSlashed"): EventFragment; +} + +export class Home extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: HomeInterface; + + functions: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>; + + VERSION(overrides?: CallOverrides): Promise<[number]>; + + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + count(overrides?: CallOverrides): Promise<[BigNumber]>; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + queueEnd(overrides?: CallOverrides): Promise<[string]>; + + queueLength(overrides?: CallOverrides): Promise<[BigNumber]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise<[string]>; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise<[number]>; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree( + overrides?: CallOverrides + ): Promise<[BigNumber] & { count: BigNumber }>; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + + updaterManager(overrides?: CallOverrides): Promise<[string]>; + }; + + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + + callStatic: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: CallOverrides + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + initialize( + _updaterManager: string, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater(_updater: string, overrides?: CallOverrides): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: CallOverrides + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; + + filters: { + Dispatch( + messageHash?: BytesLike | null, + leafIndex?: BigNumberish | null, + destinationAndNonce?: BigNumberish | null, + committedRoot?: null, + message?: null + ): TypedEventFilter< + [string, BigNumber, BigNumber, string, string], + { + messageHash: string; + leafIndex: BigNumber; + destinationAndNonce: BigNumber; + committedRoot: string; + message: string; + } + >; + + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + ImproperUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null + ): TypedEventFilter< + [string, string, string], + { oldRoot: string; newRoot: string; signature: string } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + NewUpdaterManager( + updaterManager?: null + ): TypedEventFilter<[string], { updaterManager: string }>; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + + UpdaterSlashed( + updater?: string | null, + reporter?: string | null + ): TypedEventFilter< + [string, string], + { updater: string; reporter: string } + >; + }; + + estimateGas: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + MAX_MESSAGE_BODY_BYTES( + overrides?: CallOverrides + ): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/IMessageRecipient.d.ts b/solidity/abacus-core/typechain/IMessageRecipient.d.ts new file mode 100644 index 000000000..c4c28a40e --- /dev/null +++ b/solidity/abacus-core/typechain/IMessageRecipient.d.ts @@ -0,0 +1,124 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IMessageRecipientInterface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class IMessageRecipient extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IMessageRecipientInterface; + + functions: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/IUpdaterManager.d.ts b/solidity/abacus-core/typechain/IUpdaterManager.d.ts new file mode 100644 index 000000000..d2399f297 --- /dev/null +++ b/solidity/abacus-core/typechain/IUpdaterManager.d.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IUpdaterManagerInterface extends ethers.utils.Interface { + functions: { + "slashUpdater(address)": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "slashUpdater", + values: [string] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "slashUpdater", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: {}; +} + +export class IUpdaterManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUpdaterManagerInterface; + + functions: { + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + slashUpdater(_reporter: string, overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/MerkleLib.d.ts b/solidity/abacus-core/typechain/MerkleLib.d.ts new file mode 100644 index 000000000..29183bd80 --- /dev/null +++ b/solidity/abacus-core/typechain/MerkleLib.d.ts @@ -0,0 +1,246 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MerkleLibInterface extends ethers.utils.Interface { + functions: { + "zeroHashes()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "zeroHashes", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "zeroHashes", data: BytesLike): Result; + + events: {}; +} + +export class MerkleLib extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MerkleLibInterface; + + functions: { + zeroHashes( + overrides?: CallOverrides + ): Promise< + [ + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + ] & { + _zeroes: [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ]; + } + >; + }; + + zeroHashes( + overrides?: CallOverrides + ): Promise< + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + >; + + callStatic: { + zeroHashes( + overrides?: CallOverrides + ): Promise< + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + >; + }; + + filters: {}; + + estimateGas: { + zeroHashes(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + zeroHashes(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/MerkleTreeManager.d.ts b/solidity/abacus-core/typechain/MerkleTreeManager.d.ts new file mode 100644 index 000000000..3ca6484e3 --- /dev/null +++ b/solidity/abacus-core/typechain/MerkleTreeManager.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MerkleTreeManagerInterface extends ethers.utils.Interface { + functions: { + "count()": FunctionFragment; + "root()": FunctionFragment; + "tree()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "count", values?: undefined): string; + encodeFunctionData(functionFragment: "root", values?: undefined): string; + encodeFunctionData(functionFragment: "tree", values?: undefined): string; + + decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; + + events: {}; +} + +export class MerkleTreeManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MerkleTreeManagerInterface; + + functions: { + count(overrides?: CallOverrides): Promise<[BigNumber]>; + + root(overrides?: CallOverrides): Promise<[string]>; + + tree( + overrides?: CallOverrides + ): Promise<[BigNumber] & { count: BigNumber }>; + }; + + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + + callStatic: { + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/MysteryMath.d.ts b/solidity/abacus-core/typechain/MysteryMath.d.ts new file mode 100644 index 000000000..279d9f728 --- /dev/null +++ b/solidity/abacus-core/typechain/MysteryMath.d.ts @@ -0,0 +1,173 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MysteryMathInterface extends ethers.utils.Interface { + functions: { + "doMath(uint256,uint256)": FunctionFragment; + "getState()": FunctionFragment; + "setState(uint256)": FunctionFragment; + "stateVar()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "doMath", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "getState", values?: undefined): string; + encodeFunctionData( + functionFragment: "setState", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "stateVar", values?: undefined): string; + + decodeFunctionResult(functionFragment: "doMath", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "getState", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setState", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "stateVar", data: BytesLike): Result; + + events: {}; +} + +export class MysteryMath extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MysteryMathInterface; + + functions: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { _result: BigNumber }>; + + getState(overrides?: CallOverrides): Promise<[BigNumber]>; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise<[BigNumber]>; + }; + + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + callStatic: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState(_var: BigNumberish, overrides?: CallOverrides): Promise; + + stateVar(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/MysteryMathV1.d.ts b/solidity/abacus-core/typechain/MysteryMathV1.d.ts new file mode 100644 index 000000000..e1c2d469c --- /dev/null +++ b/solidity/abacus-core/typechain/MysteryMathV1.d.ts @@ -0,0 +1,186 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MysteryMathV1Interface extends ethers.utils.Interface { + functions: { + "doMath(uint256,uint256)": FunctionFragment; + "getState()": FunctionFragment; + "setState(uint256)": FunctionFragment; + "stateVar()": FunctionFragment; + "version()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "doMath", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "getState", values?: undefined): string; + encodeFunctionData( + functionFragment: "setState", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "stateVar", values?: undefined): string; + encodeFunctionData(functionFragment: "version", values?: undefined): string; + + decodeFunctionResult(functionFragment: "doMath", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "getState", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setState", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "stateVar", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "version", data: BytesLike): Result; + + events: {}; +} + +export class MysteryMathV1 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MysteryMathV1Interface; + + functions: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { _result: BigNumber }>; + + getState(overrides?: CallOverrides): Promise<[BigNumber]>; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise<[BigNumber]>; + + version(overrides?: CallOverrides): Promise<[number]>; + }; + + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + + callStatic: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState(_var: BigNumberish, overrides?: CallOverrides): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/MysteryMathV2.d.ts b/solidity/abacus-core/typechain/MysteryMathV2.d.ts new file mode 100644 index 000000000..d227276bc --- /dev/null +++ b/solidity/abacus-core/typechain/MysteryMathV2.d.ts @@ -0,0 +1,186 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MysteryMathV2Interface extends ethers.utils.Interface { + functions: { + "doMath(uint256,uint256)": FunctionFragment; + "getState()": FunctionFragment; + "setState(uint256)": FunctionFragment; + "stateVar()": FunctionFragment; + "version()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "doMath", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "getState", values?: undefined): string; + encodeFunctionData( + functionFragment: "setState", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "stateVar", values?: undefined): string; + encodeFunctionData(functionFragment: "version", values?: undefined): string; + + decodeFunctionResult(functionFragment: "doMath", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "getState", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setState", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "stateVar", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "version", data: BytesLike): Result; + + events: {}; +} + +export class MysteryMathV2 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MysteryMathV2Interface; + + functions: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { _result: BigNumber }>; + + getState(overrides?: CallOverrides): Promise<[BigNumber]>; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise<[BigNumber]>; + + version(overrides?: CallOverrides): Promise<[number]>; + }; + + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + + callStatic: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState(_var: BigNumberish, overrides?: CallOverrides): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + doMath( + a: BigNumberish, + b: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getState(overrides?: CallOverrides): Promise; + + setState( + _var: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + stateVar(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/Ownable.d.ts b/solidity/abacus-core/typechain/Ownable.d.ts new file mode 100644 index 000000000..2d3f0a49b --- /dev/null +++ b/solidity/abacus-core/typechain/Ownable.d.ts @@ -0,0 +1,169 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface OwnableInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class Ownable extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: OwnableInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/OwnableUpgradeable.d.ts b/solidity/abacus-core/typechain/OwnableUpgradeable.d.ts new file mode 100644 index 000000000..8a8eafde6 --- /dev/null +++ b/solidity/abacus-core/typechain/OwnableUpgradeable.d.ts @@ -0,0 +1,169 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface OwnableUpgradeableInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class OwnableUpgradeable extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: OwnableUpgradeableInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/QueueManager.d.ts b/solidity/abacus-core/typechain/QueueManager.d.ts new file mode 100644 index 000000000..28273112f --- /dev/null +++ b/solidity/abacus-core/typechain/QueueManager.d.ts @@ -0,0 +1,145 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface QueueManagerInterface extends ethers.utils.Interface { + functions: { + "queueContains(bytes32)": FunctionFragment; + "queueEnd()": FunctionFragment; + "queueLength()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "queueContains", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueLength", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "queueContains", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueLength", + data: BytesLike + ): Result; + + events: {}; +} + +export class QueueManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: QueueManagerInterface; + + functions: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + queueEnd(overrides?: CallOverrides): Promise<[string]>; + + queueLength(overrides?: CallOverrides): Promise<[BigNumber]>; + }; + + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + callStatic: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/Replica.d.ts b/solidity/abacus-core/typechain/Replica.d.ts new file mode 100644 index 000000000..07559ded2 --- /dev/null +++ b/solidity/abacus-core/typechain/Replica.d.ts @@ -0,0 +1,1104 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface ReplicaInterface extends ethers.utils.Interface { + functions: { + "PROCESS_GAS()": FunctionFragment; + "RESERVE_GAS()": FunctionFragment; + "VERSION()": FunctionFragment; + "acceptableRoot(bytes32)": FunctionFragment; + "committedRoot()": FunctionFragment; + "confirmAt(bytes32)": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "initialize(uint32,address,bytes32,uint256)": FunctionFragment; + "localDomain()": FunctionFragment; + "messages(bytes32)": FunctionFragment; + "optimisticSeconds()": FunctionFragment; + "owner()": FunctionFragment; + "process(bytes)": FunctionFragment; + "prove(bytes32,bytes32[32],uint256)": FunctionFragment; + "proveAndProcess(bytes,bytes32[32],uint256)": FunctionFragment; + "remoteDomain()": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "state()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "update(bytes32,bytes32,bytes)": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "PROCESS_GAS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "RESERVE_GAS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "acceptableRoot", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "confirmAt", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [BigNumberish, string, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "messages", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "optimisticSeconds", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: "process", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "prove", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "proveAndProcess", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "remoteDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "update", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "PROCESS_GAS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "RESERVE_GAS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "acceptableRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "confirmAt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "messages", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "optimisticSeconds", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "process", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "prove", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proveAndProcess", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "remoteDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "update", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: { + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Process(bytes32,bool,bytes)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Process"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; +} + +export class Replica extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ReplicaInterface; + + functions: { + PROCESS_GAS(overrides?: CallOverrides): Promise<[BigNumber]>; + + RESERVE_GAS(overrides?: CallOverrides): Promise<[BigNumber]>; + + VERSION(overrides?: CallOverrides): Promise<[number]>; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise<[number]>; + + optimisticSeconds(overrides?: CallOverrides): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise<[number]>; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise<[number]>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot(_root: BytesLike, overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process(_message: BytesLike, overrides?: CallOverrides): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater(_updater: string, overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: { + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Process( + messageHash?: BytesLike | null, + success?: boolean | null, + returnData?: BytesLike | null + ): TypedEventFilter< + [string, boolean, string], + { messageHash: string; success: boolean; returnData: string } + >; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + }; + + estimateGas: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestCommon.d.ts b/solidity/abacus-core/typechain/TestCommon.d.ts new file mode 100644 index 000000000..f00520e5c --- /dev/null +++ b/solidity/abacus-core/typechain/TestCommon.d.ts @@ -0,0 +1,324 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestCommonInterface extends ethers.utils.Interface { + functions: { + "committedRoot()": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "localDomain()": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "state()": FunctionFragment; + "testIsUpdaterSignature(bytes32,bytes32,bytes)": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData( + functionFragment: "testIsUpdaterSignature", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "testIsUpdaterSignature", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: { + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; +} + +export class TestCommon extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestCommonInterface; + + functions: { + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise<[number]>; + + testIsUpdaterSignature( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + testIsUpdaterSignature( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + setUpdater(_updater: string, overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + testIsUpdaterSignature( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: { + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + }; + + estimateGas: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + testIsUpdaterSignature( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + testIsUpdaterSignature( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestGovernanceRouter.d.ts b/solidity/abacus-core/typechain/TestGovernanceRouter.d.ts new file mode 100644 index 000000000..6c50024d3 --- /dev/null +++ b/solidity/abacus-core/typechain/TestGovernanceRouter.d.ts @@ -0,0 +1,788 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestGovernanceRouterInterface extends ethers.utils.Interface { + functions: { + "VERSION()": FunctionFragment; + "callLocal(tuple[])": FunctionFragment; + "callRemote(uint32,tuple[])": FunctionFragment; + "containsDomain(uint32)": FunctionFragment; + "domains(uint256)": FunctionFragment; + "exitRecovery()": FunctionFragment; + "governor()": FunctionFragment; + "governorDomain()": FunctionFragment; + "handle(uint32,bytes32,bytes)": FunctionFragment; + "inRecovery()": FunctionFragment; + "initialize(address,address)": FunctionFragment; + "initiateRecoveryTimelock()": FunctionFragment; + "localDomain()": FunctionFragment; + "recoveryActiveAt()": FunctionFragment; + "recoveryManager()": FunctionFragment; + "recoveryTimelock()": FunctionFragment; + "routers(uint32)": FunctionFragment; + "setRouter(uint32,bytes32)": FunctionFragment; + "setRouterLocal(uint32,bytes32)": FunctionFragment; + "setXAppConnectionManager(address)": FunctionFragment; + "testSetRouter(uint32,bytes32)": FunctionFragment; + "transferGovernor(uint32,address)": FunctionFragment; + "transferRecoveryManager(address)": FunctionFragment; + "xAppConnectionManager()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "callLocal", + values: [{ to: BytesLike; data: BytesLike }[]] + ): string; + encodeFunctionData( + functionFragment: "callRemote", + values: [BigNumberish, { to: BytesLike; data: BytesLike }[]] + ): string; + encodeFunctionData( + functionFragment: "containsDomain", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "domains", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "exitRecovery", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "governor", values?: undefined): string; + encodeFunctionData( + functionFragment: "governorDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "inRecovery", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "initiateRecoveryTimelock", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "recoveryActiveAt", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "recoveryManager", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "recoveryTimelock", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "routers", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setRouter", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setRouterLocal", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setXAppConnectionManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "testSetRouter", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferGovernor", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "transferRecoveryManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "xAppConnectionManager", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "callLocal", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "callRemote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "containsDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "domains", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exitRecovery", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "governor", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "governorDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "inRecovery", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "initiateRecoveryTimelock", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "recoveryActiveAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "recoveryManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "recoveryTimelock", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "routers", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setRouter", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setRouterLocal", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setXAppConnectionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testSetRouter", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferGovernor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferRecoveryManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "xAppConnectionManager", + data: BytesLike + ): Result; + + events: { + "ExitRecovery(address)": EventFragment; + "InitiateRecovery(address,uint256)": EventFragment; + "SetRouter(uint32,bytes32,bytes32)": EventFragment; + "TransferGovernor(uint32,uint32,address,address)": EventFragment; + "TransferRecoveryManager(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "ExitRecovery"): EventFragment; + getEvent(nameOrSignatureOrTopic: "InitiateRecovery"): EventFragment; + getEvent(nameOrSignatureOrTopic: "SetRouter"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferGovernor"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferRecoveryManager"): EventFragment; +} + +export class TestGovernanceRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestGovernanceRouterInterface; + + functions: { + VERSION(overrides?: CallOverrides): Promise<[number]>; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + containsDomain( + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise<[boolean]>; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise<[string]>; + + governorDomain(overrides?: CallOverrides): Promise<[number]>; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise<[boolean]>; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + recoveryActiveAt(overrides?: CallOverrides): Promise<[BigNumber]>; + + recoveryManager(overrides?: CallOverrides): Promise<[string]>; + + recoveryTimelock(overrides?: CallOverrides): Promise<[BigNumber]>; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testSetRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + containsDomain( + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testSetRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + + callStatic: { + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: CallOverrides + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: CallOverrides + ): Promise; + + containsDomain( + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + exitRecovery(overrides?: CallOverrides): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: CallOverrides + ): Promise; + + initiateRecoveryTimelock(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + testSetRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: CallOverrides + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: CallOverrides + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + filters: { + ExitRecovery( + recoveryManager?: null + ): TypedEventFilter<[string], { recoveryManager: string }>; + + InitiateRecovery( + recoveryManager?: string | null, + recoveryActiveAt?: null + ): TypedEventFilter< + [string, BigNumber], + { recoveryManager: string; recoveryActiveAt: BigNumber } + >; + + SetRouter( + domain?: BigNumberish | null, + previousRouter?: null, + newRouter?: null + ): TypedEventFilter< + [number, string, string], + { domain: number; previousRouter: string; newRouter: string } + >; + + TransferGovernor( + previousGovernorDomain?: null, + newGovernorDomain?: null, + previousGovernor?: string | null, + newGovernor?: string | null + ): TypedEventFilter< + [number, number, string, string], + { + previousGovernorDomain: number; + newGovernorDomain: number; + previousGovernor: string; + newGovernor: string; + } + >; + + TransferRecoveryManager( + previousRecoveryManager?: string | null, + newRecoveryManager?: string | null + ): TypedEventFilter< + [string, string], + { previousRecoveryManager: string; newRecoveryManager: string } + >; + }; + + estimateGas: { + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + containsDomain( + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + domains(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testSetRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + VERSION(overrides?: CallOverrides): Promise; + + callLocal( + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callRemote( + _destination: BigNumberish, + _calls: { to: BytesLike; data: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + containsDomain( + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + domains( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exitRecovery( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + governor(overrides?: CallOverrides): Promise; + + governorDomain(overrides?: CallOverrides): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + inRecovery(overrides?: CallOverrides): Promise; + + initialize( + _xAppConnectionManager: string, + _recoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiateRecoveryTimelock( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + recoveryActiveAt(overrides?: CallOverrides): Promise; + + recoveryManager(overrides?: CallOverrides): Promise; + + recoveryTimelock(overrides?: CallOverrides): Promise; + + routers( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + setRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setRouterLocal( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testSetRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferGovernor( + _newDomain: BigNumberish, + _newGovernor: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferRecoveryManager( + _newRecoveryManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager( + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestHome.d.ts b/solidity/abacus-core/typechain/TestHome.d.ts new file mode 100644 index 000000000..716ea0064 --- /dev/null +++ b/solidity/abacus-core/typechain/TestHome.d.ts @@ -0,0 +1,859 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestHomeInterface extends ethers.utils.Interface { + functions: { + "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; + "VERSION()": FunctionFragment; + "committedRoot()": FunctionFragment; + "count()": FunctionFragment; + "destinationAndNonce(uint32,uint32)": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "improperUpdate(bytes32,bytes32,bytes)": FunctionFragment; + "initialize(address)": FunctionFragment; + "localDomain()": FunctionFragment; + "nonces(uint32)": FunctionFragment; + "owner()": FunctionFragment; + "queueContains(bytes32)": FunctionFragment; + "queueEnd()": FunctionFragment; + "queueLength()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "root()": FunctionFragment; + "setFailed()": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "setUpdaterManager(address)": FunctionFragment; + "state()": FunctionFragment; + "suggestUpdate()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "tree()": FunctionFragment; + "update(bytes32,bytes32,bytes)": FunctionFragment; + "updater()": FunctionFragment; + "updaterManager()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; + encodeFunctionData( + functionFragment: "destinationAndNonce", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "dispatch", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "improperUpdate", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "initialize", values: [string]): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueContains", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueLength", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "root", values?: undefined): string; + encodeFunctionData(functionFragment: "setFailed", values?: undefined): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData( + functionFragment: "setUpdaterManager", + values: [string] + ): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData( + functionFragment: "suggestUpdate", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData(functionFragment: "tree", values?: undefined): string; + encodeFunctionData( + functionFragment: "update", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + encodeFunctionData( + functionFragment: "updaterManager", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "destinationAndNonce", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "improperUpdate", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueContains", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setFailed", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setUpdaterManager", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "suggestUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "update", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "updaterManager", + data: BytesLike + ): Result; + + events: { + "Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment; + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "ImproperUpdate(bytes32,bytes32,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "NewUpdaterManager(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + "UpdaterSlashed(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Dispatch"): EventFragment; + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ImproperUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdaterManager"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; + getEvent(nameOrSignatureOrTopic: "UpdaterSlashed"): EventFragment; +} + +export class TestHome extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestHomeInterface; + + functions: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>; + + VERSION(overrides?: CallOverrides): Promise<[number]>; + + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + count(overrides?: CallOverrides): Promise<[BigNumber]>; + + destinationAndNonce( + _destination: BigNumberish, + _nonce: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + queueEnd(overrides?: CallOverrides): Promise<[string]>; + + queueLength(overrides?: CallOverrides): Promise<[BigNumber]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise<[string]>; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise<[number]>; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree( + overrides?: CallOverrides + ): Promise<[BigNumber] & { count: BigNumber }>; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + + updaterManager(overrides?: CallOverrides): Promise<[string]>; + }; + + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + destinationAndNonce( + _destination: BigNumberish, + _nonce: BigNumberish, + overrides?: CallOverrides + ): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + + callStatic: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + destinationAndNonce( + _destination: BigNumberish, + _nonce: BigNumberish, + overrides?: CallOverrides + ): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: CallOverrides + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + initialize( + _updaterManager: string, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + setFailed(overrides?: CallOverrides): Promise; + + setUpdater(_updater: string, overrides?: CallOverrides): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: CallOverrides + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; + + filters: { + Dispatch( + messageHash?: BytesLike | null, + leafIndex?: BigNumberish | null, + destinationAndNonce?: BigNumberish | null, + committedRoot?: null, + message?: null + ): TypedEventFilter< + [string, BigNumber, BigNumber, string, string], + { + messageHash: string; + leafIndex: BigNumber; + destinationAndNonce: BigNumber; + committedRoot: string; + message: string; + } + >; + + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + ImproperUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null + ): TypedEventFilter< + [string, string, string], + { oldRoot: string; newRoot: string; signature: string } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + NewUpdaterManager( + updaterManager?: null + ): TypedEventFilter<[string], { updaterManager: string }>; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + + UpdaterSlashed( + updater?: string | null, + reporter?: string | null + ): TypedEventFilter< + [string, string], + { updater: string; reporter: string } + >; + }; + + estimateGas: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + destinationAndNonce( + _destination: BigNumberish, + _nonce: BigNumberish, + overrides?: CallOverrides + ): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + MAX_MESSAGE_BODY_BYTES( + overrides?: CallOverrides + ): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + destinationAndNonce( + _destination: BigNumberish, + _nonce: BigNumberish, + overrides?: CallOverrides + ): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestMerkle.d.ts b/solidity/abacus-core/typechain/TestMerkle.d.ts new file mode 100644 index 000000000..08cd5cb58 --- /dev/null +++ b/solidity/abacus-core/typechain/TestMerkle.d.ts @@ -0,0 +1,392 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestMerkleInterface extends ethers.utils.Interface { + functions: { + "branchRoot(bytes32,bytes32[32],uint256)": FunctionFragment; + "count()": FunctionFragment; + "insert(bytes32)": FunctionFragment; + "root()": FunctionFragment; + "tree()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "branchRoot", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; + encodeFunctionData(functionFragment: "insert", values: [BytesLike]): string; + encodeFunctionData(functionFragment: "root", values?: undefined): string; + encodeFunctionData(functionFragment: "tree", values?: undefined): string; + + decodeFunctionResult(functionFragment: "branchRoot", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "insert", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; + + events: {}; +} + +export class TestMerkle extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestMerkleInterface; + + functions: { + branchRoot( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise<[string] & { _node: string }>; + + count(overrides?: CallOverrides): Promise<[BigNumber]>; + + insert( + _node: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise<[string]>; + + tree( + overrides?: CallOverrides + ): Promise<[BigNumber] & { count: BigNumber }>; + }; + + branchRoot( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + count(overrides?: CallOverrides): Promise; + + insert( + _node: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + + callStatic: { + branchRoot( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + count(overrides?: CallOverrides): Promise; + + insert(_node: BytesLike, overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + branchRoot( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + count(overrides?: CallOverrides): Promise; + + insert( + _node: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + branchRoot( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + count(overrides?: CallOverrides): Promise; + + insert( + _node: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestMessage.d.ts b/solidity/abacus-core/typechain/TestMessage.d.ts new file mode 100644 index 000000000..4c13a29ee --- /dev/null +++ b/solidity/abacus-core/typechain/TestMessage.d.ts @@ -0,0 +1,252 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestMessageInterface extends ethers.utils.Interface { + functions: { + "body(bytes)": FunctionFragment; + "destination(bytes)": FunctionFragment; + "leaf(bytes)": FunctionFragment; + "nonce(bytes)": FunctionFragment; + "origin(bytes)": FunctionFragment; + "recipient(bytes)": FunctionFragment; + "recipientAddress(bytes)": FunctionFragment; + "sender(bytes)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "body", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "destination", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "leaf", values: [BytesLike]): string; + encodeFunctionData(functionFragment: "nonce", values: [BytesLike]): string; + encodeFunctionData(functionFragment: "origin", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "recipient", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "recipientAddress", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "sender", values: [BytesLike]): string; + + decodeFunctionResult(functionFragment: "body", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "destination", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "leaf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonce", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "origin", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "recipient", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "recipientAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "sender", data: BytesLike): Result; + + events: {}; +} + +export class TestMessage extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestMessageInterface; + + functions: { + body(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>; + + destination( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[number]>; + + leaf(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>; + + nonce(_message: BytesLike, overrides?: CallOverrides): Promise<[number]>; + + origin(_message: BytesLike, overrides?: CallOverrides): Promise<[number]>; + + recipient( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + recipientAddress( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + sender(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>; + }; + + body(_message: BytesLike, overrides?: CallOverrides): Promise; + + destination(_message: BytesLike, overrides?: CallOverrides): Promise; + + leaf(_message: BytesLike, overrides?: CallOverrides): Promise; + + nonce(_message: BytesLike, overrides?: CallOverrides): Promise; + + origin(_message: BytesLike, overrides?: CallOverrides): Promise; + + recipient(_message: BytesLike, overrides?: CallOverrides): Promise; + + recipientAddress( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + sender(_message: BytesLike, overrides?: CallOverrides): Promise; + + callStatic: { + body(_message: BytesLike, overrides?: CallOverrides): Promise; + + destination( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + leaf(_message: BytesLike, overrides?: CallOverrides): Promise; + + nonce(_message: BytesLike, overrides?: CallOverrides): Promise; + + origin(_message: BytesLike, overrides?: CallOverrides): Promise; + + recipient(_message: BytesLike, overrides?: CallOverrides): Promise; + + recipientAddress( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + sender(_message: BytesLike, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + body(_message: BytesLike, overrides?: CallOverrides): Promise; + + destination( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + leaf(_message: BytesLike, overrides?: CallOverrides): Promise; + + nonce(_message: BytesLike, overrides?: CallOverrides): Promise; + + origin(_message: BytesLike, overrides?: CallOverrides): Promise; + + recipient( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + recipientAddress( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + sender(_message: BytesLike, overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + body( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + destination( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + leaf( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + nonce( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + origin( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + recipient( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + recipientAddress( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + sender( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestQueue.d.ts b/solidity/abacus-core/typechain/TestQueue.d.ts new file mode 100644 index 000000000..e4ac86e83 --- /dev/null +++ b/solidity/abacus-core/typechain/TestQueue.d.ts @@ -0,0 +1,363 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestQueueInterface extends ethers.utils.Interface { + functions: { + "contains(bytes32)": FunctionFragment; + "dequeue()": FunctionFragment; + "dequeueMany(uint256)": FunctionFragment; + "drain()": FunctionFragment; + "enqueue(bytes32)": FunctionFragment; + "enqueueMany(bytes32[])": FunctionFragment; + "initializeAgain()": FunctionFragment; + "lastItem()": FunctionFragment; + "length()": FunctionFragment; + "peek()": FunctionFragment; + "queueContains(bytes32)": FunctionFragment; + "queueEnd()": FunctionFragment; + "queueLength()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "contains", values: [BytesLike]): string; + encodeFunctionData(functionFragment: "dequeue", values?: undefined): string; + encodeFunctionData( + functionFragment: "dequeueMany", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "drain", values?: undefined): string; + encodeFunctionData(functionFragment: "enqueue", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "enqueueMany", + values: [BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "initializeAgain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "lastItem", values?: undefined): string; + encodeFunctionData(functionFragment: "length", values?: undefined): string; + encodeFunctionData(functionFragment: "peek", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueContains", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueLength", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "contains", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dequeue", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "dequeueMany", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "drain", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "enqueue", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "enqueueMany", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "initializeAgain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "lastItem", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "length", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "peek", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueContains", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueLength", + data: BytesLike + ): Result; + + events: {}; +} + +export class TestQueue extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestQueueInterface; + + functions: { + contains(_item: BytesLike, overrides?: CallOverrides): Promise<[boolean]>; + + dequeue( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + dequeueMany( + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + drain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueue( + _item: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueueMany( + _items: BytesLike[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initializeAgain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + lastItem(overrides?: CallOverrides): Promise<[string]>; + + length(overrides?: CallOverrides): Promise<[BigNumber]>; + + peek(overrides?: CallOverrides): Promise<[string] & { _item: string }>; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + queueEnd(overrides?: CallOverrides): Promise<[string]>; + + queueLength(overrides?: CallOverrides): Promise<[BigNumber]>; + }; + + contains(_item: BytesLike, overrides?: CallOverrides): Promise; + + dequeue( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + dequeueMany( + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + drain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueue( + _item: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueueMany( + _items: BytesLike[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initializeAgain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + lastItem(overrides?: CallOverrides): Promise; + + length(overrides?: CallOverrides): Promise; + + peek(overrides?: CallOverrides): Promise; + + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + callStatic: { + contains(_item: BytesLike, overrides?: CallOverrides): Promise; + + dequeue(overrides?: CallOverrides): Promise; + + dequeueMany( + _number: BigNumberish, + overrides?: CallOverrides + ): Promise; + + drain(overrides?: CallOverrides): Promise; + + enqueue(_item: BytesLike, overrides?: CallOverrides): Promise; + + enqueueMany( + _items: BytesLike[], + overrides?: CallOverrides + ): Promise; + + initializeAgain(overrides?: CallOverrides): Promise; + + lastItem(overrides?: CallOverrides): Promise; + + length(overrides?: CallOverrides): Promise; + + peek(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + contains(_item: BytesLike, overrides?: CallOverrides): Promise; + + dequeue( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + dequeueMany( + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + drain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueue( + _item: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueueMany( + _items: BytesLike[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initializeAgain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + lastItem(overrides?: CallOverrides): Promise; + + length(overrides?: CallOverrides): Promise; + + peek(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + contains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + dequeue( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + dequeueMany( + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + drain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueue( + _item: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enqueueMany( + _items: BytesLike[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initializeAgain( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + lastItem(overrides?: CallOverrides): Promise; + + length(overrides?: CallOverrides): Promise; + + peek(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestRecipient.d.ts b/solidity/abacus-core/typechain/TestRecipient.d.ts new file mode 100644 index 000000000..53963440b --- /dev/null +++ b/solidity/abacus-core/typechain/TestRecipient.d.ts @@ -0,0 +1,206 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestRecipientInterface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + "message()": FunctionFragment; + "processCall(bool)": FunctionFragment; + "processed()": FunctionFragment; + "receiveString(string)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "message", values?: undefined): string; + encodeFunctionData( + functionFragment: "processCall", + values: [boolean] + ): string; + encodeFunctionData(functionFragment: "processed", values?: undefined): string; + encodeFunctionData( + functionFragment: "receiveString", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "message", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "processCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "processed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveString", + data: BytesLike + ): Result; + + events: {}; +} + +export class TestRecipient extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestRecipientInterface; + + functions: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + message(overrides?: CallOverrides): Promise<[string]>; + + processCall( + callProcessed: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + processed(overrides?: CallOverrides): Promise<[boolean]>; + + receiveString(_str: string, overrides?: CallOverrides): Promise<[string]>; + }; + + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + message(overrides?: CallOverrides): Promise; + + processCall( + callProcessed: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + processed(overrides?: CallOverrides): Promise; + + receiveString(_str: string, overrides?: CallOverrides): Promise; + + callStatic: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + message(overrides?: CallOverrides): Promise; + + processCall( + callProcessed: boolean, + overrides?: CallOverrides + ): Promise; + + processed(overrides?: CallOverrides): Promise; + + receiveString(_str: string, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + message(overrides?: CallOverrides): Promise; + + processCall( + callProcessed: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + processed(overrides?: CallOverrides): Promise; + + receiveString(_str: string, overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + handle( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BytesLike, + overrides?: CallOverrides + ): Promise; + + message(overrides?: CallOverrides): Promise; + + processCall( + callProcessed: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + processed(overrides?: CallOverrides): Promise; + + receiveString( + _str: string, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestReplica.d.ts b/solidity/abacus-core/typechain/TestReplica.d.ts new file mode 100644 index 000000000..50c87c875 --- /dev/null +++ b/solidity/abacus-core/typechain/TestReplica.d.ts @@ -0,0 +1,1473 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestReplicaInterface extends ethers.utils.Interface { + functions: { + "PROCESS_GAS()": FunctionFragment; + "RESERVE_GAS()": FunctionFragment; + "VERSION()": FunctionFragment; + "acceptableRoot(bytes32)": FunctionFragment; + "committedRoot()": FunctionFragment; + "confirmAt(bytes32)": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "initialize(uint32,address,bytes32,uint256)": FunctionFragment; + "localDomain()": FunctionFragment; + "messages(bytes32)": FunctionFragment; + "optimisticSeconds()": FunctionFragment; + "owner()": FunctionFragment; + "process(bytes)": FunctionFragment; + "prove(bytes32,bytes32[32],uint256)": FunctionFragment; + "proveAndProcess(bytes,bytes32[32],uint256)": FunctionFragment; + "remoteDomain()": FunctionFragment; + "setCommittedRoot(bytes32)": FunctionFragment; + "setFailed()": FunctionFragment; + "setMessageProven(bytes)": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "state()": FunctionFragment; + "testBranchRoot(bytes32,bytes32[32],uint256)": FunctionFragment; + "testProcess(bytes)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "update(bytes32,bytes32,bytes)": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "PROCESS_GAS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "RESERVE_GAS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "acceptableRoot", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "confirmAt", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [BigNumberish, string, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "messages", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "optimisticSeconds", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: "process", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "prove", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "proveAndProcess", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "remoteDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setCommittedRoot", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "setFailed", values?: undefined): string; + encodeFunctionData( + functionFragment: "setMessageProven", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData( + functionFragment: "testBranchRoot", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "testProcess", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "update", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "PROCESS_GAS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "RESERVE_GAS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "acceptableRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "confirmAt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "messages", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "optimisticSeconds", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "process", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "prove", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proveAndProcess", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "remoteDomain", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setCommittedRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setFailed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setMessageProven", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "testBranchRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testProcess", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "update", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: { + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Process(bytes32,bool,bytes)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Process"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; +} + +export class TestReplica extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestReplicaInterface; + + functions: { + PROCESS_GAS(overrides?: CallOverrides): Promise<[BigNumber]>; + + RESERVE_GAS(overrides?: CallOverrides): Promise<[BigNumber]>; + + VERSION(overrides?: CallOverrides): Promise<[number]>; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise<[number]>; + + optimisticSeconds(overrides?: CallOverrides): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise<[number]>; + + setCommittedRoot( + _newRoot: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setMessageProven( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise<[number]>; + + testBranchRoot( + leaf: BytesLike, + proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + index: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + testProcess( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot(_root: BytesLike, overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setCommittedRoot( + _newRoot: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setMessageProven( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + testBranchRoot( + leaf: BytesLike, + proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testProcess( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process(_message: BytesLike, overrides?: CallOverrides): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setCommittedRoot( + _newRoot: BytesLike, + overrides?: CallOverrides + ): Promise; + + setFailed(overrides?: CallOverrides): Promise; + + setMessageProven( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + setUpdater(_updater: string, overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + testBranchRoot( + leaf: BytesLike, + proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testProcess( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: { + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Process( + messageHash?: BytesLike | null, + success?: boolean | null, + returnData?: BytesLike | null + ): TypedEventFilter< + [string, boolean, string], + { messageHash: string; success: boolean; returnData: string } + >; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + }; + + estimateGas: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setCommittedRoot( + _newRoot: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setMessageProven( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + testBranchRoot( + leaf: BytesLike, + proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testProcess( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setCommittedRoot( + _newRoot: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFailed( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setMessageProven( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + testBranchRoot( + leaf: BytesLike, + proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testProcess( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TestXAppConnectionManager.d.ts b/solidity/abacus-core/typechain/TestXAppConnectionManager.d.ts new file mode 100644 index 000000000..ce98453d8 --- /dev/null +++ b/solidity/abacus-core/typechain/TestXAppConnectionManager.d.ts @@ -0,0 +1,575 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestXAppConnectionManagerInterface extends ethers.utils.Interface { + functions: { + "domainToReplica(uint32)": FunctionFragment; + "home()": FunctionFragment; + "isReplica(address)": FunctionFragment; + "localDomain()": FunctionFragment; + "owner()": FunctionFragment; + "ownerEnrollReplica(address,uint32)": FunctionFragment; + "ownerUnenrollReplica(address)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "replicaToDomain(address)": FunctionFragment; + "setHome(address)": FunctionFragment; + "setWatcherPermission(address,uint32,bool)": FunctionFragment; + "testRecoverWatcherFromSig(uint32,address,address,bytes)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "unenrollReplica(uint32,bytes32,bytes)": FunctionFragment; + "watcherPermission(address,uint32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "domainToReplica", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "home", values?: undefined): string; + encodeFunctionData(functionFragment: "isReplica", values: [string]): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerEnrollReplica", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "ownerUnenrollReplica", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "replicaToDomain", + values: [string] + ): string; + encodeFunctionData(functionFragment: "setHome", values: [string]): string; + encodeFunctionData( + functionFragment: "setWatcherPermission", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "testRecoverWatcherFromSig", + values: [BigNumberish, string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "unenrollReplica", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "watcherPermission", + values: [string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "domainToReplica", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "ownerEnrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "ownerUnenrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "replicaToDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setHome", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setWatcherPermission", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testRecoverWatcherFromSig", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unenrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "watcherPermission", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + "ReplicaEnrolled(uint32,address)": EventFragment; + "ReplicaUnenrolled(uint32,address)": EventFragment; + "WatcherPermissionSet(uint32,address,bool)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ReplicaEnrolled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ReplicaUnenrolled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "WatcherPermissionSet"): EventFragment; +} + +export class TestXAppConnectionManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestXAppConnectionManagerInterface; + + functions: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + home(overrides?: CallOverrides): Promise<[string]>; + + isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<[number]>; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testRecoverWatcherFromSig( + _domain: BigNumberish, + _replica: string, + _updater: string, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testRecoverWatcherFromSig( + _domain: BigNumberish, + _replica: string, + _updater: string, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: CallOverrides + ): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise; + + setHome(_home: string, overrides?: CallOverrides): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: CallOverrides + ): Promise; + + testRecoverWatcherFromSig( + _domain: BigNumberish, + _replica: string, + _updater: string, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + ReplicaEnrolled( + domain?: BigNumberish | null, + replica?: null + ): TypedEventFilter<[number, string], { domain: number; replica: string }>; + + ReplicaUnenrolled( + domain?: BigNumberish | null, + replica?: null + ): TypedEventFilter<[number, string], { domain: number; replica: string }>; + + WatcherPermissionSet( + domain?: BigNumberish | null, + watcher?: null, + access?: null + ): TypedEventFilter< + [number, string, boolean], + { domain: number; watcher: string; access: boolean } + >; + }; + + estimateGas: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain( + arg0: string, + overrides?: CallOverrides + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testRecoverWatcherFromSig( + _domain: BigNumberish, + _replica: string, + _updater: string, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica( + _replica: string, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain( + arg0: string, + overrides?: CallOverrides + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + testRecoverWatcherFromSig( + _domain: BigNumberish, + _replica: string, + _updater: string, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/TypedMemView.d.ts b/solidity/abacus-core/typechain/TypedMemView.d.ts new file mode 100644 index 000000000..ccab8f73c --- /dev/null +++ b/solidity/abacus-core/typechain/TypedMemView.d.ts @@ -0,0 +1,95 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TypedMemViewInterface extends ethers.utils.Interface { + functions: { + "NULL()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "NULL", values?: undefined): string; + + decodeFunctionResult(functionFragment: "NULL", data: BytesLike): Result; + + events: {}; +} + +export class TypedMemView extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TypedMemViewInterface; + + functions: { + NULL(overrides?: CallOverrides): Promise<[string]>; + }; + + NULL(overrides?: CallOverrides): Promise; + + callStatic: { + NULL(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + NULL(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + NULL(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/UpdaterManager.d.ts b/solidity/abacus-core/typechain/UpdaterManager.d.ts new file mode 100644 index 000000000..50df37779 --- /dev/null +++ b/solidity/abacus-core/typechain/UpdaterManager.d.ts @@ -0,0 +1,276 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface UpdaterManagerInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "setHome(address)": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "slashUpdater(address)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "setHome", values: [string]): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData( + functionFragment: "slashUpdater", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setHome", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "slashUpdater", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: { + "FakeSlashed(address)": EventFragment; + "NewHome(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "FakeSlashed"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewHome"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class UpdaterManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UpdaterManagerInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updaterAddress: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updaterAddress: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setHome(_home: string, overrides?: CallOverrides): Promise; + + setUpdater( + _updaterAddress: string, + overrides?: CallOverrides + ): Promise; + + slashUpdater(_reporter: string, overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: { + FakeSlashed( + reporter?: null + ): TypedEventFilter<[string], { reporter: string }>; + + NewHome(home?: null): TypedEventFilter<[string], { home: string }>; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updaterAddress: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdater( + _updaterAddress: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/UpgradeBeacon.d.ts b/solidity/abacus-core/typechain/UpgradeBeacon.d.ts new file mode 100644 index 000000000..bf3f2fb03 --- /dev/null +++ b/solidity/abacus-core/typechain/UpgradeBeacon.d.ts @@ -0,0 +1,86 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface UpgradeBeaconInterface extends ethers.utils.Interface { + functions: {}; + + events: { + "Upgrade(address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Upgrade"): EventFragment; +} + +export class UpgradeBeacon extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UpgradeBeaconInterface; + + functions: {}; + + callStatic: {}; + + filters: { + Upgrade( + implementation?: string | null + ): TypedEventFilter<[string], { implementation: string }>; + }; + + estimateGas: {}; + + populateTransaction: {}; +} diff --git a/solidity/abacus-core/typechain/UpgradeBeaconController.d.ts b/solidity/abacus-core/typechain/UpgradeBeaconController.d.ts new file mode 100644 index 000000000..c04d2f851 --- /dev/null +++ b/solidity/abacus-core/typechain/UpgradeBeaconController.d.ts @@ -0,0 +1,215 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface UpgradeBeaconControllerInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "upgrade(address,address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "upgrade", + values: [string, string] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "upgrade", data: BytesLike): Result; + + events: { + "BeaconUpgraded(address,address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class UpgradeBeaconController extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UpgradeBeaconControllerInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + upgrade( + _beacon: string, + _implementation: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + upgrade( + _beacon: string, + _implementation: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + upgrade( + _beacon: string, + _implementation: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + BeaconUpgraded( + beacon?: string | null, + implementation?: null + ): TypedEventFilter< + [string, string], + { beacon: string; implementation: string } + >; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + upgrade( + _beacon: string, + _implementation: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + upgrade( + _beacon: string, + _implementation: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/UpgradeBeaconProxy.d.ts b/solidity/abacus-core/typechain/UpgradeBeaconProxy.d.ts new file mode 100644 index 000000000..62683abe0 --- /dev/null +++ b/solidity/abacus-core/typechain/UpgradeBeaconProxy.d.ts @@ -0,0 +1,78 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface UpgradeBeaconProxyInterface extends ethers.utils.Interface { + functions: {}; + + events: {}; +} + +export class UpgradeBeaconProxy extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UpgradeBeaconProxyInterface; + + functions: {}; + + callStatic: {}; + + filters: {}; + + estimateGas: {}; + + populateTransaction: {}; +} diff --git a/solidity/abacus-core/typechain/Version0.d.ts b/solidity/abacus-core/typechain/Version0.d.ts new file mode 100644 index 000000000..e6b444fd9 --- /dev/null +++ b/solidity/abacus-core/typechain/Version0.d.ts @@ -0,0 +1,95 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface Version0Interface extends ethers.utils.Interface { + functions: { + "VERSION()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + + events: {}; +} + +export class Version0 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: Version0Interface; + + functions: { + VERSION(overrides?: CallOverrides): Promise<[number]>; + }; + + VERSION(overrides?: CallOverrides): Promise; + + callStatic: { + VERSION(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + VERSION(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + VERSION(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/XAppConnectionManager.d.ts b/solidity/abacus-core/typechain/XAppConnectionManager.d.ts new file mode 100644 index 000000000..d6d86efa6 --- /dev/null +++ b/solidity/abacus-core/typechain/XAppConnectionManager.d.ts @@ -0,0 +1,526 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface XAppConnectionManagerInterface extends ethers.utils.Interface { + functions: { + "domainToReplica(uint32)": FunctionFragment; + "home()": FunctionFragment; + "isReplica(address)": FunctionFragment; + "localDomain()": FunctionFragment; + "owner()": FunctionFragment; + "ownerEnrollReplica(address,uint32)": FunctionFragment; + "ownerUnenrollReplica(address)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "replicaToDomain(address)": FunctionFragment; + "setHome(address)": FunctionFragment; + "setWatcherPermission(address,uint32,bool)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "unenrollReplica(uint32,bytes32,bytes)": FunctionFragment; + "watcherPermission(address,uint32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "domainToReplica", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "home", values?: undefined): string; + encodeFunctionData(functionFragment: "isReplica", values: [string]): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerEnrollReplica", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "ownerUnenrollReplica", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "replicaToDomain", + values: [string] + ): string; + encodeFunctionData(functionFragment: "setHome", values: [string]): string; + encodeFunctionData( + functionFragment: "setWatcherPermission", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "unenrollReplica", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "watcherPermission", + values: [string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "domainToReplica", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "ownerEnrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "ownerUnenrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "replicaToDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setHome", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setWatcherPermission", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unenrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "watcherPermission", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + "ReplicaEnrolled(uint32,address)": EventFragment; + "ReplicaUnenrolled(uint32,address)": EventFragment; + "WatcherPermissionSet(uint32,address,bool)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ReplicaEnrolled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ReplicaUnenrolled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "WatcherPermissionSet"): EventFragment; +} + +export class XAppConnectionManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: XAppConnectionManagerInterface; + + functions: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + home(overrides?: CallOverrides): Promise<[string]>; + + isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<[number]>; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: CallOverrides + ): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise; + + setHome(_home: string, overrides?: CallOverrides): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + ReplicaEnrolled( + domain?: BigNumberish | null, + replica?: null + ): TypedEventFilter<[number, string], { domain: number; replica: string }>; + + ReplicaUnenrolled( + domain?: BigNumberish | null, + replica?: null + ): TypedEventFilter<[number, string], { domain: number; replica: string }>; + + WatcherPermissionSet( + domain?: BigNumberish | null, + watcher?: null, + access?: null + ): TypedEventFilter< + [number, string, boolean], + { domain: number; watcher: string; access: boolean } + >; + }; + + estimateGas: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain( + arg0: string, + overrides?: CallOverrides + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica( + _replica: string, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain( + arg0: string, + overrides?: CallOverrides + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-core/typechain/commons.ts b/solidity/abacus-core/typechain/commons.ts new file mode 100644 index 000000000..8d8e66ce5 --- /dev/null +++ b/solidity/abacus-core/typechain/commons.ts @@ -0,0 +1,36 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { EventFilter, Event } from "ethers"; +import { Result } from "@ethersproject/abi"; + +export interface TypedEventFilter<_EventArgsArray, _EventArgsObject> + extends EventFilter {} + +export interface TypedEvent extends Event { + args: EventArgs; +} + +export type TypedListener< + EventArgsArray extends Array, + EventArgsObject +> = ( + ...listenerArg: [ + ...EventArgsArray, + TypedEvent + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; diff --git a/solidity/abacus-core/typechain/factories/BadRecipient1__factory.ts b/solidity/abacus-core/typechain/factories/BadRecipient1__factory.ts new file mode 100644 index 000000000..28e4db53f --- /dev/null +++ b/solidity/abacus-core/typechain/factories/BadRecipient1__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BadRecipient1, BadRecipient1Interface } from "../BadRecipient1"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610117806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506028945050505050565b00fea26469706673582212203117ae1693eae5da24a6e5577157a0058bfb01a60a3d3d0a27a051482e0f787e64736f6c63430007060033"; + +export class BadRecipient1__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BadRecipient1 { + return super.attach(address) as BadRecipient1; + } + connect(signer: Signer): BadRecipient1__factory { + return super.connect(signer) as BadRecipient1__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BadRecipient1Interface { + return new utils.Interface(_abi) as BadRecipient1Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BadRecipient1 { + return new Contract(address, _abi, signerOrProvider) as BadRecipient1; + } +} diff --git a/solidity/abacus-core/typechain/factories/BadRecipient2__factory.ts b/solidity/abacus-core/typechain/factories/BadRecipient2__factory.ts new file mode 100644 index 000000000..652023994 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/BadRecipient2__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BadRecipient2, BadRecipient2Interface } from "../BadRecipient2"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610117806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955060df945050505050565b00fea264697066735822122015f340edec8150a0a5acf888f811c882cb93e41d4c3439a3224ab159a251cd3a64736f6c63430007060033"; + +export class BadRecipient2__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BadRecipient2 { + return super.attach(address) as BadRecipient2; + } + connect(signer: Signer): BadRecipient2__factory { + return super.connect(signer) as BadRecipient2__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BadRecipient2Interface { + return new utils.Interface(_abi) as BadRecipient2Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BadRecipient2 { + return new Contract(address, _abi, signerOrProvider) as BadRecipient2; + } +} diff --git a/solidity/abacus-core/typechain/factories/BadRecipient3__factory.ts b/solidity/abacus-core/typechain/factories/BadRecipient3__factory.ts new file mode 100644 index 000000000..87344de25 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/BadRecipient3__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BadRecipient3, BadRecipient3Interface } from "../BadRecipient3"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610124806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955060e1945050505050565b005b62abcdef60005260206000fdfea2646970667358221220ebe6cd34d60c56fedb5458f11d4ed1a5a0954b199fd0cd646685a6dda46c497764736f6c63430007060033"; + +export class BadRecipient3__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BadRecipient3 { + return super.attach(address) as BadRecipient3; + } + connect(signer: Signer): BadRecipient3__factory { + return super.connect(signer) as BadRecipient3__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BadRecipient3Interface { + return new utils.Interface(_abi) as BadRecipient3Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BadRecipient3 { + return new Contract(address, _abi, signerOrProvider) as BadRecipient3; + } +} diff --git a/solidity/abacus-core/typechain/factories/BadRecipient4__factory.ts b/solidity/abacus-core/typechain/factories/BadRecipient4__factory.ts new file mode 100644 index 000000000..c65904657 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/BadRecipient4__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BadRecipient4, BadRecipient4Interface } from "../BadRecipient4"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610124806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955060e1945050505050565b005b62abcdef60005260206000f3fea2646970667358221220177e0626c8693836f2b6f508fb993cc339d3e4f2f9c9f13475d1af5f0bb34b4e64736f6c63430007060033"; + +export class BadRecipient4__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BadRecipient4 { + return super.attach(address) as BadRecipient4; + } + connect(signer: Signer): BadRecipient4__factory { + return super.connect(signer) as BadRecipient4__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BadRecipient4Interface { + return new utils.Interface(_abi) as BadRecipient4Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BadRecipient4 { + return new Contract(address, _abi, signerOrProvider) as BadRecipient4; + } +} diff --git a/solidity/abacus-core/typechain/factories/BadRecipient5__factory.ts b/solidity/abacus-core/typechain/factories/BadRecipient5__factory.ts new file mode 100644 index 000000000..e09cf3c59 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/BadRecipient5__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BadRecipient5, BadRecipient5Interface } from "../BadRecipient5"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610187806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806356d5d47514610030575b600080fd5b6100e86004803603606081101561004657600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561007357600080fd5b82018360208201111561008557600080fd5b803590602001918460018302840111640100000000831117156100a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506100ea945050505050565b005b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2063616e20646f0000000000000000000000000000000000000000000000604482015290519081900360640190fdfea264697066735822122005bff28742770cfa349a79ff0d13671853ca6c36d1162f1dca3e148ca67b604364736f6c63430007060033"; + +export class BadRecipient5__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BadRecipient5 { + return super.attach(address) as BadRecipient5; + } + connect(signer: Signer): BadRecipient5__factory { + return super.connect(signer) as BadRecipient5__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BadRecipient5Interface { + return new utils.Interface(_abi) as BadRecipient5Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BadRecipient5 { + return new Contract(address, _abi, signerOrProvider) as BadRecipient5; + } +} diff --git a/solidity/abacus-core/typechain/factories/BadRecipient6__factory.ts b/solidity/abacus-core/typechain/factories/BadRecipient6__factory.ts new file mode 100644 index 000000000..4378b1156 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/BadRecipient6__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BadRecipient6, BadRecipient6Interface } from "../BadRecipient6"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610117806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506028945050505050565b00fea2646970667358221220e4e58579306f6204f12ceaa33bf9d882837d909bf16a1d0feff175c36a8ec99064736f6c63430007060033"; + +export class BadRecipient6__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BadRecipient6 { + return super.attach(address) as BadRecipient6; + } + connect(signer: Signer): BadRecipient6__factory { + return super.connect(signer) as BadRecipient6__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BadRecipient6Interface { + return new utils.Interface(_abi) as BadRecipient6Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BadRecipient6 { + return new Contract(address, _abi, signerOrProvider) as BadRecipient6; + } +} diff --git a/solidity/abacus-core/typechain/factories/BadRecipientHandle__factory.ts b/solidity/abacus-core/typechain/factories/BadRecipientHandle__factory.ts new file mode 100644 index 000000000..d74d03743 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/BadRecipientHandle__factory.ts @@ -0,0 +1,68 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + BadRecipientHandle, + BadRecipientHandleInterface, +} from "../BadRecipientHandle"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x6080604052348015600f57600080fd5b50608f8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c122ad8d14602d575b600080fd5b605360048036036040811015604157600080fd5b5063ffffffff81351690602001356055565b005b505056fea2646970667358221220f12eb0ee3b0ef6e5ecfb5840d141b289fb62ac8961ed2d136c581457e678076364736f6c63430007060033"; + +export class BadRecipientHandle__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BadRecipientHandle { + return super.attach(address) as BadRecipientHandle; + } + connect(signer: Signer): BadRecipientHandle__factory { + return super.connect(signer) as BadRecipientHandle__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BadRecipientHandleInterface { + return new utils.Interface(_abi) as BadRecipientHandleInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BadRecipientHandle { + return new Contract(address, _abi, signerOrProvider) as BadRecipientHandle; + } +} diff --git a/solidity/abacus-core/typechain/factories/Common__factory.ts b/solidity/abacus-core/typechain/factories/Common__factory.ts new file mode 100644 index 000000000..b8ef76ffe --- /dev/null +++ b/solidity/abacus-core/typechain/factories/Common__factory.ts @@ -0,0 +1,188 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { Common, CommonInterface } from "../Common"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class Common__factory { + static readonly abi = _abi; + static createInterface(): CommonInterface { + return new utils.Interface(_abi) as CommonInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): Common { + return new Contract(address, _abi, signerOrProvider) as Common; + } +} diff --git a/solidity/abacus-core/typechain/factories/GovernanceRouter__factory.ts b/solidity/abacus-core/typechain/factories/GovernanceRouter__factory.ts new file mode 100644 index 000000000..e0cd51d02 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/GovernanceRouter__factory.ts @@ -0,0 +1,537 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + GovernanceRouter, + GovernanceRouterInterface, +} from "../GovernanceRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + { + internalType: "uint256", + name: "_recoveryTimelock", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "recoveryManager", + type: "address", + }, + ], + name: "ExitRecovery", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "recoveryManager", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "recoveryActiveAt", + type: "uint256", + }, + ], + name: "InitiateRecovery", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "bytes32", + name: "previousRouter", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32", + name: "newRouter", + type: "bytes32", + }, + ], + name: "SetRouter", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint32", + name: "previousGovernorDomain", + type: "uint32", + }, + { + indexed: false, + internalType: "uint32", + name: "newGovernorDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "address", + name: "previousGovernor", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newGovernor", + type: "address", + }, + ], + name: "TransferGovernor", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousRecoveryManager", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newRecoveryManager", + type: "address", + }, + ], + name: "TransferRecoveryManager", + type: "event", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes32", + name: "to", + type: "bytes32", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + internalType: "struct GovernanceMessage.Call[]", + name: "_calls", + type: "tuple[]", + }, + ], + name: "callLocal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destination", + type: "uint32", + }, + { + components: [ + { + internalType: "bytes32", + name: "to", + type: "bytes32", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + internalType: "struct GovernanceMessage.Call[]", + name: "_calls", + type: "tuple[]", + }, + ], + name: "callRemote", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "domains", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "exitRecovery", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "governor", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "governorDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "inRecovery", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + { + internalType: "address", + name: "_recoveryManager", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "initiateRecoveryTimelock", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "recoveryActiveAt", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "recoveryManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "recoveryTimelock", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "routers", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "setRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "setRouterLocal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "setXAppConnectionManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_newDomain", + type: "uint32", + }, + { + internalType: "address", + name: "_newGovernor", + type: "address", + }, + ], + name: "transferGovernor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_newRecoveryManager", + type: "address", + }, + ], + name: "transferRecoveryManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "xAppConnectionManager", + outputs: [ + { + internalType: "contract XAppConnectionManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c06040523480156200001157600080fd5b50604051620039b9380380620039b9833981016040819052620000349162000050565b60e09190911b6001600160e01b03191660805260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a0516138f7620000c2600039806104c45280610f8352508061083d52806108ae5280610fa75280611afd52506138f76000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806363706be3116100d8578063de314b191161008c578063e8c6f83a11610066578063e8c6f83a146102bf578063f05151df146102d2578063ffa1ad74146102e757610182565b8063de314b191461029c578063e5429298146102a4578063e6b3d949146102ac57610182565b8063670a43c4116100bd578063670a43c4146102795780638d3638f414610281578063db2021ae1461028957610182565b806363706be31461025e57806366cf8fab1461026657610182565b806341bdc8b51161013a5780634fedbbb5116101145780634fedbbb5146102235780635585416c1461023657806356d5d4751461024b57610182565b806341bdc8b5146101ea5780634626abee146101fd578063485cc9551461021057610182565b80632ead72f61161016b5780632ead72f6146101ba578063316c92b6146101da5780633339df96146101e257610182565b80630c340a24146101875780630ce21995146101a5575b600080fd5b61018f6102fc565b60405161019c9190613354565b60405180910390f35b6101b86101b33660046131ec565b610318565b005b6101cd6101c8366004613144565b6103e2565b60405161019c9190613380565b6101b86103f4565b61018f610542565b6101b86101f836600461305c565b61055e565b6101b861020b3660046130b0565b610658565b6101b861021e366004613078565b610753565b6101b8610231366004613199565b6109e5565b61023e610bad565b60405161019c91906135f2565b6101b8610259366004613217565b610bd1565b6101b8610e64565b61023e61027436600461312c565b610f47565b6101cd610f81565b61023e610fa5565b6101b861029736600461317c565b610fc9565b61018f6110a2565b6101cd6110be565b6101b86102ba36600461305c565b6110c4565b6101b86102cd3660046131ec565b6111a3565b6102da611254565b60405161019c9190613375565b6102ef611275565b60405161019c919061367f565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610320611254565b6103835760035473ffffffffffffffffffffffffffffffffffffffff16331461037e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b60405180910390fd5b6103d4565b60025473ffffffffffffffffffffffffffffffffffffffff1633146103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b6103de828261127a565b5050565b60056020526000908152604090205481565b6103fc611254565b15610433576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b60025473ffffffffffffffffffffffffffffffffffffffff163314610484576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600154156104be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134df565b6104e8427f000000000000000000000000000000000000000000000000000000000000000061130b565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae225916105389190613380565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610566611254565b6105c05760035473ffffffffffffffffffffffffffffffffffffffff1633146105bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b610611565b60025473ffffffffffffffffffffffffffffffffffffffff163314610611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610660611254565b6106ba5760035473ffffffffffffffffffffffffffffffffffffffff1633146106b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b61070b565b60025473ffffffffffffffffffffffffffffffffffffffff16331461070b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b60005b8181101561074e5761074583838381811061072557fe5b9050602002810190610737919061368d565b61074090613744565b611388565b5060010161070e565b505050565b600054610100900460ff168061076c575061076c61144b565b8061077a575060005460ff16155b6107cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806137d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561083557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b3360016108637f0000000000000000000000000000000000000000000000000000000000000000838361145c565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556108ac8561055e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561093b57600080fd5b505afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190613160565b63ffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061343c565b5050801561074e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b610a3e611254565b15610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b6000610a8084611586565b90506000610a96610a9184866136e4565b6115d8565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190613110565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610b7493929190613603565b600060405180830381600087803b158015610b8e57600080fd5b505af1158015610ba2573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c2691339101613354565b60206040518083038186803b158015610c3e57600080fd5b505afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906130f0565b610cac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613471565b8282610cb882826117ad565b610cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613405565b6000610cfa84826117fa565b9050610d277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821661181e565b15610d6457610d5f610d5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611879565b6118c7565b610e5c565b610d8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611960565b15610dc757610d5f610dc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166119be565b6119d8565b610df27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a63565b15610e2a57610d5f610e257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a6c565b611a86565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906135bb565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610eb5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600154610eee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613397565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610f3d9173ffffffffffffffffffffffffffffffffffffffff90911690613354565b60405180910390a1565b60068181548110610f5757600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035473ffffffffffffffffffffffffffffffffffffffff16331461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b611022611254565b15611059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b600061106483611afb565b905061107183838361145c565b801561107d57506103de565b60006110918461108c85611b2a565b611b43565b905061109c81611b70565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff163314611115576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146111f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b6111fc611254565b15611233576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b61123d828261127a565b60006112498383611d68565b905061074e81611b70565b60015460009080158015904283111590829061126d5750805b935050505090565b600081565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe546906112c69084908690613389565b60405180910390a2816112e2576112dc83611d90565b506103de565b806112f0576112f083611e37565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561137f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b606060006113998360000151611e97565b905060008173ffffffffffffffffffffffffffffffffffffffff1684602001516040516113c691906132ac565b6000604051808303816000865af19150503d8060008114611403576040519150601f19603f3d011682016040523d82523d6000602084013e611408565b606091505b509350905080611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613516565b5050919050565b600061145630611e9a565b15905090565b8061146c5761146a83611586565b505b60008161147a57600061147c565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa916114ee9174010000000000000000000000000000000000000000900463ffffffff16908990613668565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff8116600090815260056020526040902054806115d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613584565b919050565b805160609060006002820167ffffffffffffffff811180156115f957600080fd5b50604051908082528060200260200182016040528015611623578160200160208202803683370190505b5090506116716000600160405160200161163d91906132c8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906117fa565b8160008151811061167e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091018201526040516116c49160009161163d91869101613324565b816001815181106116d157fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b8281101561179b57600085828151811061171b57fe5b60200260200101519050600061174e60008360000151846020015151856020015160405160200161163d9392919061327f565b90508084600285018151811061176057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101909101525050600101611705565b506117a581611ea0565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561137f57505063ffffffff919091166000908152600560205260409020541490565b81516000906020840161181564ffffffffff85168284611ef0565b95945050505050565b6000600161182b83611f51565b60ff16148015611382575060406118637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f81565b6bffffffffffffffffffffffff16101592915050565b60006118848261181e565b156118bf576118b860015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611f95565b90506115d3565b611382611fbb565b8060016118f8815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611fdf565b5060006119267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661215f565b905060005b81518110156119595761195082828151811061194357fe5b6020026020010151611388565b5060010161192b565b5050505050565b600060025b60ff1661197183611f51565b60ff16148015611382575060256119a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f81565b6bffffffffffffffffffffffff161492915050565b60006119c982611960565b156118bf576118b8600261188f565b8060026119e4816118cf565b506000611a127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612302565b90506000611a49611a447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612333565b611e97565b90506000611a5683611afb565b9050610e5c83838361145c565b60006003611965565b6000611a7782611a63565b156118bf576118b8600361188f565b806003611a92816118cf565b506000611ac07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612302565b90506000611aef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612333565b9050611959828261127a565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b73ffffffffffffffffffffffffffffffffffffffff1690565b606061137f611b6b611b6660006002878760405160200161163d939291906132dd565b612364565b612399565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bda57600080fd5b505afa158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190613110565b905060005b60065481101561074e57600063ffffffff1660068281548110611c3657fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611d60578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611c8857fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611cbf57fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611d2d9392899101613603565b600060405180830381600087803b158015611d4757600080fd5b505af1158015611d5b573d6000803e3d6000fd5b505050505b600101611c17565b606061137f611b6b611d8b60006003878760405160200161163d939291906132dd565b6123dd565b63ffffffff811660009081526005602052604081208190555b6006548110156103de578163ffffffff1660068281548110611dc757fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611e2c5760068181548110611dfe57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611e34565b600101611da9565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611eb584602084016123eb565b90506000611ec282611f81565b6bffffffffffffffffffffffff1690506000611edd83612463565b9184525082016020016040525092915050565b600080611efd8484612477565b9050604051811115611f0d575060005b80611f3b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611f4a565b611f468585856124e9565b9150505b9392505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016124fc565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b6000611feb838361251d565b612158576000612009611ffd8561253f565b64ffffffffff16612545565b915050600061201e8464ffffffffff16612545565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b8381101561211d578181015183820152602001612105565b50505050905090810190601f16801561214a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006121917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806124fc565b905060006122026002806121c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611f81565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816929190612619565b905060008260ff1667ffffffffffffffff8111801561222057600080fd5b5060405190808252806020026020018201604052801561225a57816020015b612247612f10565b81526020019060019003908161223f5790505b50905060005b600061228d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611f81565b6bffffffffffffffffffffffff1611156122f9576122aa836126a9565b8282815181106122b657fe5b6020908102919091010151526122cb836126d9565b8282815181106122d757fe5b6020026020010151602001819052506122ef83612718565b9250600101612260565b50949350505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046124fc565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600560206127a3565b6000611382612372836119be565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016612911565b60606000806123a784611f81565b6bffffffffffffffffffffffff16905060405191508192506123cc848360200161298b565b508181016020016040529052919050565b600061138261237283611a6c565b6000604051828111156123fe5760206060fd5b506000805b845181101561245657600085828151811061241a57fe5b602002602001015190506124308184870161298b565b5061243a81611f81565b6bffffffffffffffffffffffff16929092019150600101612403565b506117a5600084836124e9565b600061246e82612ab7565b60200292915050565b8181018281101561138257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166125138585856127a3565b901c949350505050565b60008164ffffffffff166125308461253f565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156125ad5760ff600882021684901c61256a81612aeb565b61ffff16841793508160ff1660101461258557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161254b565b50600f5b60ff8160ff1610156126135760ff600882021684901c6125d081612aeb565b61ffff16831792508160ff166000146125eb57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016125b1565b50915091565b60008061262586612b1b565b6bffffffffffffffffffffffff16905061263e86612b2f565b6126528561264c8489612477565b90612477565b1115612681577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506117a5565b61268b8186612477565b905061269f8364ffffffffff168286611ef0565b9695505050505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260206127a3565b6060611382611b6b60406126ec85612b59565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861691906004612619565b6000816001612726816118cf565b50600061273285612b59565b604001905061181581806127677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611f81565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916929190612619565b600060ff82166127b557506000611f4a565b6127be84611f81565b6bffffffffffffffffffffffff166127d98460ff8516612477565b111561287b5761281a6127eb85612b1b565b6bffffffffffffffffffffffff1661280286611f81565b6bffffffffffffffffffffffff16858560ff16612b89565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561211d578181015183820152602001612105565b60208260ff1611156128d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613800603a913960400191505060405180910390fd5b6008820260006128e786612b1b565b6bffffffffffffffffffffffff169050600061290283612ce4565b91909501511695945050505050565b600061291c82612d2d565b61298757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b600061299683612d6a565b6129eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061383a6028913960400191505060405180910390fd5b6129f483612d2d565b612a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613862602b913960400191505060405180910390fd5b6000612a5484611f81565b6bffffffffffffffffffffffff1690506000612a6f85612b1b565b6bffffffffffffffffffffffff1690506000604051905084811115612a945760206060fd5b8285848460045afa5061269f612aa98761253f565b64ffffffffff1686856124e9565b60006020612add6020612ac985611f81565b6bffffffffffffffffffffffff1690612477565b81612ae457fe5b0492915050565b6000612afd60048360ff16901c612d7c565b60ff161760081b62ffff0016612b1282612d7c565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612b3a82611f81565b612b4383612b1b565b016bffffffffffffffffffffffff169050919050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166020806127a3565b60606000612b9686612545565b9150506000612ba486612545565b9150506000612bb286612545565b9150506000612bc086612545565b91505083838383604051602001808061388d603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216137b182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612d388261253f565b64ffffffffff1664ffffffffff1415612d53575060006115d3565b6000612d5e83612b2f565b60405110199392505050565b6000612d7582612ee8565b1592915050565b600060f08083179060ff82161415612d985760309150506115d3565b8060ff1660f11415612dae5760319150506115d3565b8060ff1660f21415612dc45760329150506115d3565b8060ff1660f31415612dda5760339150506115d3565b8060ff1660f41415612df05760349150506115d3565b8060ff1660f51415612e065760359150506115d3565b8060ff1660f61415612e1c5760369150506115d3565b8060ff1660f71415612e325760379150506115d3565b8060ff1660f81415612e485760389150506115d3565b8060ff1660f91415612e5e5760399150506115d3565b8060ff1660fa1415612e745760619150506115d3565b8060ff1660fb1415612e8a5760629150506115d3565b8060ff1660fc1415612ea05760639150506115d3565b8060ff1660fd1415612eb65760649150506115d3565b8060ff1660fe1415612ecc5760659150506115d3565b8060ff1660ff1415612ee25760669150506115d3565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612f39578182fd5b50813567ffffffffffffffff811115612f50578182fd5b6020830191508360208083028501011115612f6a57600080fd5b9250929050565b600082601f830112612f81578081fd5b813567ffffffffffffffff811115612f9557fe5b612fc660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016136c0565b818152846020838601011115612fda578283fd5b816020850160208301379081016020019190915292915050565b600060408284031215613005578081fd5b6040516040810167ffffffffffffffff828210818311171561302357fe5b8160405282935084358352602085013591508082111561304257600080fd5b5061304f85828601612f71565b6020830152505092915050565b60006020828403121561306d578081fd5b813561137f8161377c565b6000806040838503121561308a578081fd5b82356130958161377c565b915060208301356130a58161377c565b809150509250929050565b600080602083850312156130c2578182fd5b823567ffffffffffffffff8111156130d8578283fd5b6130e485828601612f28565b90969095509350505050565b600060208284031215613101578081fd5b8151801515811461137f578182fd5b600060208284031215613121578081fd5b815161137f8161377c565b60006020828403121561313d578081fd5b5035919050565b600060208284031215613155578081fd5b813561137f8161379e565b600060208284031215613171578081fd5b815161137f8161379e565b6000806040838503121561318e578182fd5b82356130958161379e565b6000806000604084860312156131ad578081fd5b83356131b88161379e565b9250602084013567ffffffffffffffff8111156131d3578182fd5b6131df86828701612f28565b9497909650939450505050565b600080604083850312156131fe578182fd5b82356132098161379e565b946020939093013593505050565b60008060006060848603121561322b578283fd5b83356132368161379e565b925060208401359150604084013567ffffffffffffffff811115613258578182fd5b61326486828701612f71565b9150509250925092565b6005811061327857fe5b60f81b9052565b6000848252836020830152825161329d816040850160208701613750565b91909101604001949350505050565b600082516132be818460208701613750565b9190910192915050565b60006132d4828461326e565b50600101919050565b60006132e9828661326e565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff85168252836020830152606060408301528251806060840152613634816080850160208701613750565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126132be578182fd5b60405181810167ffffffffffffffff811182821017156136dc57fe5b604052919050565b600067ffffffffffffffff8311156136f857fe5b602061370781828602016136c0565b8481528181019084845b87811015613738576137263683358901612ff4565b84529284019290840190600101613711565b50909695505050505050565b60006113823683612ff4565b60005b8381101561376b578181015183820152602001613753565b8381111561109c5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611e3457600080fd5b63ffffffff81168114611e3457600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122076c8e4c7234f740bbcaf41a41badf76b1713a66e9abf0138e37112c8e7fe733a64736f6c63430007060033"; + +export class GovernanceRouter__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + _recoveryTimelock: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _localDomain, + _recoveryTimelock, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + _recoveryTimelock: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _localDomain, + _recoveryTimelock, + overrides || {} + ); + } + attach(address: string): GovernanceRouter { + return super.attach(address) as GovernanceRouter; + } + connect(signer: Signer): GovernanceRouter__factory { + return super.connect(signer) as GovernanceRouter__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GovernanceRouterInterface { + return new utils.Interface(_abi) as GovernanceRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): GovernanceRouter { + return new Contract(address, _abi, signerOrProvider) as GovernanceRouter; + } +} diff --git a/solidity/abacus-core/typechain/factories/Home__factory.ts b/solidity/abacus-core/typechain/factories/Home__factory.ts new file mode 100644 index 000000000..28a756068 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/Home__factory.ts @@ -0,0 +1,652 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Home, HomeInterface } from "../Home"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "uint256", + name: "leafIndex", + type: "uint256", + }, + { + indexed: true, + internalType: "uint64", + name: "destinationAndNonce", + type: "uint64", + }, + { + indexed: false, + internalType: "bytes32", + name: "committedRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "Dispatch", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "ImproperUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updaterManager", + type: "address", + }, + ], + name: "NewUpdaterManager", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "updater", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "reporter", + type: "address", + }, + ], + name: "UpdaterSlashed", + type: "event", + }, + { + inputs: [], + name: "MAX_MESSAGE_BODY_BYTES", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "count", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_recipientAddress", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_messageBody", + type: "bytes", + }, + ], + name: "dispatch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "improperUpdate", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IUpdaterManager", + name: "_updaterManager", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "queueContains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueEnd", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "root", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updaterManager", + type: "address", + }, + ], + name: "setUpdaterManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "suggestUpdate", + outputs: [ + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_new", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "tree", + outputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "update", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "updaterManager", + outputs: [ + { + internalType: "contract IUpdaterManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60a060405234801561001057600080fd5b50604051612fbe380380612fbe8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f4b610073600039806109875280610ad55280610fad52806115f55250612f4b6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639df6c8e1116100ee578063df034cd011610097578063f6d1610211610071578063f6d16102146105fc578063fa31de0114610604578063fd54b228146106bc578063ffa1ad74146106c4576101ae565b8063df034cd0146105b9578063ebf0c717146105c1578063f2fde38b146105c9576101ae565b8063b95a2001116100c8578063b95a20011461053a578063c19d93fb1461055d578063c4d66de814610586576101ae565b80639df6c8e114610478578063ab91c7b014610480578063b31c01fb14610488576101ae565b806367a6771d1161015b5780638da5cb5b116101355780638da5cb5b1461032f5780638e4e30e0146103605780639776120e146104125780639d54f41914610445576101ae565b806367a6771d146102fe578063715018a6146103065780638d3638f41461030e576101ae565b806336e104de1161018c57806336e104de146102cd57806345630b1a146102ee578063522ae002146102f6576101ae565b806306661abd146101b357806319d9d21a146101cd5780632bef28921461029c575b600080fd5b6101bb6106e2565b60408051918252519081900360200190f35b61029a600480360360a08110156101e357600080fd5b813591602081019181019060808101606082013564010000000081111561020957600080fd5b82018360208201111561021b57600080fd5b8035906020019184600183028401116401000000008311171561023d57600080fd5b91939092909160208101903564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b5090925090506106e8565b005b6102b9600480360360208110156102b257600080fd5b5035610945565b604080519115158252519081900360200190f35b6102d5610958565b6040805192835260208301919091528051918290030190f35b6101bb610980565b6101bb6109b0565b6101bb6109b6565b61029a6109bc565b610316610ad3565b6040805163ffffffff9092168252519081900360200190f35b610337610af7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102b96004803603606081101561037657600080fd5b81359160208101359181019060608101604082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460018302840111640100000000831117156103d157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b13945050505050565b61029a6004803603602081101561042857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d66565b61029a6004803603602081101561045b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e1a565b610337610eaa565b6101bb610ec7565b61029a6004803603606081101561049e57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ed3945050505050565b6103166004803603602081101561055057600080fd5b503563ffffffff16611071565b61056561108a565b6040518082600281111561057557fe5b815260200191505060405180910390f35b61029a6004803603602081101561059c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110ab565b6103376112c6565b6101bb6112e2565b61029a600480360360208110156105df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112ee565b6101bb611490565b61029a6004803603606081101561061a57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561064757600080fd5b82018360208201111561065957600080fd5b8035906020019184600183028401116401000000008311171561067b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149c945050505050565b6101bb611712565b6106cc611718565b6040805160ff9092168252519081900360200190f35b60545490565b600260865474010000000000000000000000000000000000000000900460ff16600281111561071357fe5b141561078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107c2918891883591889088908190840183828082843760009201919091525061171d92505050565b8015610811575061081186866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061171d92505050565b801561082257508435602086013514155b1561093d5761082f6117af565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b600061095260018361188b565b92915050565b60008061096560016118fb565b1561097c576087549150610979600161193b565b90505b9091565b60006109ab7f0000000000000000000000000000000000000000000000000000000000000000611978565b905090565b61080081565b60875481565b6109c46119ed565b73ffffffffffffffffffffffffffffffffffffffff166109e2610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610a6457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b4057fe5b1415610bad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610bb884848461171d565b610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c9357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c9e60018461188b565b610d5b57610caa6117af565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d17578181015183820152602001610cff565b50505050905090810190601f168015610d445780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d5f565b5060005b9392505050565b610d6e6119ed565b73ffffffffffffffffffffffffffffffffffffffff16610d8c610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e17816119f1565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610ea157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e1781611adf565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab60016118fb565b600260865474010000000000000000000000000000000000000000900460ff166002811115610efe57fe5b1415610f6b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f76838383610b13565b15610f805761106c565b6000610f8c6001611b58565b905082811415610f9c5750610fa2565b50610f80565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611031578181015183820152602001611019565b50505050905090810190601f16801561105e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806110c457506110c4611c91565b806110d2575060005460ff16155b611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff1615801561118d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611195611ca2565b61119d611dc5565b6111a6826119f1565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b5051905061124981611eb1565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a15080156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab603461203e565b6112f66119ed565b73ffffffffffffffffffffffffffffffffffffffff16611314610af7565b73ffffffffffffffffffffffffffffffffffffffff161461139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611402576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e7e6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109ab600161193b565b600260865474010000000000000000000000000000000000000000900460ff1660028111156114c757fe5b141561153457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610800815111156115a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905561161e7f00000000000000000000000000000000000000000000000000000000000000003384888888612051565b80516020820120909150611633603482612127565b61164661163e6112e2565b60019061222f565b50611651868461229c565b67ffffffffffffffff1660016116656106e2565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156116cf5781810151838201526020016116b7565b50505050905090810190601f1680156116fc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b600080611728610980565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611769816122b6565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661178f8285612307565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b6117b76123a1565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b15801561182a57600080fd5b505af115801561183e573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d5b5760008181526001850160205260409020548314156118f3576001915050610952565b6001016118a3565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661193382826123e2565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119fa816123fc565b611a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b9082826123e2565b611bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c4c576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c9c306123fc565b15905090565b600054610100900460ff1680611cbb5750611cbb611c91565b80611cc9575060005460ff16155b611d1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d8457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d8c612402565b611d94612514565b8015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611dde5750611dde611c91565b80611dec575060005460ff16155b611e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611ea757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d9460016126a4565b600054610100900460ff1680611eca5750611eca611c91565b80611ed8575060005460ff16155b611f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611f9357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b60006109528261204c6126e8565b612ba9565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106120e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a5565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161219d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b602081101561222c5781600116600114156121d957828482602081106121cf57fe5b0155506112c29050565b8381602081106121e557fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161222157fe5b0491506001016121ad565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610952576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461237957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61239786828585612c67565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168061241b575061241b611c91565b80612429575060005460ff16155b61247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d9457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff168061252d575061252d611c91565b8061253b575060005460ff16155b612590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff161580156125f657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006126006119ed565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610e175780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b6126f0612e5e565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612c5f57600182821c166000868360208110612bd057fe5b015490508160011415612c135780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612c55565b84868460208110612c2057fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612bb3565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ea46022913960400191505060405180910390fd5b8360ff16601b1480612cf757508360ff16601c145b612d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ef46022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612da8573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612e5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220260a0dc70dec366abfa16a5da9aab733bdb1146c27c1b1ae80222b5b5e89238a64736f6c63430007060033"; + +export class Home__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_localDomain, overrides || {}) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_localDomain, overrides || {}); + } + attach(address: string): Home { + return super.attach(address) as Home; + } + connect(signer: Signer): Home__factory { + return super.connect(signer) as Home__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): HomeInterface { + return new utils.Interface(_abi) as HomeInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): Home { + return new Contract(address, _abi, signerOrProvider) as Home; + } +} diff --git a/solidity/abacus-core/typechain/factories/IMessageRecipient__factory.ts b/solidity/abacus-core/typechain/factories/IMessageRecipient__factory.ts new file mode 100644 index 000000000..8c7933c2f --- /dev/null +++ b/solidity/abacus-core/typechain/factories/IMessageRecipient__factory.ts @@ -0,0 +1,49 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IMessageRecipient, + IMessageRecipientInterface, +} from "../IMessageRecipient"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IMessageRecipient__factory { + static readonly abi = _abi; + static createInterface(): IMessageRecipientInterface { + return new utils.Interface(_abi) as IMessageRecipientInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IMessageRecipient { + return new Contract(address, _abi, signerOrProvider) as IMessageRecipient; + } +} diff --git a/solidity/abacus-core/typechain/factories/IUpdaterManager__factory.ts b/solidity/abacus-core/typechain/factories/IUpdaterManager__factory.ts new file mode 100644 index 000000000..c8b482b31 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/IUpdaterManager__factory.ts @@ -0,0 +1,52 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUpdaterManager, + IUpdaterManagerInterface, +} from "../IUpdaterManager"; + +const _abi = [ + { + inputs: [ + { + internalType: "address payable", + name: "_reporter", + type: "address", + }, + ], + name: "slashUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IUpdaterManager__factory { + static readonly abi = _abi; + static createInterface(): IUpdaterManagerInterface { + return new utils.Interface(_abi) as IUpdaterManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUpdaterManager { + return new Contract(address, _abi, signerOrProvider) as IUpdaterManager; + } +} diff --git a/solidity/abacus-core/typechain/factories/MerkleLib__factory.ts b/solidity/abacus-core/typechain/factories/MerkleLib__factory.ts new file mode 100644 index 000000000..5053d980a --- /dev/null +++ b/solidity/abacus-core/typechain/factories/MerkleLib__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { MerkleLib, MerkleLibInterface } from "../MerkleLib"; + +const _abi = [ + { + inputs: [], + name: "zeroHashes", + outputs: [ + { + internalType: "bytes32[32]", + name: "_zeroes", + type: "bytes32[32]", + }, + ], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x610591610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063b35658081461003a575b600080fd5b61004261007b565b604051808261040080838360005b83811015610068578181015183820152602001610050565b5050505090500191505060405180910390f35b61008361053c565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220ad3bfe4cefe5c51f17b8c40895bafc1076c16176a71ee813684032f85042016e64736f6c63430007060033"; + +export class MerkleLib__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MerkleLib { + return super.attach(address) as MerkleLib; + } + connect(signer: Signer): MerkleLib__factory { + return super.connect(signer) as MerkleLib__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MerkleLibInterface { + return new utils.Interface(_abi) as MerkleLibInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MerkleLib { + return new Contract(address, _abi, signerOrProvider) as MerkleLib; + } +} diff --git a/solidity/abacus-core/typechain/factories/MerkleTreeManager__factory.ts b/solidity/abacus-core/typechain/factories/MerkleTreeManager__factory.ts new file mode 100644 index 000000000..1df066f1b --- /dev/null +++ b/solidity/abacus-core/typechain/factories/MerkleTreeManager__factory.ts @@ -0,0 +1,89 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + MerkleTreeManager, + MerkleTreeManagerInterface, +} from "../MerkleTreeManager"; + +const _abi = [ + { + inputs: [], + name: "count", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "root", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tree", + outputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b5061067a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306661abd14610046578063ebf0c71714610060578063fd54b22814610068575b600080fd5b61004e610070565b60408051918252519081900360200190f35b61004e610076565b61004e610087565b60205490565b6000610082600061008d565b905090565b60205481565b60006100a08261009b6100a6565b610567565b92915050565b6100ae610625565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b602081101561061d57600182821c16600086836020811061058e57fe5b0154905081600114156105d15780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610613565b848684602081106105de57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101610571565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea26469706673582212203a85471519851d2f70affe5fe6cefaad02a6b1f4b075bb70f894a0282509d1ad64736f6c63430007060033"; + +export class MerkleTreeManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MerkleTreeManager { + return super.attach(address) as MerkleTreeManager; + } + connect(signer: Signer): MerkleTreeManager__factory { + return super.connect(signer) as MerkleTreeManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MerkleTreeManagerInterface { + return new utils.Interface(_abi) as MerkleTreeManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MerkleTreeManager { + return new Contract(address, _abi, signerOrProvider) as MerkleTreeManager; + } +} diff --git a/solidity/abacus-core/typechain/factories/MysteryMathV1__factory.ts b/solidity/abacus-core/typechain/factories/MysteryMathV1__factory.ts new file mode 100644 index 000000000..d951cc3ad --- /dev/null +++ b/solidity/abacus-core/typechain/factories/MysteryMathV1__factory.ts @@ -0,0 +1,128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { MysteryMathV1, MysteryMathV1Interface } from "../MysteryMathV1"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "uint256", + name: "a", + type: "uint256", + }, + { + internalType: "uint256", + name: "b", + type: "uint256", + }, + ], + name: "doMath", + outputs: [ + { + internalType: "uint256", + name: "_result", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "getState", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_var", + type: "uint256", + }, + ], + name: "setState", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stateVar", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "version", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60a060405234801561001057600080fd5b50600160e01b60805260016101606100316000398060f952506101606000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063793816ec11610050578063793816ec146100a7578063a9e966b7146100af578063d6c4979c146100ce57610067565b80631865c57d1461006c57806354fd4d5014610086575b600080fd5b6100746100f1565b60408051918252519081900360200190f35b61008e6100f7565b6040805163ffffffff9092168252519081900360200190f35b61007461011b565b6100cc600480360360208110156100c557600080fd5b5035610121565b005b610074600480360360408110156100e457600080fd5b5080359060200135610126565b60005490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b600055565b019056fea26469706673582212202cd3e240eb7513b7e99ad8aad10be88dc51153cca445d8263caebdc15674f10564736f6c63430007060033"; + +export class MysteryMathV1__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MysteryMathV1 { + return super.attach(address) as MysteryMathV1; + } + connect(signer: Signer): MysteryMathV1__factory { + return super.connect(signer) as MysteryMathV1__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MysteryMathV1Interface { + return new utils.Interface(_abi) as MysteryMathV1Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MysteryMathV1 { + return new Contract(address, _abi, signerOrProvider) as MysteryMathV1; + } +} diff --git a/solidity/abacus-core/typechain/factories/MysteryMathV2__factory.ts b/solidity/abacus-core/typechain/factories/MysteryMathV2__factory.ts new file mode 100644 index 000000000..19db78f2c --- /dev/null +++ b/solidity/abacus-core/typechain/factories/MysteryMathV2__factory.ts @@ -0,0 +1,128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { MysteryMathV2, MysteryMathV2Interface } from "../MysteryMathV2"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "uint256", + name: "a", + type: "uint256", + }, + { + internalType: "uint256", + name: "b", + type: "uint256", + }, + ], + name: "doMath", + outputs: [ + { + internalType: "uint256", + name: "_result", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "getState", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_var", + type: "uint256", + }, + ], + name: "setState", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stateVar", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "version", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60a060405234801561001057600080fd5b50600160e11b60805260026101606100316000398060f952506101606000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063793816ec11610050578063793816ec146100a7578063a9e966b7146100af578063d6c4979c146100ce57610067565b80631865c57d1461006c57806354fd4d5014610086575b600080fd5b6100746100f1565b60408051918252519081900360200190f35b61008e6100f7565b6040805163ffffffff9092168252519081900360200190f35b61007461011b565b6100cc600480360360208110156100c557600080fd5b5035610121565b005b610074600480360360408110156100e457600080fd5b5080359060200135610126565b60005490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b600055565b029056fea264697066735822122034f6d0a8100e82e9f9e2453439dbf2c723da18fb2f703bfcfb8f313bc5d5b35164736f6c63430007060033"; + +export class MysteryMathV2__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MysteryMathV2 { + return super.attach(address) as MysteryMathV2; + } + connect(signer: Signer): MysteryMathV2__factory { + return super.connect(signer) as MysteryMathV2__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MysteryMathV2Interface { + return new utils.Interface(_abi) as MysteryMathV2Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MysteryMathV2 { + return new Contract(address, _abi, signerOrProvider) as MysteryMathV2; + } +} diff --git a/solidity/abacus-core/typechain/factories/MysteryMath__factory.ts b/solidity/abacus-core/typechain/factories/MysteryMath__factory.ts new file mode 100644 index 000000000..83d133dfb --- /dev/null +++ b/solidity/abacus-core/typechain/factories/MysteryMath__factory.ts @@ -0,0 +1,86 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { MysteryMath, MysteryMathInterface } from "../MysteryMath"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "a", + type: "uint256", + }, + { + internalType: "uint256", + name: "b", + type: "uint256", + }, + ], + name: "doMath", + outputs: [ + { + internalType: "uint256", + name: "_result", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "getState", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_var", + type: "uint256", + }, + ], + name: "setState", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stateVar", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class MysteryMath__factory { + static readonly abi = _abi; + static createInterface(): MysteryMathInterface { + return new utils.Interface(_abi) as MysteryMathInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MysteryMath { + return new Contract(address, _abi, signerOrProvider) as MysteryMath; + } +} diff --git a/solidity/abacus-core/typechain/factories/OwnableUpgradeable__factory.ts b/solidity/abacus-core/typechain/factories/OwnableUpgradeable__factory.ts new file mode 100644 index 000000000..7d6909216 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/OwnableUpgradeable__factory.ts @@ -0,0 +1,78 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + OwnableUpgradeable, + OwnableUpgradeableInterface, +} from "../OwnableUpgradeable"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class OwnableUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): OwnableUpgradeableInterface { + return new utils.Interface(_abi) as OwnableUpgradeableInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): OwnableUpgradeable { + return new Contract(address, _abi, signerOrProvider) as OwnableUpgradeable; + } +} diff --git a/solidity/abacus-core/typechain/factories/Ownable__factory.ts b/solidity/abacus-core/typechain/factories/Ownable__factory.ts new file mode 100644 index 000000000..df0453aa2 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/Ownable__factory.ts @@ -0,0 +1,75 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { Ownable, OwnableInterface } from "../Ownable"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class Ownable__factory { + static readonly abi = _abi; + static createInterface(): OwnableInterface { + return new utils.Interface(_abi) as OwnableInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Ownable { + return new Contract(address, _abi, signerOrProvider) as Ownable; + } +} diff --git a/solidity/abacus-core/typechain/factories/QueueManager__factory.ts b/solidity/abacus-core/typechain/factories/QueueManager__factory.ts new file mode 100644 index 000000000..7d6fe99cf --- /dev/null +++ b/solidity/abacus-core/typechain/factories/QueueManager__factory.ts @@ -0,0 +1,92 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { QueueManager, QueueManagerInterface } from "../QueueManager"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "queueContains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueEnd", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632bef289214610046578063ab91c7b014610077578063f6d1610214610091575b600080fd5b6100636004803603602081101561005c57600080fd5b5035610099565b604080519115158252519081900360200190f35b61007f6100ac565b60408051918252519081900360200190f35b61007f6100bd565b60006100a66001836100c9565b92915050565b60006100b86001610143565b905090565b60006100b86001610183565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681116101395760008181526001850160205260409020548314156101315760019150506100a6565b6001016100e1565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661017b82826101c0565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b60019103016fffffffffffffffffffffffffffffffff169056fea26469706673582212203986df16bf8151067b530f7c4dd7bfa6f63b1423d179f41091358a28bd2a54e564736f6c63430007060033"; + +export class QueueManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): QueueManager { + return super.attach(address) as QueueManager; + } + connect(signer: Signer): QueueManager__factory { + return super.connect(signer) as QueueManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): QueueManagerInterface { + return new utils.Interface(_abi) as QueueManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): QueueManager { + return new Contract(address, _abi, signerOrProvider) as QueueManager; + } +} diff --git a/solidity/abacus-core/typechain/factories/Replica__factory.ts b/solidity/abacus-core/typechain/factories/Replica__factory.ts new file mode 100644 index 000000000..756f8d6c9 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/Replica__factory.ts @@ -0,0 +1,586 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Replica, ReplicaInterface } from "../Replica"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + { + internalType: "uint256", + name: "_processGas", + type: "uint256", + }, + { + internalType: "uint256", + name: "_reserveGas", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "bool", + name: "success", + type: "bool", + }, + { + indexed: true, + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "Process", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + inputs: [], + name: "PROCESS_GAS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "RESERVE_GAS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_root", + type: "bytes32", + }, + ], + name: "acceptableRoot", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "confirmAt", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_remoteDomain", + type: "uint32", + }, + { + internalType: "address", + name: "_updater", + type: "address", + }, + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_optimisticSeconds", + type: "uint256", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "messages", + outputs: [ + { + internalType: "enum Replica.MessageStatus", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "optimisticSeconds", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "process", + outputs: [ + { + internalType: "bool", + name: "_success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_leaf", + type: "bytes32", + }, + { + internalType: "bytes32[32]", + name: "_proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "_index", + type: "uint256", + }, + ], + name: "prove", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + { + internalType: "bytes32[32]", + name: "_proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "_index", + type: "uint256", + }, + ], + name: "proveAndProcess", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "remoteDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "update", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60e060405234801561001057600080fd5b5060405162002dd938038062002dd98339818101604052606081101561003557600080fd5b50805160208201516040909201516001600160e01b031960e083901b16608052909190620cf85082101561009f576040805162461bcd60e51b815260206004820152600c60248201526b2170726f636573732067617360a01b604482015290519081900360640190fd5b613a988110156100e5576040805162461bcd60e51b815260206004820152600c60248201526b21726573657276652067617360a01b604482015290519081900360640190fd5b60a082905260c081905260805160e01c9250612caa6200012f600039806108e65280610da8525080610d875280610e7f5280611509525080610b035280610b575250612caa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063928bc4b2116100d8578063c19d93fb1161008c578063e7e7a7b711610066578063e7e7a7b7146105e9578063f2fde38b14610634578063ffa1ad741461066757610182565b8063c19d93fb146105d1578063d88beda2146105d9578063df034cd0146105e157610182565b80639d54f419116100bd5780639d54f419146104cf578063a3f81d6814610502578063b31c01fb1461051f57610182565b8063928bc4b214610421578063961681dc146104c757610182565b806345630b1a1161013a57806371bfb7b81161011457806371bfb7b8146103b25780638d3638f4146103cf5780638da5cb5b146103f057610182565b806345630b1a146102f45780636188af0e146102fc57806367a6771d146103aa57610182565b80632bbd59ca1161016b5780632bbd59ca14610270578063371d3071146102ae57806339992668146102ec57610182565b806319d9d21a1461018757806325e3beda14610256575b600080fd5b610254600480360360a081101561019d57600080fd5b81359160208101918101906080810160608201356401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91939092909160208101903564010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b509092509050610685565b005b61025e6108e4565b60408051918252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610908565b6040518082600281111561029d57fe5b815260200191505060405180910390f35b6102d860048036036104408110156102c557600080fd5b508035906020810190610420013561091d565b604080519115158252519081900360200190f35b61025e610a3d565b61025e610a43565b610254600480360361044081101561031357600080fd5b81019060208101813564010000000081111561032e57600080fd5b82018360208201111561034057600080fd5b8035906020019184600183028401116401000000008311171561036257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a5d565b61025e610ae9565b61025e600480360360208110156103c857600080fd5b5035610aef565b6103d7610b01565b6040805163ffffffff9092168252519081900360200190f35b6103f8610b25565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102d86004803603602081101561043757600080fd5b81019060208101813564010000000081111561045257600080fd5b82018360208201111561046457600080fd5b8035906020019184600183028401116401000000008311171561048657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b41945050505050565b6103d7611184565b610254600480360360208110156104e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611190565b6102d86004803603602081101561051857600080fd5b503561126b565b6102546004803603606081101561053557600080fd5b81359160208101359181019060608101604082013564010000000081111561055c57600080fd5b82018360208201111561056e57600080fd5b8035906020019184600183028401116401000000008311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b61028d6114e4565b61025e611507565b6103f861152b565b610254600480360360808110156105ff57600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561154d565b6102546004803603602081101561064a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ed565b61066f6118cc565b6040805160ff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156106b257fe5b141561071f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261076191889188359188908890819084018382808284376000920191909152506118d192505050565b80156107b057506107b086866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d192505050565b80156107c157508435602086013514155b156108dc576107ce611969565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff16600281111561093d57fe5b146109a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109df8585602080602002604051908101604052809291908260208002808284376000920191909152508791506119739050565b90506109ea8161126b565b15610a30575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a36565b60009150505b9392505050565b60325481565b603154600090610a589063ffffffff16611a1e565b905090565b610a6f8380519060200120838361091d565b610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae383610b41565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610b4e8382611a93565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610ba27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611ab9565b63ffffffff1614610c1457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610c417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611aea565b9050600160008281526035602052604090205460ff166002811115610c6257fe5b14610cce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610d4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a1015610e3857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b29565b6040805161010080825261012082019092529192506000917f0000000000000000000000000000000000000000000000000000000000000000908390836020820181803683370190505090506000610ede7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611b3c565b610f097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611b6c565b610f5e610f377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611b9d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611c0e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610fb0578181015183820152602001610f98565b50505050905090810190601f168015610fdd5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d94508385111561107c578394505b848252846000602084013e816040518082805190602001908083835b602083106110d557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611098565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061119a610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111f0575060006111d8610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061125e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61126782611c52565b5050565b6000818152603460205260408120548061128957600091505061128f565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156112c157fe5b141561132e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461139e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6113a98383836118d1565b61141457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61141c611971565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806115665750611566611cd3565b80611574575060005460ff16155b6115c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff1615801561162f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61163884611ce4565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905583815560008481526034602052604090205560328290556116b7336116ed565b80156116e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006116f7610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061174d57506000611735610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b9050806117bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661183d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b6000806118dc610a43565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061191d81611e78565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff166119498285611ec9565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611971611f63565b565b8260005b6020811015611a1657600183821c16600085836020811061199457fe5b6020020151905081600114156119da5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611a0c565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611977565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611aae64ffffffffff85168284611fa6565b925050505b92915050565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612005565b600080611af683612026565b6bffffffffffffffffffffffff1690506000611b118461203a565b6bffffffffffffffffffffffff169091209392505050565b6000611ab3611b378361204e565b61207f565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612005565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612082565b6000611ab3604c80611bd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661203a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061222d565b6060600080611c1c8461203a565b6bffffffffffffffffffffffff1690506040519150819250611c4184836020016122bf565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b6000611cde306123eb565b15905090565b600054610100900460ff1680611cfd5750611cfd611cd3565b80611d0b575060005460ff16155b611d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff16158015611dc657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561126757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611f3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a611f59868285856123f1565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611fb384846125df565b9050604051811115611fc3575060005b80611ff1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a36565b611ffc858585612651565b95945050505050565b60008160200360080260ff1661201c858585612082565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020612082565b90565b600060ff821661209457506000610a36565b61209d8461203a565b6bffffffffffffffffffffffff166120b88460ff85166125df565b1115612197576120f96120ca85612026565b6bffffffffffffffffffffffff166120e18661203a565b6bffffffffffffffffffffffff16858560ff16612664565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215c578181015183820152602001612144565b50505050905090810190601f1680156121895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612bb3603a913960400191505060405180910390fd5b60088202600061220386612026565b6bffffffffffffffffffffffff169050600061221e836127bf565b91909501511695945050505050565b60008061223986612026565b6bffffffffffffffffffffffff16905061225286612808565b6122668561226084896125df565b906125df565b1115612295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506122b7565b61229f81866125df565b90506122b38364ffffffffff168286611fa6565b9150505b949350505050565b60006122ca83612832565b61231f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bed6028913960400191505060405180910390fd5b61232883612844565b61237d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c15602b913960400191505060405180910390fd5b60006123888461203a565b6bffffffffffffffffffffffff16905060006123a385612026565b6bffffffffffffffffffffffff16905060006040519050848111156123c85760206060fd5b8285848460045afa50611f596123dd87612881565b64ffffffffff168685612651565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b206022913960400191505060405180910390fd5b8360ff16601b148061248157508360ff16601c145b6124d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b916022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612532573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ffc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b6060600061267186612887565b915050600061267f86612887565b915050600061268d86612887565b915050600061269b86612887565b915050838383836040516020018080612c40603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612b4282397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b60006128138261203a565b61281c83612026565b016bffffffffffffffffffffffff169050919050565b600061283d8261295b565b1592915050565b600061284f82612881565b64ffffffffff1664ffffffffff141561286a5750600061128f565b600061287583612808565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff1611156128ef5760ff600882021684901c6128ac81612983565b61ffff16841793508160ff166010146128c757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161288d565b50600f5b60ff8160ff1610156129555760ff600882021684901c61291281612983565b61ffff16831792508160ff1660001461292d57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016128f3565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061299560048360ff16901c6129b3565b60ff161760081b62ffff00166129aa826129b3565b60ff1617919050565b600060f08083179060ff821614156129cf57603091505061128f565b8060ff1660f114156129e557603191505061128f565b8060ff1660f214156129fb57603291505061128f565b8060ff1660f31415612a1157603391505061128f565b8060ff1660f41415612a2757603491505061128f565b8060ff1660f51415612a3d57603591505061128f565b8060ff1660f61415612a5357603691505061128f565b8060ff1660f71415612a6957603791505061128f565b8060ff1660f81415612a7f57603891505061128f565b8060ff1660f91415612a9557603991505061128f565b8060ff1660fa1415612aab57606191505061128f565b8060ff1660fb1415612ac157606291505061128f565b8060ff1660fc1415612ad757606391505061128f565b8060ff1660fd1415612aed57606491505061128f565b8060ff1660fe1415612b0357606591505061128f565b8060ff1660ff1415612b1957606691505061128f565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212205e1af9237dc7c9ae151f0284c5313e4f0d6d6e9db45e638d5a5034f53566ccb164736f6c63430007060033"; + +export class Replica__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + _processGas: BigNumberish, + _reserveGas: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _localDomain, + _processGas, + _reserveGas, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + _processGas: BigNumberish, + _reserveGas: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _localDomain, + _processGas, + _reserveGas, + overrides || {} + ); + } + attach(address: string): Replica { + return super.attach(address) as Replica; + } + connect(signer: Signer): Replica__factory { + return super.connect(signer) as Replica__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ReplicaInterface { + return new utils.Interface(_abi) as ReplicaInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Replica { + return new Contract(address, _abi, signerOrProvider) as Replica; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestCommon__factory.ts b/solidity/abacus-core/typechain/factories/TestCommon__factory.ts new file mode 100644 index 000000000..52995fac6 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestCommon__factory.ts @@ -0,0 +1,288 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestCommon, TestCommonInterface } from "../TestCommon"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "testIsUpdaterSignature", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60a060405234801561001057600080fd5b50604051610c9d380380610c9d8339818101604052604081101561003357600080fd5b5080516020909101516001600160e01b031960e083901b166080526100578161005e565b5050610151565b600054610100900460ff16806100775750610077610130565b80610085575060005460ff16155b6100c05760405162461bcd60e51b815260040180806020018281038252602e815260200180610c6f602e913960400191505060405180910390fd5b600054610100900460ff161580156100eb576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038516021760ff60b01b1916600160b01b179055801561012c576000805461ff00191690555b5050565b60006101453061014b60201b6106b51760201c565b15905090565b3b151590565b60805160e01c610afc6101736000398061058d52806106015250610afc6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638d3638f41161005b5780638d3638f4146102445780639d54f41914610265578063c19d93fb14610298578063df034cd0146102c157610088565b806319d9d21a1461008d57806325605c021461015c57806345630b1a1461022257806367a6771d1461023c575b600080fd5b61015a600480360360a08110156100a357600080fd5b81359160208101918101906080810160608201356401000000008111156100c957600080fd5b8201836020820111156100db57600080fd5b803590602001918460018302840111640100000000831117156100fd57600080fd5b91939092909160208101903564010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b5090925090506102f2565b005b61020e6004803603606081101561017257600080fd5b81359160208101359181019060608101604082013564010000000081111561019957600080fd5b8201836020820111156101ab57600080fd5b803590602001918460018302840111640100000000831117156101cd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610551945050505050565b604080519115158252519081900360200190f35b61022a610566565b60408051918252519081900360200190f35b61022a6105f9565b61024c6105ff565b6040805163ffffffff9092168252519081900360200190f35b61015a6004803603602081101561027b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610623565b6102a0610670565b604051808260028111156102b057fe5b815260200191505060405180910390f35b6102c9610693565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff16600281111561031f57fe5b141561038c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526103ce91889188359188908890819084018382808284376000920191909152506106bb92505050565b801561041d575061041d86866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106bb92505050565b801561042e57508435602086013514155b156105495761043b610753565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b600061055e8484846106bb565b949350505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b166020808301919091527f4f5054494353000000000000000000000000000000000000000000000000000060248301528251600a818403018152602a909201909252805191012090565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b600054760100000000000000000000000000000000000000000000900460ff1681565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b3b151590565b6000806106c6610566565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506107078161075d565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff1661073382856107ae565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b61075b610848565b565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461082057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61083e8682858561088b565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610906576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610a836022913960400191505060405180910390fd5b8360ff16601b148061091b57508360ff16601c145b610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610aa56022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156109cc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610a7957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a264697066735822122070bf8632bcd2b08d11be665dbceb5fda186844c6fc1408886f66552f60ebe8cd64736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; + +export class TestCommon__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _localDomain, + _updater, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_localDomain, _updater, overrides || {}); + } + attach(address: string): TestCommon { + return super.attach(address) as TestCommon; + } + connect(signer: Signer): TestCommon__factory { + return super.connect(signer) as TestCommon__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestCommonInterface { + return new utils.Interface(_abi) as TestCommonInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestCommon { + return new Contract(address, _abi, signerOrProvider) as TestCommon; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestGovernanceRouter__factory.ts b/solidity/abacus-core/typechain/factories/TestGovernanceRouter__factory.ts new file mode 100644 index 000000000..41bd207a6 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestGovernanceRouter__factory.ts @@ -0,0 +1,578 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + TestGovernanceRouter, + TestGovernanceRouterInterface, +} from "../TestGovernanceRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + { + internalType: "uint256", + name: "_recoveryTimelock", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "recoveryManager", + type: "address", + }, + ], + name: "ExitRecovery", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "recoveryManager", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "recoveryActiveAt", + type: "uint256", + }, + ], + name: "InitiateRecovery", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "bytes32", + name: "previousRouter", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32", + name: "newRouter", + type: "bytes32", + }, + ], + name: "SetRouter", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint32", + name: "previousGovernorDomain", + type: "uint32", + }, + { + indexed: false, + internalType: "uint32", + name: "newGovernorDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "address", + name: "previousGovernor", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newGovernor", + type: "address", + }, + ], + name: "TransferGovernor", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousRecoveryManager", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newRecoveryManager", + type: "address", + }, + ], + name: "TransferRecoveryManager", + type: "event", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes32", + name: "to", + type: "bytes32", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + internalType: "struct GovernanceMessage.Call[]", + name: "_calls", + type: "tuple[]", + }, + ], + name: "callLocal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destination", + type: "uint32", + }, + { + components: [ + { + internalType: "bytes32", + name: "to", + type: "bytes32", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + internalType: "struct GovernanceMessage.Call[]", + name: "_calls", + type: "tuple[]", + }, + ], + name: "callRemote", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "containsDomain", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "domains", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "exitRecovery", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "governor", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "governorDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "inRecovery", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + { + internalType: "address", + name: "_recoveryManager", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "initiateRecoveryTimelock", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "recoveryActiveAt", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "recoveryManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "recoveryTimelock", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "routers", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "setRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "setRouterLocal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "setXAppConnectionManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "testSetRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_newDomain", + type: "uint32", + }, + { + internalType: "address", + name: "_newGovernor", + type: "address", + }, + ], + name: "transferGovernor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_newRecoveryManager", + type: "address", + }, + ], + name: "transferRecoveryManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "xAppConnectionManager", + outputs: [ + { + internalType: "contract XAppConnectionManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c06040523480156200001157600080fd5b5060405162003a5938038062003a59833981016040819052620000349162000050565b5060e01b6001600160e01b031916608052603260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a051613997620000c260003980610500528061102852508061087952806108ea528061106d5280611dc252506139976000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c806363706be3116100e3578063de314b191161008c578063e8c6f83a11610066578063e8c6f83a14610308578063f05151df1461031b578063ffa1ad741461032357610198565b8063de314b19146102e5578063e5429298146102ed578063e6b3d949146102f557610198565b806368b967dc116100bd57806368b967dc146102b75780638d3638f4146102ca578063db2021ae146102d257610198565b806363706be31461029457806366cf8fab1461029c578063670a43c4146102af57610198565b80634626abee116101455780635585416c1161011f5780635585416c1461024c57806356d5d4751461026157806356f7e2981461027457610198565b80634626abee14610213578063485cc955146102265780634fedbbb51461023957610198565b8063316c92b611610176578063316c92b6146101f05780633339df96146101f857806341bdc8b51461020057610198565b80630c340a241461019d5780630ce21995146101bb5780632ead72f6146101d0575b600080fd5b6101a5610338565b6040516101b291906133f4565b60405180910390f35b6101ce6101c936600461328c565b610354565b005b6101e36101de3660046131e4565b61041e565b6040516101b29190613420565b6101ce610430565b6101a561057e565b6101ce61020e3660046130fc565b61059a565b6101ce610221366004613150565b610694565b6101ce610234366004613118565b61078f565b6101ce610247366004613239565b610a21565b610254610be9565b6040516101b29190613692565b6101ce61026f3660046132b7565b610c0d565b6102876102823660046131e4565b610ea0565b6040516101b29190613415565b6101ce610f09565b6102546102aa3660046131cc565b610fec565b6101e3611026565b6101ce6102c536600461328c565b61104a565b61025461106b565b6101ce6102e036600461321c565b61108f565b6101a5611168565b6101e3611184565b6101ce6103033660046130fc565b61118a565b6101ce61031636600461328c565b611269565b6102876112f9565b61032b61131a565b6040516101b2919061371f565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b61035c6112f9565b6103bf5760035473ffffffffffffffffffffffffffffffffffffffff1633146103ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061346e565b60405180910390fd5b610410565b60025473ffffffffffffffffffffffffffffffffffffffff163314610410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906135ed565b61041a828261131f565b5050565b60056020526000908152604090205481565b6104386112f9565b1561046f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190613548565b60025473ffffffffffffffffffffffffffffffffffffffff1633146104c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906135ed565b600154156104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061357f565b610524427f00000000000000000000000000000000000000000000000000000000000000006113b0565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae225916105749190613420565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6105a26112f9565b6105fc5760035473ffffffffffffffffffffffffffffffffffffffff1633146105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061346e565b61064d565b60025473ffffffffffffffffffffffffffffffffffffffff16331461064d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906135ed565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61069c6112f9565b6106f65760035473ffffffffffffffffffffffffffffffffffffffff1633146106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061346e565b610747565b60025473ffffffffffffffffffffffffffffffffffffffff163314610747576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906135ed565b60005b8181101561078a5761078183838381811061076157fe5b9050602002810190610773919061372d565b61077c906137e4565b61142d565b5060010161074a565b505050565b600054610100900460ff16806107a857506107a86114f0565b806107b6575060005460ff16155b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613872602e913960400191505060405180910390fd5b600054610100900460ff1615801561087157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b33600161089f7f00000000000000000000000000000000000000000000000000000000000000008383611501565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556108e88561059a565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561097757600080fd5b505afa15801561098b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109af9190613200565b63ffffffff16146109ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906134dc565b5050801561078a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061346e565b610a7a6112f9565b15610ab1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190613548565b6000610abc8461162b565b90506000610ad2610acd8486613784565b611678565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3c57600080fd5b505afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7491906131b0565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610bb0939291906136a3565b600060405180830381600087803b158015610bca57600080fd5b505af1158015610bde573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c62913391016133f4565b60206040518083038186803b158015610c7a57600080fd5b505afa158015610c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb29190613190565b610ce8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190613511565b8282610cf4828261184d565b610d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906134a5565b6000610d36848261189a565b9050610d637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166118be565b15610da057610d9b610d967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611919565b611967565b610e98565b610dcb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a00565b15610e0357610d9b610dfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a5e565b611a78565b610e2e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611b03565b15610e6657610d9b610e617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611b0c565b611b26565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061365b565b505050505050565b6000805b600654811015610efe578263ffffffff1660068281548110610ec257fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415610ef6576001915050610f04565b600101610ea4565b50600090505b919050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610f5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906135ed565b600154610f93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190613437565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610fe29173ffffffffffffffffffffffffffffffffffffffff909116906133f4565b60405180910390a1565b60068181548110610ffc57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b611054828261131f565b60006110608383611b9b565b905061078a81611bc8565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035473ffffffffffffffffffffffffffffffffffffffff1633146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061346e565b6110e86112f9565b1561111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190613548565b600061112a83611dc0565b9050611137838383611501565b8015611143575061041a565b60006111578461115285611def565b611e08565b905061116281611bc8565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff1633146111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906135ed565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b19061346e565b6112c26112f9565b1561104a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190613548565b6001546000908015801590428311159082906113125750805b935050505090565b600081565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe5469061136b9084908690613429565b60405180910390a2816113875761138183611e30565b5061041a565b806113955761139583611ed7565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561142457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6060600061143e8360000151611f37565b905060008173ffffffffffffffffffffffffffffffffffffffff16846020015160405161146b919061334c565b6000604051808303816000865af19150503d80600081146114a8576040519150601f19603f3d011682016040523d82523d6000602084013e6114ad565b606091505b5093509050806114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906135b6565b5050919050565b60006114fb30611f3a565b15905090565b806115115761150f8361162b565b505b60008161151f576000611521565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa916115939174010000000000000000000000000000000000000000900463ffffffff16908990613708565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff811660009081526005602052604090205480610f04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b190613624565b805160609060006002820167ffffffffffffffff8111801561169957600080fd5b506040519080825280602002602001820160405280156116c3578160200160208202803683370190505b509050611711600060016040516020016116dd9190613368565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529061189a565b8160008151811061171e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101820152604051611764916000916116dd918691016133c4565b8160018151811061177157fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b8281101561183b5760008582815181106117bb57fe5b6020026020010151905060006117ee6000836000015184602001515185602001516040516020016116dd9392919061331f565b90508084600285018151811061180057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015250506001016117a5565b5061184581611f40565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561142457505063ffffffff919091166000908152600560205260409020541490565b8151600090602084016118b564ffffffffff85168284611f90565b95945050505050565b600060016118cb83611ff1565b60ff16148015611427575060406119037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612021565b6bffffffffffffffffffffffff16101592915050565b6000611924826118be565b1561195f5761195860015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690612035565b9050610f04565b61142761205b565b806001611998815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084169061207f565b5060006119c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166121ff565b905060005b81518110156119f9576119f08282815181106119e357fe5b602002602001015161142d565b506001016119cb565b5050505050565b600060025b60ff16611a1183611ff1565b60ff1614801561142757506025611a497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612021565b6bffffffffffffffffffffffff161492915050565b6000611a6982611a00565b1561195f57611958600261192f565b806002611a848161196f565b506000611ab27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123a2565b90506000611ae9611ae47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166123d3565b611f37565b90506000611af683611dc0565b9050610e98838383611501565b60006003611a05565b6000611b1782611b03565b1561195f57611958600361192f565b806003611b328161196f565b506000611b607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123a2565b90506000611b8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166123d3565b90506119f9828261131f565b6060611424611bc3611bbe6000600387876040516020016116dd9392919061337d565b612404565b612439565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3257600080fd5b505afa158015611c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6a91906131b0565b905060005b60065481101561078a57600063ffffffff1660068281548110611c8e57fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611db8578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611ce057fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611d1757fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611d8593928991016136a3565b600060405180830381600087803b158015611d9f57600080fd5b505af1158015611db3573d6000803e3d6000fd5b505050505b600101611c6f565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b73ffffffffffffffffffffffffffffffffffffffff1690565b6060611424611bc3611e2b6000600287876040516020016116dd9392919061337d565b61247d565b63ffffffff811660009081526005602052604081208190555b60065481101561041a578163ffffffff1660068281548110611e6757fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611ecc5760068181548110611e9e57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611ed4565b600101611e49565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611f55846020840161248b565b90506000611f6282612021565b6bffffffffffffffffffffffff1690506000611f7d83612503565b9184525082016020016040525092915050565b600080611f9d8484612517565b9050604051811115611fad575060005b80611fdb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611fea565b611fe6858585612589565b9150505b9392505050565b60006114277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831682600161259c565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b600061208b83836125bd565b6121f85760006120a961209d856125df565b64ffffffffff166125e5565b91505060006120be8464ffffffffff166125e5565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b838110156121bd5781810151838201526020016121a5565b50505050905090810190601f1680156121ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006122317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841660018061259c565b905060006122a26002806122667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612021565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088169291906126b9565b905060008260ff1667ffffffffffffffff811180156122c057600080fd5b506040519080825280602002602001820160405280156122fa57816020015b6122e7612fb0565b8152602001906001900390816122df5790505b50905060005b600061232d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612021565b6bffffffffffffffffffffffff1611156123995761234a83612749565b82828151811061235657fe5b60209081029190910101515261236b83612779565b82828151811061237757fe5b60200260200101516020018190525061238f836127b8565b9250600101612300565b50949350505050565b60006114277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166001600461259c565b60006114277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660056020612843565b600061142761241283611b0c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166129b1565b606060008061244784612021565b6bffffffffffffffffffffffff169050604051915081925061246c8483602001612a2b565b508181016020016040529052919050565b600061142761241283611a5e565b60006040518281111561249e5760206060fd5b506000805b84518110156124f65760008582815181106124ba57fe5b602002602001015190506124d081848701612a2b565b506124da81612021565b6bffffffffffffffffffffffff169290920191506001016124a3565b5061184560008483612589565b600061250e82612b57565b60200292915050565b8181018281101561142757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166125b3858585612843565b901c949350505050565b60008164ffffffffff166125d0846125df565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff16111561264d5760ff600882021684901c61260a81612b8b565b61ffff16841793508160ff1660101461262557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016125eb565b50600f5b60ff8160ff1610156126b35760ff600882021684901c61267081612b8b565b61ffff16831792508160ff1660001461268b57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612651565b50915091565b6000806126c586612bbb565b6bffffffffffffffffffffffff1690506126de86612bcf565b6126f2856126ec8489612517565b90612517565b1115612721577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611845565b61272b8186612517565b905061273f8364ffffffffff168286611f90565b9695505050505050565b60006114277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826020612843565b6060611427611bc3604061278c85612bf9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616919060046126b9565b60008160016127c68161196f565b5060006127d285612bf9565b60400190506118b581806128077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916612021565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089169291906126b9565b600060ff821661285557506000611fea565b61285e84612021565b6bffffffffffffffffffffffff166128798460ff8516612517565b111561291b576128ba61288b85612bbb565b6bffffffffffffffffffffffff166128a286612021565b6bffffffffffffffffffffffff16858560ff16612c29565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156121bd5781810151838201526020016121a5565b60208260ff161115612978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806138a0603a913960400191505060405180910390fd5b60088202600061298786612bbb565b6bffffffffffffffffffffffff16905060006129a283612d84565b91909501511695945050505050565b60006129bc82612dcd565b612a2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b6000612a3683612e0a565b612a8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806138da6028913960400191505060405180910390fd5b612a9483612dcd565b612ae9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613902602b913960400191505060405180910390fd5b6000612af484612021565b6bffffffffffffffffffffffff1690506000612b0f85612bbb565b6bffffffffffffffffffffffff1690506000604051905084811115612b345760206060fd5b8285848460045afa5061273f612b49876125df565b64ffffffffff168685612589565b60006020612b7d6020612b6985612021565b6bffffffffffffffffffffffff1690612517565b81612b8457fe5b0492915050565b6000612b9d60048360ff16901c612e1c565b60ff161760081b62ffff0016612bb282612e1c565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612bda82612021565b612be383612bbb565b016bffffffffffffffffffffffff169050919050565b60006114277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602080612843565b60606000612c36866125e5565b9150506000612c44866125e5565b9150506000612c52866125e5565b9150506000612c60866125e5565b91505083838383604051602001808061392d603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161385182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612dd8826125df565b64ffffffffff1664ffffffffff1415612df357506000610f04565b6000612dfe83612bcf565b60405110199392505050565b6000612e1582612f88565b1592915050565b600060f08083179060ff82161415612e38576030915050610f04565b8060ff1660f11415612e4e576031915050610f04565b8060ff1660f21415612e64576032915050610f04565b8060ff1660f31415612e7a576033915050610f04565b8060ff1660f41415612e90576034915050610f04565b8060ff1660f51415612ea6576035915050610f04565b8060ff1660f61415612ebc576036915050610f04565b8060ff1660f71415612ed2576037915050610f04565b8060ff1660f81415612ee8576038915050610f04565b8060ff1660f91415612efe576039915050610f04565b8060ff1660fa1415612f14576061915050610f04565b8060ff1660fb1415612f2a576062915050610f04565b8060ff1660fc1415612f40576063915050610f04565b8060ff1660fd1415612f56576064915050610f04565b8060ff1660fe1415612f6c576065915050610f04565b8060ff1660ff1415612f82576066915050610f04565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612fd9578182fd5b50813567ffffffffffffffff811115612ff0578182fd5b602083019150836020808302850101111561300a57600080fd5b9250929050565b600082601f830112613021578081fd5b813567ffffffffffffffff81111561303557fe5b61306660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613760565b81815284602083860101111561307a578283fd5b816020850160208301379081016020019190915292915050565b6000604082840312156130a5578081fd5b6040516040810167ffffffffffffffff82821081831117156130c357fe5b816040528293508435835260208501359150808211156130e257600080fd5b506130ef85828601613011565b6020830152505092915050565b60006020828403121561310d578081fd5b81356114248161381c565b6000806040838503121561312a578081fd5b82356131358161381c565b915060208301356131458161381c565b809150509250929050565b60008060208385031215613162578182fd5b823567ffffffffffffffff811115613178578283fd5b61318485828601612fc8565b90969095509350505050565b6000602082840312156131a1578081fd5b81518015158114611424578182fd5b6000602082840312156131c1578081fd5b81516114248161381c565b6000602082840312156131dd578081fd5b5035919050565b6000602082840312156131f5578081fd5b81356114248161383e565b600060208284031215613211578081fd5b81516114248161383e565b6000806040838503121561322e578182fd5b82356131358161383e565b60008060006040848603121561324d578081fd5b83356132588161383e565b9250602084013567ffffffffffffffff811115613273578182fd5b61327f86828701612fc8565b9497909650939450505050565b6000806040838503121561329e578182fd5b82356132a98161383e565b946020939093013593505050565b6000806000606084860312156132cb578283fd5b83356132d68161383e565b925060208401359150604084013567ffffffffffffffff8111156132f8578182fd5b61330486828701613011565b9150509250925092565b6005811061331857fe5b60f81b9052565b6000848252836020830152825161333d8160408501602087016137f0565b91909101604001949350505050565b6000825161335e8184602087016137f0565b9190910192915050565b6000613374828461330e565b50600101919050565b6000613389828661330e565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff851682528360208301526060604083015282518060608401526136d48160808501602087016137f0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261335e578182fd5b60405181810167ffffffffffffffff8111828210171561377c57fe5b604052919050565b600067ffffffffffffffff83111561379857fe5b60206137a78182860201613760565b8481528181019084845b878110156137d8576137c63683358901613094565b845292840192908401906001016137b1565b50909695505050505050565b60006114273683613094565b60005b8381101561380b5781810151838201526020016137f3565b838111156111625750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611ed457600080fd5b63ffffffff81168114611ed457600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220be9035ad9125499d202110fca62634e5acd23b88f90ec165f13b2a74ab28484264736f6c63430007060033"; + +export class TestGovernanceRouter__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + _recoveryTimelock: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _localDomain, + _recoveryTimelock, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + _recoveryTimelock: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _localDomain, + _recoveryTimelock, + overrides || {} + ); + } + attach(address: string): TestGovernanceRouter { + return super.attach(address) as TestGovernanceRouter; + } + connect(signer: Signer): TestGovernanceRouter__factory { + return super.connect(signer) as TestGovernanceRouter__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestGovernanceRouterInterface { + return new utils.Interface(_abi) as TestGovernanceRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestGovernanceRouter { + return new Contract( + address, + _abi, + signerOrProvider + ) as TestGovernanceRouter; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestHome__factory.ts b/solidity/abacus-core/typechain/factories/TestHome__factory.ts new file mode 100644 index 000000000..87b15e557 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestHome__factory.ts @@ -0,0 +1,686 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestHome, TestHomeInterface } from "../TestHome"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "uint256", + name: "leafIndex", + type: "uint256", + }, + { + indexed: true, + internalType: "uint64", + name: "destinationAndNonce", + type: "uint64", + }, + { + indexed: false, + internalType: "bytes32", + name: "committedRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "Dispatch", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "ImproperUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updaterManager", + type: "address", + }, + ], + name: "NewUpdaterManager", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "updater", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "reporter", + type: "address", + }, + ], + name: "UpdaterSlashed", + type: "event", + }, + { + inputs: [], + name: "MAX_MESSAGE_BODY_BYTES", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "count", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destination", + type: "uint32", + }, + { + internalType: "uint32", + name: "_nonce", + type: "uint32", + }, + ], + name: "destinationAndNonce", + outputs: [ + { + internalType: "uint64", + name: "", + type: "uint64", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_recipientAddress", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_messageBody", + type: "bytes", + }, + ], + name: "dispatch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "improperUpdate", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IUpdaterManager", + name: "_updaterManager", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "queueContains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueEnd", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "root", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "setFailed", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updaterManager", + type: "address", + }, + ], + name: "setUpdaterManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "suggestUpdate", + outputs: [ + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_new", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "tree", + outputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "update", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "updaterManager", + outputs: [ + { + internalType: "contract IUpdaterManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60a060405234801561001057600080fd5b5060405161303a38038061303a8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612fc7610073600039806109f75280610b45528061101d52806116715250612fc76000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80639df6c8e1116100f9578063df034cd011610097578063f6d1610211610071578063f6d1610214610662578063fa31de011461066a578063fd54b22814610722578063ffa1ad741461072a576101c4565b8063df034cd01461061f578063ebf0c71714610627578063f2fde38b1461062f576101c4565b8063b95a2001116100d3578063b95a200114610558578063c19d93fb1461057b578063c4d66de8146105a4578063da180e70146105d7576101c4565b80639df6c8e114610496578063ab91c7b01461049e578063b31c01fb146104a6576101c4565b806367a6771d116101665780638da5cb5b116101405780638da5cb5b1461034d5780638e4e30e01461037e5780639776120e146104305780639d54f41914610463576101c4565b806367a6771d1461031c578063715018a6146103245780638d3638f41461032c576101c4565b80632bef2892116101a25780632bef2892146102ba57806336e104de146102eb57806345630b1a1461030c578063522ae00214610314576101c4565b806306661abd146101c9578063146901db146101e357806319d9d21a146101ed575b600080fd5b6101d1610748565b60408051918252519081900360200190f35b6101eb61074e565b005b6101eb600480360360a081101561020357600080fd5b813591602081019181019060808101606082013564010000000081111561022957600080fd5b82018360208201111561023b57600080fd5b8035906020019184600183028401116401000000008311171561025d57600080fd5b91939092909160208101903564010000000081111561027b57600080fd5b82018360208201111561028d57600080fd5b803590602001918460018302840111640100000000831117156102af57600080fd5b509092509050610758565b6102d7600480360360208110156102d057600080fd5b50356109b5565b604080519115158252519081900360200190f35b6102f36109c8565b6040805192835260208301919091528051918290030190f35b6101d16109f0565b6101d1610a20565b6101d1610a26565b6101eb610a2c565b610334610b43565b6040805163ffffffff9092168252519081900360200190f35b610355610b67565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102d76004803603606081101561039457600080fd5b8135916020810135918101906060810160408201356401000000008111156103bb57600080fd5b8201836020820111156103cd57600080fd5b803590602001918460018302840111640100000000831117156103ef57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b83945050505050565b6101eb6004803603602081101561044657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dd6565b6101eb6004803603602081101561047957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e8a565b610355610f1a565b6101d1610f37565b6101eb600480360360608110156104bc57600080fd5b8135916020810135918101906060810160408201356401000000008111156104e357600080fd5b8201836020820111156104f557600080fd5b8035906020019184600183028401116401000000008311171561051757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f43945050505050565b6103346004803603602081101561056e57600080fd5b503563ffffffff166110e1565b6105836110fa565b6040518082600281111561059357fe5b815260200191505060405180910390f35b6101eb600480360360208110156105ba57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661111b565b610602600480360360408110156105ed57600080fd5b5063ffffffff81358116916020013516611336565b6040805167ffffffffffffffff9092168252519081900360200190f35b610355611342565b6101d161135e565b6101eb6004803603602081101561064557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661136a565b6101d161150c565b6101eb6004803603606081101561068057600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156106ad57600080fd5b8201836020820111156106bf57600080fd5b803590602001918460018302840111640100000000831117156106e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611518945050505050565b6101d161178e565b610732611794565b6040805160ff9092168252519081900360200190f35b60545490565b610756611799565b565b600260865474010000000000000000000000000000000000000000900460ff16600281111561078357fe5b14156107f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261083291889188359188908890819084018382808284376000920191909152506117da92505050565b8015610881575061088186866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117da92505050565b801561089257508435602086013514155b156109ad5761089f61186c565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b60006109c2600183611948565b92915050565b6000806109d560016119b8565b156109ec5760875491506109e960016119f8565b90505b9091565b6000610a1b7f0000000000000000000000000000000000000000000000000000000000000000611a35565b905090565b61080081565b60875481565b610a34611aaa565b73ffffffffffffffffffffffffffffffffffffffff16610a52610b67565b73ffffffffffffffffffffffffffffffffffffffff1614610ad457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610bb057fe5b1415610c1d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610c288484846117da565b610c9357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610d0357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610d0e600184611948565b610dcb57610d1a61186c565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d87578181015183820152602001610d6f565b50505050905090810190601f168015610db45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610dcf565b5060005b9392505050565b610dde611aaa565b73ffffffffffffffffffffffffffffffffffffffff16610dfc610b67565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e8781611aae565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610f1157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e8781611b9c565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a1b60016119b8565b600260865474010000000000000000000000000000000000000000900460ff166002811115610f6e57fe5b1415610fdb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610fe6838383610b83565b15610ff0576110dc565b6000610ffc6001611c15565b90508281141561100c5750611012565b50610ff0565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b838110156110a1578181015183820152602001611089565b50505050905090810190601f1680156110ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806111345750611134611d4e565b80611142575060005460ff16155b611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f42602e913960400191505060405180910390fd5b600054610100900460ff161580156111fd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611205611d5f565b61120d611e82565b61121682611aae565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561128257600080fd5b505afa158015611296573d6000803e3d6000fd5b505050506040513d60208110156112ac57600080fd5b505190506112b981611f6e565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561133257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b6000610dcf83836120fb565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a1b6034612115565b611372611aaa565b73ffffffffffffffffffffffffffffffffffffffff16611390610b67565b73ffffffffffffffffffffffffffffffffffffffff161461141257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661147e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612efa6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000610a1b60016119f8565b600260865474010000000000000000000000000000000000000000900460ff16600281111561154357fe5b14156115b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b6108008151111561162257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905561169a7f00000000000000000000000000000000000000000000000000000000000000003384888888612128565b805160208201209091506116af6034826121fe565b6116c26116ba61135e565b600190612306565b506116cd86846120fb565b67ffffffffffffffff1660016116e1610748565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561174b578181015183820152602001611733565b50505050905090810190601f1680156117785780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b6000806117e56109f0565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061182681612373565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661184c82856123c4565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611874611799565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156118e757600080fd5b505af11580156118fb573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610dcb5760008181526001850160205260409020548314156119b05760019150506109c2565b600101611960565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166119f0828261245e565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b611ab781612478565b611b2257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611c4d828261245e565b611cb857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611d09576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611d5930612478565b15905090565b600054610100900460ff1680611d785750611d78611d4e565b80611d86575060005460ff16155b611ddb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f42602e913960400191505060405180910390fd5b600054610100900460ff16158015611e4157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e4961247e565b611e51612590565b8015610e8757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611e9b5750611e9b611d4e565b80611ea9575060005460ff16155b611efe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f42602e913960400191505060405180910390fd5b600054610100900460ff16158015611f6457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e516001612720565b600054610100900460ff1680611f875750611f87611d4e565b80611f95575060005460ff16155b611fea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f42602e913960400191505060405180910390fd5b600054610100900460ff1615801561205057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561133257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b63ffffffff1660209190911b67ffffffff00000000161790565b60006109c282612123612764565b612c25565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106121b957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161217c565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161227457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156123035781600116600114156122b057828482602081106122a657fe5b0155506113329050565b8381602081106122bc57fe5b0154836040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250600282816122f857fe5b049150600101612284565b50fe5b81546fffffffffffffffffffffffffffffffff80821670010000000000000000000000000000000092839004821660010191821690920291909117835581156109c2576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461243657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61245486828585612ce3565b9695505050505050565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff16806124975750612497611d4e565b806124a5575060005460ff16155b6124fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f42602e913960400191505060405180910390fd5b600054610100900460ff16158015611e5157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e8757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806125a957506125a9611d4e565b806125b7575060005460ff16155b61260c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f42602e913960400191505060405180910390fd5b600054610100900460ff1615801561267257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600061267c611aaa565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e8757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610e875780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b61276c612eda565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612cdb57600182821c166000868360208110612c4c57fe5b015490508160011415612c8f5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612cd1565b84868460208110612c9c57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612c2f565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f206022913960400191505060405180910390fd5b8360ff16601b1480612d7357508360ff16601c145b612dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f706022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612e24573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612ed157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220bcdf2c20d10075f60c1dc75cd5e9879755df329e90f4f0194867777ddd17df9d64736f6c63430007060033"; + +export class TestHome__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_localDomain, overrides || {}) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_localDomain, overrides || {}); + } + attach(address: string): TestHome { + return super.attach(address) as TestHome; + } + connect(signer: Signer): TestHome__factory { + return super.connect(signer) as TestHome__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestHomeInterface { + return new utils.Interface(_abi) as TestHomeInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestHome { + return new Contract(address, _abi, signerOrProvider) as TestHome; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestMerkle__factory.ts b/solidity/abacus-core/typechain/factories/TestMerkle__factory.ts new file mode 100644 index 000000000..86d5765b8 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestMerkle__factory.ts @@ -0,0 +1,133 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestMerkle, TestMerkleInterface } from "../TestMerkle"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_leaf", + type: "bytes32", + }, + { + internalType: "bytes32[32]", + name: "_proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "_index", + type: "uint256", + }, + ], + name: "branchRoot", + outputs: [ + { + internalType: "bytes32", + name: "_node", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "count", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_node", + type: "bytes32", + }, + ], + name: "insert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "root", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tree", + outputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506108ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806377d63d1d1161005057806377d63d1d146100a5578063ebf0c717146100cf578063fd54b228146100d757610067565b806306661abd1461006c5780632d287e4314610086575b600080fd5b6100746100df565b60408051918252519081900360200190f35b6100a36004803603602081101561009c57600080fd5b50356100e5565b005b61007460048036036104408110156100bc57600080fd5b50803590602081019061042001356100f3565b610074610131565b610074610142565b60205490565b6100f0600082610148565b50565b60006101298484602080602002604051908101604052809291908260208002808284376000920191909152508691506102549050565b949350505050565b600061013d60006102ff565b905090565b60205481565b602082015463ffffffff116101be57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b602081101561024d5781600116600114156101fa57828482602081106101f057fe5b0155506102509050565b83816020811061020657fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161024257fe5b0491506001016101ce565b50fe5b5050565b8260005b60208110156102f757600183821c16600085836020811061027557fe5b6020020151905081600114156102bb57808460405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093506102ed565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101610258565b509392505050565b60006103128261030d610318565b6107d9565b92915050565b610320610897565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b602081101561088f57600182821c16600086836020811061080057fe5b0154905081600114156108435780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610885565b8486846020811061085057fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b50506001016107e3565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220fa2e7de552199308ae93bb99d5bbbcaf4a3beed6157b4da5ffbf4d2bc292f34a64736f6c63430007060033"; + +export class TestMerkle__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TestMerkle { + return super.attach(address) as TestMerkle; + } + connect(signer: Signer): TestMerkle__factory { + return super.connect(signer) as TestMerkle__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestMerkleInterface { + return new utils.Interface(_abi) as TestMerkleInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestMerkle { + return new Contract(address, _abi, signerOrProvider) as TestMerkle; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestMessage__factory.ts b/solidity/abacus-core/typechain/factories/TestMessage__factory.ts new file mode 100644 index 000000000..c7de569ef --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestMessage__factory.ts @@ -0,0 +1,199 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestMessage, TestMessageInterface } from "../TestMessage"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "body", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "destination", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "leaf", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "nonce", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "origin", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "recipient", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "recipientAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "sender", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50611605806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c97c703a1161005b578063c97c703a14610350578063cb3eb0e11461046b578063d7a7a72c14610511578063f45387ba146105b757610088565b80634e7650041461008d5780636dc3c4f71461014c578063985a5c3114610204578063c81aa9c8146102aa575b600080fd5b610133600480360360208110156100a357600080fd5b8101906020810181356401000000008111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460018302840111640100000000831117156100f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610686945050505050565b6040805163ffffffff9092168252519081900360200190f35b6101f26004803603602081101561016257600080fd5b81019060208101813564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106c4945050505050565b60408051918252519081900360200190f35b6101f26004803603602081101561021a57600080fd5b81019060208101813564010000000081111561023557600080fd5b82018360208201111561024757600080fd5b8035906020019184600183028401116401000000008311171561026957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106fa945050505050565b610133600480360360208110156102c057600080fd5b8101906020810181356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610730945050505050565b6103f66004803603602081101561036657600080fd5b81019060208101813564010000000081111561038157600080fd5b82018360208201111561039357600080fd5b803590602001918460018302840111640100000000831117156103b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610766945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610430578181015183820152602001610418565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101336004803603602081101561048157600080fd5b81019060208101813564010000000081111561049c57600080fd5b8201836020820111156104ae57600080fd5b803590602001918460018302840111640100000000831117156104d057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107c7945050505050565b6101f26004803603602081101561052757600080fd5b81019060208101813564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107fd945050505050565b61065d600480360360208110156105cd57600080fd5b8101906020810181356401000000008111156105e857600080fd5b8201836020820111156105fa57600080fd5b8035906020019184600183028401116401000000008311171561061c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610833945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60006106bc6106958383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001661088f565b90505b919050565b60006106bc6106d38383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108c0565b60006106bc6107098383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108f1565b60006106bc61073f8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610922565b60606106bc6107a0610779846000610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166109c4565b60006106bc6107d68383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a08565b60006106bc61080c8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a38565b60006106bc6108428383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a80565b81516000906020840161088464ffffffffff85168284610a93565b925050505b92915050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246004610af4565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004610af4565b60006106bc604c806109867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616610cc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff91909116036000610cd4565b60606000806109d284610cc0565b6bffffffffffffffffffffffff16905060405191508192506109f78483602001610d66565b508181016020016040529052919050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004610af4565b60006106bc610a4683610a08565b610a4f846108c0565b610a588561088f565b610a6186610922565b610a6a876108f1565b610a7b610a7689610953565b6109c4565b610e9c565b60006106bc610a8e836108f1565b610ebf565b600080610aa08484610ec2565b9050604051811115610ab0575060005b80610ade577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610aed565b610ae9858585610f34565b9150505b9392505050565b60008160200360080260ff16610b0b858585610b15565b901c949350505050565b600060ff8216610b2757506000610aed565b610b3084610cc0565b6bffffffffffffffffffffffff16610b4b8460ff8516610ec2565b1115610c2a57610b8c610b5d85610f47565b6bffffffffffffffffffffffff16610b7486610cc0565b6bffffffffffffffffffffffff16858560ff16610f5b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bef578181015183820152602001610bd7565b50505050905090810190601f168015610c1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610c87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061150e603a913960400191505060405180910390fd5b600882026000610c9686610f47565b6bffffffffffffffffffffffff1690506000610cb1836110b6565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b600080610ce086610f47565b6bffffffffffffffffffffffff169050610cf9866110ff565b610d0d85610d078489610ec2565b90610ec2565b1115610d3c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d5e565b610d468186610ec2565b9050610d5a8364ffffffffff168286610a93565b9150505b949350505050565b6000610d7183611129565b610dc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806115486028913960400191505060405180910390fd5b610dcf8361113b565b610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611570602b913960400191505060405180910390fd5b6000610e2f84610cc0565b6bffffffffffffffffffffffff1690506000610e4a85610f47565b6bffffffffffffffffffffffff1690506000604051905084811115610e6f5760206060fd5b8285848460045afa50610e92610e8487611178565b64ffffffffff168685610f34565b9695505050505050565b6000610eac87878787878761117e565b8051906020012090509695505050505050565b90565b8181018281101561088957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60781c6bffffffffffffffffffffffff1690565b60606000610f6886611254565b9150506000610f7686611254565b9150506000610f8486611254565b9150506000610f9286611254565b91505083838383604051602001808061159b603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114ed82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600061110a82610cc0565b61111383610f47565b016bffffffffffffffffffffffff169050919050565b600061113482611328565b1592915050565b600061114682611178565b64ffffffffff1664ffffffffff1415611161575060006106bf565b600061116c836110ff565b60405110199392505050565b60d81c90565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061120f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111d2565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b600080601f5b600f8160ff1611156112bc5760ff600882021684901c61127981611350565b61ffff16841793508160ff1660101461129457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161125a565b50600f5b60ff8160ff1610156113225760ff600882021684901c6112df81611350565b61ffff16831792508160ff166000146112fa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016112c0565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061136260048360ff16901c611380565b60ff161760081b62ffff001661137782611380565b60ff1617919050565b600060f08083179060ff8216141561139c5760309150506106bf565b8060ff1660f114156113b25760319150506106bf565b8060ff1660f214156113c85760329150506106bf565b8060ff1660f314156113de5760339150506106bf565b8060ff1660f414156113f45760349150506106bf565b8060ff1660f5141561140a5760359150506106bf565b8060ff1660f614156114205760369150506106bf565b8060ff1660f714156114365760379150506106bf565b8060ff1660f8141561144c5760389150506106bf565b8060ff1660f914156114625760399150506106bf565b8060ff1660fa14156114785760619150506106bf565b8060ff1660fb141561148e5760629150506106bf565b8060ff1660fc14156114a45760639150506106bf565b8060ff1660fd14156114ba5760649150506106bf565b8060ff1660fe14156114d05760659150506106bf565b8060ff1660ff14156114e65760669150506106bf565b5091905056fe2e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212208cc38ae70db486afe92e596c7f8ad9a9df32a51d9bf1df9052b2c68f9cb7d20764736f6c63430007060033"; + +export class TestMessage__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TestMessage { + return super.attach(address) as TestMessage; + } + connect(signer: Signer): TestMessage__factory { + return super.connect(signer) as TestMessage__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestMessageInterface { + return new utils.Interface(_abi) as TestMessageInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestMessage { + return new Contract(address, _abi, signerOrProvider) as TestMessage; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestQueue__factory.ts b/solidity/abacus-core/typechain/factories/TestQueue__factory.ts new file mode 100644 index 000000000..8f4f8669a --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestQueue__factory.ts @@ -0,0 +1,239 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestQueue, TestQueueInterface } from "../TestQueue"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "contains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "dequeue", + outputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_number", + type: "uint256", + }, + ], + name: "dequeueMany", + outputs: [ + { + internalType: "bytes32[]", + name: "_items", + type: "bytes32[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "drain", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "enqueue", + outputs: [ + { + internalType: "uint256", + name: "_last", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "_items", + type: "bytes32[]", + }, + ], + name: "enqueueMany", + outputs: [ + { + internalType: "uint256", + name: "_last", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "initializeAgain", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "lastItem", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "length", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "peek", + outputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "queueContains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueEnd", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506109c5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80638f2cbe701161008c578063a9541aa211610066578063a9541aa21461022e578063ab91c7b014610115578063b4de3e2314610236578063f6d161021461012f576100df565b80638f2cbe70146101ac578063957908d11461021c5780639890220b14610224576100df565b80632bef2892116100bd5780632bef2892146100e457806359e02dd7146101375780635b8b49591461013f576100df565b80631d1a696d146100e45780631f7b6d3214610115578063210ce6b91461012f575b600080fd5b610101600480360360208110156100fa57600080fd5b5035610253565b604080519115158252519081900360200190f35b61011d610266565b60408051918252519081900360200190f35b61011d610277565b61011d610283565b61015c6004803603602081101561015557600080fd5b503561028f565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610198578181015183820152602001610180565b505050509050019250505060405180910390f35b61011d600480360360208110156101c257600080fd5b8101906020810181356401000000008111156101dd57600080fd5b8201836020820111156101ef57600080fd5b8035906020019184602083028401116401000000008311171561021157600080fd5b50909250905061029c565b61011d6102f7565b61022c610303565b005b61022c610324565b61011d6004803603602081101561024c57600080fd5b503561032e565b6000610260600183610353565b92915050565b600061027260016103cd565b905090565b6000610272600161040d565b6000610272600161044a565b60606102606001836104eb565b60006102de83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525060019392505061069b9050565b6fffffffffffffffffffffffffffffffff169392505050565b6000610272600161075b565b61030d60016103cd565b156103225761031c600161075b565b50610303565b565b6103226001610894565b600061033b6001836108d9565b6fffffffffffffffffffffffffffffffff1692915050565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681116103c35760008181526001850160205260409020548314156103bb576001915050610260565b60010161036b565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166104058282610946565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b600061045582610960565b156104c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5080546fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b81546060906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116836105248383610946565b101561059157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e73756666696369656e740000000000000000000000000000000000000000604482015290519081900360640190fd5b60008467ffffffffffffffff811180156105aa57600080fd5b506040519080825280602002602001820160405280156105d4578160200160208202803683370190505b50905060005b85811015610652576fffffffffffffffffffffffffffffffff83166000908152600188016020526040902054825183908390811061061457fe5b6020908102919091018101919091526fffffffffffffffffffffffffffffffff841660009081526001808a01909252604081205592830192016105da565b5085547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117909455509192915050565b815470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660005b82518110156107275760018201915060008382815181106106e357fe5b602002602001015190506000801b811461071e576fffffffffffffffffffffffffffffffff8316600090815260018601602052604090208190555b506001016106c6565b5082546fffffffffffffffffffffffffffffffff808316700100000000000000000000000000000000029116179092555090565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166107938282610946565b6107fe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff811660009081526001850160205260409020549250821561084f576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b80546fffffffffffffffffffffffffffffffff166108d65780547fffffffffffffffffffffffffffffffff000000000000000000000000000000001660011781555b50565b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610260576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b60019103016fffffffffffffffffffffffffffffffff1690565b546fffffffffffffffffffffffffffffffff80821670010000000000000000000000000000000090920416109056fea26469706673582212207f87c6d4148c6c84cdd98917696affd438929c95264944759fd11d8dca9caee764736f6c63430007060033"; + +export class TestQueue__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TestQueue { + return super.attach(address) as TestQueue; + } + connect(signer: Signer): TestQueue__factory { + return super.connect(signer) as TestQueue__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestQueueInterface { + return new utils.Interface(_abi) as TestQueueInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestQueue { + return new Contract(address, _abi, signerOrProvider) as TestQueue; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestRecipient__factory.ts b/solidity/abacus-core/typechain/factories/TestRecipient__factory.ts new file mode 100644 index 000000000..f39dfff91 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestRecipient__factory.ts @@ -0,0 +1,132 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestRecipient, TestRecipientInterface } from "../TestRecipient"; + +const _abi = [ + { + stateMutability: "nonpayable", + type: "fallback", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "message", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "callProcessed", + type: "bool", + }, + ], + name: "processCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "processed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_str", + type: "string", + }, + ], + name: "receiveString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x60806040526000805460ff1916905534801561001a57600080fd5b5061039c8061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806356d5d4751161005057806356d5d475146101cf578063c0a58a4d14610289578063e21f37ce146102a857610067565b80632ce5c284146100ce5780634e376c5d146100ea575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f46616c6c6261636b000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6100d66102b0565b604080519115158252519081900360200190f35b61015a6004803603602081101561010057600080fd5b81019060208101813564010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b5090925090506102b9565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610287600480360360608110156101e557600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561021257600080fd5b82018360208201111561022457600080fd5b8035906020019184600183028401116401000000008311171561024657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506102f9945050505050565b005b6102876004803603602081101561029f57600080fd5b503515156102fe565b61015a61032f565b60005460ff1681565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60408051808201909152601081527f6d6573736167652072656365697665640000000000000000000000000000000060208201529056fea264697066735822122097826225a1efb1c42f91488ad92d10ca3dba981ac77c1c66b5771b0446d732ef64736f6c63430007060033"; + +export class TestRecipient__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TestRecipient { + return super.attach(address) as TestRecipient; + } + connect(signer: Signer): TestRecipient__factory { + return super.connect(signer) as TestRecipient__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestRecipientInterface { + return new utils.Interface(_abi) as TestRecipientInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestRecipient { + return new Contract(address, _abi, signerOrProvider) as TestRecipient; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestReplica__factory.ts b/solidity/abacus-core/typechain/factories/TestReplica__factory.ts new file mode 100644 index 000000000..781503e8c --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestReplica__factory.ts @@ -0,0 +1,667 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestReplica, TestReplicaInterface } from "../TestReplica"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "bool", + name: "success", + type: "bool", + }, + { + indexed: true, + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "Process", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + inputs: [], + name: "PROCESS_GAS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "RESERVE_GAS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_root", + type: "bytes32", + }, + ], + name: "acceptableRoot", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "confirmAt", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_remoteDomain", + type: "uint32", + }, + { + internalType: "address", + name: "_updater", + type: "address", + }, + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_optimisticSeconds", + type: "uint256", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "messages", + outputs: [ + { + internalType: "enum Replica.MessageStatus", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "optimisticSeconds", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "process", + outputs: [ + { + internalType: "bool", + name: "_success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_leaf", + type: "bytes32", + }, + { + internalType: "bytes32[32]", + name: "_proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "_index", + type: "uint256", + }, + ], + name: "prove", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + { + internalType: "bytes32[32]", + name: "_proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "_index", + type: "uint256", + }, + ], + name: "proveAndProcess", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "remoteDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + ], + name: "setCommittedRoot", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "setFailed", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "setMessageProven", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "leaf", + type: "bytes32", + }, + { + internalType: "bytes32[32]", + name: "proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + ], + name: "testBranchRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "testProcess", + outputs: [ + { + internalType: "bool", + name: "_success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "update", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60e060405234801561001057600080fd5b50604051612fed380380612fed8339818101604052606081101561003357600080fd5b50516001600160e01b031960e082901b16608052620cf85060a0819052613a9860c081905263ffffffff90921691612f5561009860003980610ac2528061100e525080610fed52806110e552806117d5525080610d695280610dbd5250612f556000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c8063928bc4b2116100f9578063b31c01fb11610097578063df034cd011610071578063df034cd0146107b3578063e7e7a7b7146107bb578063f2fde38b14610806578063ffa1ad7414610839576101b9565b8063b31c01fb146106f1578063c19d93fb146107a3578063d88beda2146107ab576101b9565b80639868a273116100d35780639868a2731461065a5780639d54f41914610684578063a33a3113146106b7578063a3f81d68146106d4576101b9565b8063928bc4b214610506578063961681dc146105ac57806396ae1a89146105b4576101b9565b806345630b1a1161016657806367a6771d1161014057806367a6771d1461048f57806371bfb7b8146104975780638d3638f4146104b45780638da5cb5b146104d5576101b9565b806345630b1a1461033357806355f6cfb61461033b5780636188af0e146103e1576101b9565b80632bbd59ca116101975780632bbd59ca146102af578063371d3071146102ed578063399926681461032b576101b9565b8063146901db146101be57806319d9d21a146101c857806325e3beda14610295575b600080fd5b6101c6610857565b005b6101c6600480360360a08110156101de57600080fd5b813591602081019181019060808101606082013564010000000081111561020457600080fd5b82018360208201111561021657600080fd5b8035906020019184600183028401116401000000008311171561023857600080fd5b91939092909160208101903564010000000081111561025657600080fd5b82018360208201111561026857600080fd5b8035906020019184600183028401116401000000008311171561028a57600080fd5b509092509050610861565b61029d610ac0565b60408051918252519081900360200190f35b6102cc600480360360208110156102c557600080fd5b5035610ae4565b604051808260028111156102dc57fe5b815260200191505060405180910390f35b610317600480360361044081101561030457600080fd5b5080359060208101906104200135610af9565b604080519115158252519081900360200190f35b61029d610c19565b61029d610c1f565b6101c66004803603602081101561035157600080fd5b81019060208101813564010000000081111561036c57600080fd5b82018360208201111561037e57600080fd5b803590602001918460018302840111640100000000831117156103a057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c39945050505050565b6101c660048036036104408110156103f857600080fd5b81019060208101813564010000000081111561041357600080fd5b82018360208201111561042557600080fd5b8035906020019184600183028401116401000000008311171561044757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610cc3565b61029d610d4f565b61029d600480360360208110156104ad57600080fd5b5035610d55565b6104bc610d67565b6040805163ffffffff9092168252519081900360200190f35b6104dd610d8b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103176004803603602081101561051c57600080fd5b81019060208101813564010000000081111561053757600080fd5b82018360208201111561054957600080fd5b8035906020019184600183028401116401000000008311171561056b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610da7945050505050565b6104bc6113ea565b610317600480360360208110156105ca57600080fd5b8101906020810181356401000000008111156105e557600080fd5b8201836020820111156105f757600080fd5b8035906020019184600183028401116401000000008311171561061957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113f6945050505050565b61029d600480360361044081101561067157600080fd5b5080359060208101906104200135611407565b6101c66004803603602081101561069a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611445565b6101c6600480360360208110156106cd57600080fd5b5035611520565b610317600480360360208110156106ea57600080fd5b5035611537565b6101c66004803603606081101561070757600080fd5b81359160208101359181019060608101604082013564010000000081111561072e57600080fd5b82018360208201111561074057600080fd5b8035906020019184600183028401116401000000008311171561076257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611560945050505050565b6102cc6117b0565b61029d6117d3565b6104dd6117f7565b6101c6600480360360808110156107d157600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff6020820135169060408101359060600135611819565b6101c66004803603602081101561081c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166119b9565b610841611b98565b6040805160ff9092168252519081900360200190f35b61085f611b9d565b565b6002600054760100000000000000000000000000000000000000000000900460ff16600281111561088e57fe5b14156108fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261093d9188918835918890889081908401838280828437600092019190915250611be092505050565b801561098c575061098c86866001602002013584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be092505050565b801561099d57508435602086013514155b15610ab8576109aa610857565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff166002811115610b1957fe5b14610b8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b6000610bbb858560208060200260405190810160405280929190826020800280828437600092019190915250879150611c789050565b9050610bc681611537565b15610c0c575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610c12565b60009150505b9392505050565b60325481565b603154600090610c349063ffffffff16611d23565b905090565b6000610c458282611d98565b9050600160356000610c787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611dbc565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836002811115610cba57fe5b02179055505050565b610cd583805190602001208383610af9565b610d4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610d4983610da7565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610db48382611d98565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610e087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611dfb565b63ffffffff1614610e7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610ea77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611dbc565b9050600160008281526035602052604090205460ff166002811115610ec857fe5b14610f3457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610fa857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a101561109e57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006110cb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611e2c565b6040805161010080825261012082019092529192506000917f00000000000000000000000000000000000000000000000000000000000000009083908360208201818036833701905050905060006111447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611e3f565b61116f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611e6f565b6111c461119d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611ea0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611f11565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156112165781810151838201526020016111fe565b50505050905090810190601f1680156112435780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d9450838511156112e2578394505b848252846000602084013e816040518082805190602001908083835b6020831061133b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016112fe565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061140182610da7565b92915050565b600061143d848460208060200260405190810160405280929190826020800280828437600092019190915250869150611c789050565b949350505050565b600061144f610d8b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114a55750600061148d610d8b565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061151357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61151c82611f55565b5050565b600181815560009182526034602052604090912055565b6000818152603460205260408120548061155557600091505061155b565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff16600281111561158d57fe5b14156115fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461166a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b611675838383611be0565b6116e057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6116e861085f565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b83811015611771578181015183820152602001611759565b50505050905090810190601f16801561179e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806118325750611832611fd6565b80611840575060005460ff16155b611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e0e602e913960400191505060405180910390fd5b600054610100900460ff161580156118fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61190484611fe7565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff88161790558381556000848152603460205260409020556032829055611983336119b9565b80156119b257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006119c3610d8b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a1957506000611a01610d8b565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611a8757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216611b0957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611beb610c1f565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611c2c8161217b565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff16611c5882856121cc565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b8260005b6020811015611d1b57600183821c166000858360208110611c9957fe5b602002015190508160011415611cdf5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611d11565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611c7c565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611db364ffffffffff85168284612266565b95945050505050565b600080611dc8836122bc565b6bffffffffffffffffffffffff1690506000611de3846122d0565b6bffffffffffffffffffffffff169091209392505050565b60006114017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602860046122e4565b6000611401611e3a83612305565b612336565b60006114017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260046122e4565b60006114017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612339565b6000611401604c80611ed37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166122d0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff919091160360006124e4565b6060600080611f1f846122d0565b6bffffffffffffffffffffffff1690506040519150819250611f44848360200161256a565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b6000611fe130612696565b15905090565b600054610100900460ff16806120005750612000611fd6565b8061200e575060005460ff16155b612063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e0e602e913960400191505060405180910390fd5b600054610100900460ff161580156120c957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561151c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461223e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61225c8682858561269c565b9695505050505050565b600080612273848461288a565b9050604051811115612283575060005b806122b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610c12565b611db38585856128fc565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b60008160200360080260ff166122fb858585612339565b901c949350505050565b60006114017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020612339565b90565b600060ff821661234b57506000610c12565b612354846122d0565b6bffffffffffffffffffffffff1661236f8460ff851661288a565b111561244e576123b0612381856122bc565b6bffffffffffffffffffffffff16612398866122d0565b6bffffffffffffffffffffffff16858560ff1661290f565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124135781810151838201526020016123fb565b50505050905090810190601f1680156124405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156124ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612e5e603a913960400191505060405180910390fd5b6008820260006124ba866122bc565b6bffffffffffffffffffffffff16905060006124d583612a6a565b91909501511695945050505050565b6000806124f0866122bc565b6bffffffffffffffffffffffff16905061250986612ab3565b61251d85612517848961288a565b9061288a565b111561254c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061143d565b612556818661288a565b905061225c8364ffffffffff168286612266565b600061257583612add565b6125ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612e986028913960400191505060405180910390fd5b6125d383612aef565b612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612ec0602b913960400191505060405180910390fd5b6000612633846122d0565b6bffffffffffffffffffffffff169050600061264e856122bc565b6bffffffffffffffffffffffff16905060006040519050848111156126735760206060fd5b8285848460045afa5061225c61268887612b2c565b64ffffffffff1686856128fc565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612717576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612dcb6022913960400191505060405180910390fd5b8360ff16601b148061272c57508360ff16601c145b612781576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e3c6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156127dd573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611db357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b8181018281101561140157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b6060600061291c86612b32565b915050600061292a86612b32565b915050600061293886612b32565b915050600061294686612b32565b915050838383836040516020018080612eeb603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612ded82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612abe826122d0565b612ac7836122bc565b016bffffffffffffffffffffffff169050919050565b6000612ae882612c06565b1592915050565b6000612afa82612b2c565b64ffffffffff1664ffffffffff1415612b155750600061155b565b6000612b2083612ab3565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff161115612b9a5760ff600882021684901c612b5781612c2e565b61ffff16841793508160ff16601014612b7257601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612b38565b50600f5b60ff8160ff161015612c005760ff600882021684901c612bbd81612c2e565b61ffff16831792508160ff16600014612bd857601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612b9e565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000612c4060048360ff16901c612c5e565b60ff161760081b62ffff0016612c5582612c5e565b60ff1617919050565b600060f08083179060ff82161415612c7a57603091505061155b565b8060ff1660f11415612c9057603191505061155b565b8060ff1660f21415612ca657603291505061155b565b8060ff1660f31415612cbc57603391505061155b565b8060ff1660f41415612cd257603491505061155b565b8060ff1660f51415612ce857603591505061155b565b8060ff1660f61415612cfe57603691505061155b565b8060ff1660f71415612d1457603791505061155b565b8060ff1660f81415612d2a57603891505061155b565b8060ff1660f91415612d4057603991505061155b565b8060ff1660fa1415612d5657606191505061155b565b8060ff1660fb1415612d6c57606291505061155b565b8060ff1660fc1415612d8257606391505061155b565b8060ff1660fd1415612d9857606491505061155b565b8060ff1660fe1415612dae57606591505061155b565b8060ff1660ff1415612dc457606691505061155b565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220882c6b205b30881e1d3d08b2101ae35357762405a7d9ceeb3fb3f4cb0b86bfd164736f6c63430007060033"; + +export class TestReplica__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + arg1: BigNumberish, + arg2: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _localDomain, + arg1, + arg2, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + arg1: BigNumberish, + arg2: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _localDomain, + arg1, + arg2, + overrides || {} + ); + } + attach(address: string): TestReplica { + return super.attach(address) as TestReplica; + } + connect(signer: Signer): TestReplica__factory { + return super.connect(signer) as TestReplica__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestReplicaInterface { + return new utils.Interface(_abi) as TestReplicaInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestReplica { + return new Contract(address, _abi, signerOrProvider) as TestReplica; + } +} diff --git a/solidity/abacus-core/typechain/factories/TestXAppConnectionManager__factory.ts b/solidity/abacus-core/typechain/factories/TestXAppConnectionManager__factory.ts new file mode 100644 index 000000000..a51f46735 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TestXAppConnectionManager__factory.ts @@ -0,0 +1,405 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + TestXAppConnectionManager, + TestXAppConnectionManagerInterface, +} from "../TestXAppConnectionManager"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "replica", + type: "address", + }, + ], + name: "ReplicaEnrolled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "replica", + type: "address", + }, + ], + name: "ReplicaUnenrolled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "watcher", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "access", + type: "bool", + }, + ], + name: "WatcherPermissionSet", + type: "event", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "domainToReplica", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "home", + outputs: [ + { + internalType: "contract Home", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + ], + name: "isReplica", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "ownerEnrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + ], + name: "ownerUnenrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "replicaToDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_home", + type: "address", + }, + ], + name: "setHome", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_watcher", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bool", + name: "_access", + type: "bool", + }, + ], + name: "setWatcherPermission", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "address", + name: "_replica", + type: "address", + }, + { + internalType: "address", + name: "_updater", + type: "address", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "testRecoverWatcherFromSig", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_updater", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "unenrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_watcher", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "watcherPermission", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6115828061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b9cff16211610066578063b9cff1621461039d578063e0e7a913146103c0578063f2fde38b14610478578063f31faefb146104ab576100f5565b80638da5cb5b146103135780638f5d90e01461031b578063916c34701461034e5780639fa92f9d14610395576100f5565b80635f8b1dba116100d35780635f8b1dba146102825780636ef0f37f146102ce578063715018a6146103035780638d3638f41461030b576100f5565b806323738500146100fa578063427ebef5146101fc5780635190bc531461024f575b600080fd5b6101d36004803603608081101561011057600080fd5b63ffffffff8235169173ffffffffffffffffffffffffffffffffffffffff60208201358116926040830135909116919081019060808101606082013564010000000081111561015e57600080fd5b82018360208201111561017057600080fd5b8035906020019184600183028401116401000000008311171561019257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104ea945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023b6004803603604081101561021257600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610511565b604080519115158252519081900360200190f35b61023b6004803603602081101561026557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610551565b6102b56004803603602081101561029857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610581565b6040805163ffffffff9092168252519081900360200190f35b610301600480360360208110156102e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610599565b005b610301610688565b6102b561079f565b6101d361083b565b6103016004803603602081101561033157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610857565b6103016004803603606081101561036457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff6020820135169060400135151561090b565b6101d3610a59565b6101d3600480360360208110156103b357600080fd5b503563ffffffff16610a75565b610301600480360360608110156103d657600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a9d945050505050565b6103016004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d16565b610301600480360360408110156104c157600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610eb7565b6000610508856104f98661102b565b6105028661102b565b85611044565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b6105a161113a565b73ffffffffffffffffffffffffffffffffffffffff166105bf61083b565b73ffffffffffffffffffffffffffffffffffffffff161461064157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61069061113a565b73ffffffffffffffffffffffffffffffffffffffff166106ae61083b565b73ffffffffffffffffffffffffffffffffffffffff161461073057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61085f61113a565b73ffffffffffffffffffffffffffffffffffffffff1661087d61083b565b73ffffffffffffffffffffffffffffffffffffffff16146108ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109088161113e565b50565b61091361113a565b73ffffffffffffffffffffffffffffffffffffffff1661093161083b565b73ffffffffffffffffffffffffffffffffffffffff16146109b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b3557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610b3e83611206565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610c4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610c5e85610c578461102b565b8686611044565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610d0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610d0f8261113e565b5050505050565b610d1e61113a565b73ffffffffffffffffffffffffffffffffffffffff16610d3c61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610dbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610e2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114e36026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ebf61113a565b73ffffffffffffffffffffffffffffffffffffffff16610edd61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f688261113e565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061105085611206565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109557600080fd5b505afa1580156110a9573d6000803e3d6000fd5b505050506040513d60208110156110bf57600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b16828401526044808301899052835180840390910181526064909201909252805191012090915061112381611209565b905061112f818561125a565b979650505050505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146112cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6112ea868285856112f4565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561136f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115096022913960400191505060405180910390fd5b8360ff16601b148061138457508360ff16601c145b6113d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061152b6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611435573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661050857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220b71915eb199ce2a3040a136b927f60cecd28c12b61b850952dc5dec161d97be464736f6c63430007060033"; + +export class TestXAppConnectionManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TestXAppConnectionManager { + return super.attach(address) as TestXAppConnectionManager; + } + connect(signer: Signer): TestXAppConnectionManager__factory { + return super.connect(signer) as TestXAppConnectionManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestXAppConnectionManagerInterface { + return new utils.Interface(_abi) as TestXAppConnectionManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestXAppConnectionManager { + return new Contract( + address, + _abi, + signerOrProvider + ) as TestXAppConnectionManager; + } +} diff --git a/solidity/abacus-core/typechain/factories/TypedMemView__factory.ts b/solidity/abacus-core/typechain/factories/TypedMemView__factory.ts new file mode 100644 index 000000000..67bc8b69f --- /dev/null +++ b/solidity/abacus-core/typechain/factories/TypedMemView__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TypedMemView, TypedMemViewInterface } from "../TypedMemView"; + +const _abi = [ + { + inputs: [], + name: "NULL", + outputs: [ + { + internalType: "bytes29", + name: "", + type: "bytes29", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60cd610025600b82828239805160001a60731461001857fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063f26be3fc146038575b600080fd5b603e6073565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092168252519081900360200190f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008156fea2646970667358221220b07daa2cfa732a0712e14f333f7fb26a0736db4a4fce155c515a5dd1fc062de564736f6c63430007060033"; + +export class TypedMemView__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TypedMemView { + return super.attach(address) as TypedMemView; + } + connect(signer: Signer): TypedMemView__factory { + return super.connect(signer) as TypedMemView__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TypedMemViewInterface { + return new utils.Interface(_abi) as TypedMemViewInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TypedMemView { + return new Contract(address, _abi, signerOrProvider) as TypedMemView; + } +} diff --git a/solidity/abacus-core/typechain/factories/UpdaterManager__factory.ts b/solidity/abacus-core/typechain/factories/UpdaterManager__factory.ts new file mode 100644 index 000000000..a78be4806 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/UpdaterManager__factory.ts @@ -0,0 +1,202 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + Contract, + ContractFactory, + PayableOverrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UpdaterManager, + UpdaterManagerInterface, +} from "../UpdaterManager"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_updaterAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "reporter", + type: "address", + }, + ], + name: "FakeSlashed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "home", + type: "address", + }, + ], + name: "NewHome", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_home", + type: "address", + }, + ], + name: "setHome", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updaterAddress", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address payable", + name: "_reporter", + type: "address", + }, + ], + name: "slashUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60806040526040516109663803806109668339818101604052602081101561002657600080fd5b505160006100326100a1565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b03929092169190911790556100a5565b3390565b6108b2806100b46000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f25780639d54f41914610123578063df034cd014610156578063f2fde38b1461015e5761007d565b80635b3c2cbf146100825780636ef0f37f146100b7578063715018a6146100ea575b600080fd5b6100b56004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610191565b005b6100b5600480360360208110156100cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610263565b6100b56103f8565b6100fa61050f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b56004803603602081101561013957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661052b565b6100fa61068f565b6100b56004803603602081101561017457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ab565b60015473ffffffffffffffffffffffffffffffffffffffff16331461021757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21686f6d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f4180932f5f5f11458bcd408e42c54626987799e7c4c89f40f484fefdfdfff14f9181900360200190a150565b61026b61084c565b73ffffffffffffffffffffffffffffffffffffffff1661028961050f565b73ffffffffffffffffffffffffffffffffffffffff161461030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61031481610850565b61037f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f21636f6e747261637420686f6d65000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fa6c230e5615262e310dcb42eaf014e813e5d8580abf5b00d2186ca8e9833de219181900360200190a150565b61040061084c565b73ffffffffffffffffffffffffffffffffffffffff1661041e61050f565b73ffffffffffffffffffffffffffffffffffffffff16146104a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61053361084c565b73ffffffffffffffffffffffffffffffffffffffff1661055161050f565b73ffffffffffffffffffffffffffffffffffffffff16146105d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600154604080517f9d54f419000000000000000000000000000000000000000000000000000000008152600481019390935251921691639d54f4199160248082019260009290919082900301818387803b15801561067457600080fd5b505af1158015610688573d6000803e3d6000fd5b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6106b361084c565b73ffffffffffffffffffffffffffffffffffffffff166106d161050f565b73ffffffffffffffffffffffffffffffffffffffff161461075357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108576026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212206a89c5c4e18144cd4168abe90868abf0d0cd57bdd92b36ff23b682243dda36c064736f6c63430007060033"; + +export class UpdaterManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _updaterAddress: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _updaterAddress, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _updaterAddress: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_updaterAddress, overrides || {}); + } + attach(address: string): UpdaterManager { + return super.attach(address) as UpdaterManager; + } + connect(signer: Signer): UpdaterManager__factory { + return super.connect(signer) as UpdaterManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UpdaterManagerInterface { + return new utils.Interface(_abi) as UpdaterManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UpdaterManager { + return new Contract(address, _abi, signerOrProvider) as UpdaterManager; + } +} diff --git a/solidity/abacus-core/typechain/factories/UpgradeBeaconController__factory.ts b/solidity/abacus-core/typechain/factories/UpgradeBeaconController__factory.ts new file mode 100644 index 000000000..1c5ea8d70 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/UpgradeBeaconController__factory.ts @@ -0,0 +1,143 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UpgradeBeaconController, + UpgradeBeaconControllerInterface, +} from "../UpgradeBeaconController"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "beacon", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "BeaconUpgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_beacon", + type: "address", + }, + { + internalType: "address", + name: "_implementation", + type: "address", + }, + ], + name: "upgrade", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6106b98061007d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063715018a6146100515780638da5cb5b1461005b57806399a88ec41461008c578063f2fde38b146100c7575b600080fd5b6100596100fa565b005b610063610211565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610059600480360360408110156100a257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661022d565b610059600480360360208110156100dd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104b2565b610102610653565b73ffffffffffffffffffffffffffffffffffffffff16610120610211565b73ffffffffffffffffffffffffffffffffffffffff16146101a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610235610653565b73ffffffffffffffffffffffffffffffffffffffff16610253610211565b73ffffffffffffffffffffffffffffffffffffffff16146102d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6102de82610657565b61034957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f626561636f6e2021636f6e747261637400000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051602001808273ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106103e557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610447576040519150601f19603f3d011682016040523d82523d6000602084013e61044c565b606091505b505090508061045f573d6000803e3d6000fd5b6040805173ffffffffffffffffffffffffffffffffffffffff84811682529151918516917fc945ae30494f6ee00b9e4bf1fec5653ced7244b559666f44f9a88ea732e957b09181900360200190a2505050565b6104ba610653565b73ffffffffffffffffffffffffffffffffffffffff166104d8610211565b73ffffffffffffffffffffffffffffffffffffffff161461055a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166105c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061065e6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a264697066735822122037b6854cc29d6915711f7e0e3bd20ec11dc989d231d211f19f09c69f5386505e64736f6c63430007060033"; + +export class UpgradeBeaconController__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): UpgradeBeaconController { + return super.attach(address) as UpgradeBeaconController; + } + connect(signer: Signer): UpgradeBeaconController__factory { + return super.connect(signer) as UpgradeBeaconController__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UpgradeBeaconControllerInterface { + return new utils.Interface(_abi) as UpgradeBeaconControllerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UpgradeBeaconController { + return new Contract( + address, + _abi, + signerOrProvider + ) as UpgradeBeaconController; + } +} diff --git a/solidity/abacus-core/typechain/factories/UpgradeBeaconProxy__factory.ts b/solidity/abacus-core/typechain/factories/UpgradeBeaconProxy__factory.ts new file mode 100644 index 000000000..1c5fe21e3 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/UpgradeBeaconProxy__factory.ts @@ -0,0 +1,93 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BytesLike, + Contract, + ContractFactory, + PayableOverrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UpgradeBeaconProxy, + UpgradeBeaconProxyInterface, +} from "../UpgradeBeaconProxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_upgradeBeacon", + type: "address", + }, + { + internalType: "bytes", + name: "_initializationCalldata", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + stateMutability: "payable", + type: "fallback", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea264697066735822122045e2978eb512ee336ea17d3aebe82e86ec3eccf27a023a07f6c24bd7e9b53c8e64736f6c63430007060033"; + +export class UpgradeBeaconProxy__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _upgradeBeacon: string, + _initializationCalldata: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _upgradeBeacon, + _initializationCalldata, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _upgradeBeacon: string, + _initializationCalldata: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _upgradeBeacon, + _initializationCalldata, + overrides || {} + ); + } + attach(address: string): UpgradeBeaconProxy { + return super.attach(address) as UpgradeBeaconProxy; + } + connect(signer: Signer): UpgradeBeaconProxy__factory { + return super.connect(signer) as UpgradeBeaconProxy__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UpgradeBeaconProxyInterface { + return new utils.Interface(_abi) as UpgradeBeaconProxyInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UpgradeBeaconProxy { + return new Contract(address, _abi, signerOrProvider) as UpgradeBeaconProxy; + } +} diff --git a/solidity/abacus-core/typechain/factories/UpgradeBeacon__factory.ts b/solidity/abacus-core/typechain/factories/UpgradeBeacon__factory.ts new file mode 100644 index 000000000..f35bfd286 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/UpgradeBeacon__factory.ts @@ -0,0 +1,98 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + Contract, + ContractFactory, + PayableOverrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { UpgradeBeacon, UpgradeBeaconInterface } from "../UpgradeBeacon"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_initialImplementation", + type: "address", + }, + { + internalType: "address", + name: "_controller", + type: "address", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgrade", + type: "event", + }, + { + stateMutability: "payable", + type: "fallback", + }, +]; + +const _bytecode = + "0x60a060405260405161036d38038061036d8339818101604052604081101561002657600080fd5b5080516020909101516100388261004e565b60601b6001600160601b0319166080525061014e565b6000546001600160a01b038281169116141561009c576040805162461bcd60e51b8152602060048201526008602482015267217570677261646560c01b604482015290519081900360640190fd5b6100af8161014860201b6101c71760201c565b610100576040805162461bcd60e51b815260206004820152601860248201527f696d706c656d656e746174696f6e2021636f6e74726163740000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560405190917ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d91a250565b3b151590565b60805160601c61020361016a60003980601c52506102036000f3fe60806040523373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461004d5760005460005260206000f35b6000356100598161005c565b50005b60005473ffffffffffffffffffffffffffffffffffffffff828116911614156100e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2175706772616465000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6100ef816101c7565b61015a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696d706c656d656e746174696f6e2021636f6e74726163740000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d91a250565b3b15159056fea2646970667358221220f8dead67a094ec1890f3d64fa226c417203cec9094811630e9e9287dc2881a1d64736f6c63430007060033"; + +export class UpgradeBeacon__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _initialImplementation: string, + _controller: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _initialImplementation, + _controller, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _initialImplementation: string, + _controller: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _initialImplementation, + _controller, + overrides || {} + ); + } + attach(address: string): UpgradeBeacon { + return super.attach(address) as UpgradeBeacon; + } + connect(signer: Signer): UpgradeBeacon__factory { + return super.connect(signer) as UpgradeBeacon__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UpgradeBeaconInterface { + return new utils.Interface(_abi) as UpgradeBeaconInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UpgradeBeacon { + return new Contract(address, _abi, signerOrProvider) as UpgradeBeacon; + } +} diff --git a/solidity/abacus-core/typechain/factories/Version0__factory.ts b/solidity/abacus-core/typechain/factories/Version0__factory.ts new file mode 100644 index 000000000..7b13ca0c7 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/Version0__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Version0, Version0Interface } from "../Version0"; + +const _abi = [ + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x6080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063ffa1ad7414602d575b600080fd5b60336049565b6040805160ff9092168252519081900360200190f35b60008156fea2646970667358221220e241524a04a589fc0740f410cf7e79a1c2e9c6b3aed0530d40cd2999ecbe20d364736f6c63430007060033"; + +export class Version0__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): Version0 { + return super.attach(address) as Version0; + } + connect(signer: Signer): Version0__factory { + return super.connect(signer) as Version0__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): Version0Interface { + return new utils.Interface(_abi) as Version0Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Version0 { + return new Contract(address, _abi, signerOrProvider) as Version0; + } +} diff --git a/solidity/abacus-core/typechain/factories/XAppConnectionManager__factory.ts b/solidity/abacus-core/typechain/factories/XAppConnectionManager__factory.ts new file mode 100644 index 000000000..a8bd4fc79 --- /dev/null +++ b/solidity/abacus-core/typechain/factories/XAppConnectionManager__factory.ts @@ -0,0 +1,371 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + XAppConnectionManager, + XAppConnectionManagerInterface, +} from "../XAppConnectionManager"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "replica", + type: "address", + }, + ], + name: "ReplicaEnrolled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "replica", + type: "address", + }, + ], + name: "ReplicaUnenrolled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "watcher", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "access", + type: "bool", + }, + ], + name: "WatcherPermissionSet", + type: "event", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "domainToReplica", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "home", + outputs: [ + { + internalType: "contract Home", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + ], + name: "isReplica", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "ownerEnrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + ], + name: "ownerUnenrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "replicaToDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_home", + type: "address", + }, + ], + name: "setHome", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_watcher", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bool", + name: "_access", + type: "bool", + }, + ], + name: "setWatcherPermission", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_updater", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "unenrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_watcher", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "watcherPermission", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220be451a4f4e7d1878f1a90fa951463423ef35b668327544556fbec063e867265064736f6c63430007060033"; + +export class XAppConnectionManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): XAppConnectionManager { + return super.attach(address) as XAppConnectionManager; + } + connect(signer: Signer): XAppConnectionManager__factory { + return super.connect(signer) as XAppConnectionManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): XAppConnectionManagerInterface { + return new utils.Interface(_abi) as XAppConnectionManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): XAppConnectionManager { + return new Contract( + address, + _abi, + signerOrProvider + ) as XAppConnectionManager; + } +} diff --git a/solidity/abacus-core/typechain/hardhat.d.ts b/solidity/abacus-core/typechain/hardhat.d.ts new file mode 100644 index 000000000..6800b388a --- /dev/null +++ b/solidity/abacus-core/typechain/hardhat.d.ts @@ -0,0 +1,171 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { ethers } from "ethers"; +import { + FactoryOptions, + HardhatEthersHelpers as HardhatEthersHelpersBase, +} from "@nomiclabs/hardhat-ethers/types"; + +import * as Contracts from "."; + +declare module "hardhat/types/runtime" { + interface HardhatEthersHelpers extends HardhatEthersHelpersBase { + getContractFactory( + name: "OwnableUpgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Ownable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TypedMemView", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Common", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "GovernanceRouter", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Home", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MerkleTreeManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "QueueManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Replica", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BadRecipient1", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BadRecipient2", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BadRecipient3", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BadRecipient4", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BadRecipient5", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BadRecipient6", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BadRecipientHandle", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MysteryMath", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MysteryMathV1", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MysteryMathV2", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestCommon", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestGovernanceRouter", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestHome", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestMerkle", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestMessage", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestQueue", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestRecipient", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestReplica", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestXAppConnectionManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UpdaterManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UpgradeBeacon", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UpgradeBeaconController", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UpgradeBeaconProxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Version0", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "XAppConnectionManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IMessageRecipient", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUpdaterManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + + // default types + getContractFactory( + name: string, + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + abi: any[], + bytecode: ethers.utils.BytesLike, + signer?: ethers.Signer + ): Promise; + } +} diff --git a/solidity/abacus-core/typechain/index.ts b/solidity/abacus-core/typechain/index.ts new file mode 100644 index 000000000..0bc4f9c39 --- /dev/null +++ b/solidity/abacus-core/typechain/index.ts @@ -0,0 +1,76 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { OwnableUpgradeable } from "./OwnableUpgradeable"; +export type { Ownable } from "./Ownable"; +export type { TypedMemView } from "./TypedMemView"; +export type { Common } from "./Common"; +export type { GovernanceRouter } from "./GovernanceRouter"; +export type { Home } from "./Home"; +export type { MerkleTreeManager } from "./MerkleTreeManager"; +export type { QueueManager } from "./QueueManager"; +export type { Replica } from "./Replica"; +export type { BadRecipient1 } from "./BadRecipient1"; +export type { BadRecipient2 } from "./BadRecipient2"; +export type { BadRecipient3 } from "./BadRecipient3"; +export type { BadRecipient4 } from "./BadRecipient4"; +export type { BadRecipient5 } from "./BadRecipient5"; +export type { BadRecipient6 } from "./BadRecipient6"; +export type { BadRecipientHandle } from "./BadRecipientHandle"; +export type { MysteryMath } from "./MysteryMath"; +export type { MysteryMathV1 } from "./MysteryMathV1"; +export type { MysteryMathV2 } from "./MysteryMathV2"; +export type { TestCommon } from "./TestCommon"; +export type { TestGovernanceRouter } from "./TestGovernanceRouter"; +export type { TestHome } from "./TestHome"; +export type { TestMerkle } from "./TestMerkle"; +export type { TestMessage } from "./TestMessage"; +export type { TestQueue } from "./TestQueue"; +export type { TestRecipient } from "./TestRecipient"; +export type { TestReplica } from "./TestReplica"; +export type { TestXAppConnectionManager } from "./TestXAppConnectionManager"; +export type { UpdaterManager } from "./UpdaterManager"; +export type { UpgradeBeacon } from "./UpgradeBeacon"; +export type { UpgradeBeaconController } from "./UpgradeBeaconController"; +export type { UpgradeBeaconProxy } from "./UpgradeBeaconProxy"; +export type { Version0 } from "./Version0"; +export type { XAppConnectionManager } from "./XAppConnectionManager"; +export type { IMessageRecipient } from "./IMessageRecipient"; +export type { IUpdaterManager } from "./IUpdaterManager"; + +export { OwnableUpgradeable__factory } from "./factories/OwnableUpgradeable__factory"; +export { Ownable__factory } from "./factories/Ownable__factory"; +export { TypedMemView__factory } from "./factories/TypedMemView__factory"; +export { Common__factory } from "./factories/Common__factory"; +export { GovernanceRouter__factory } from "./factories/GovernanceRouter__factory"; +export { Home__factory } from "./factories/Home__factory"; +export { MerkleTreeManager__factory } from "./factories/MerkleTreeManager__factory"; +export { QueueManager__factory } from "./factories/QueueManager__factory"; +export { Replica__factory } from "./factories/Replica__factory"; +export { BadRecipient1__factory } from "./factories/BadRecipient1__factory"; +export { BadRecipient2__factory } from "./factories/BadRecipient2__factory"; +export { BadRecipient3__factory } from "./factories/BadRecipient3__factory"; +export { BadRecipient4__factory } from "./factories/BadRecipient4__factory"; +export { BadRecipient5__factory } from "./factories/BadRecipient5__factory"; +export { BadRecipient6__factory } from "./factories/BadRecipient6__factory"; +export { BadRecipientHandle__factory } from "./factories/BadRecipientHandle__factory"; +export { MysteryMath__factory } from "./factories/MysteryMath__factory"; +export { MysteryMathV1__factory } from "./factories/MysteryMathV1__factory"; +export { MysteryMathV2__factory } from "./factories/MysteryMathV2__factory"; +export { TestCommon__factory } from "./factories/TestCommon__factory"; +export { TestGovernanceRouter__factory } from "./factories/TestGovernanceRouter__factory"; +export { TestHome__factory } from "./factories/TestHome__factory"; +export { TestMerkle__factory } from "./factories/TestMerkle__factory"; +export { TestMessage__factory } from "./factories/TestMessage__factory"; +export { TestQueue__factory } from "./factories/TestQueue__factory"; +export { TestRecipient__factory } from "./factories/TestRecipient__factory"; +export { TestReplica__factory } from "./factories/TestReplica__factory"; +export { TestXAppConnectionManager__factory } from "./factories/TestXAppConnectionManager__factory"; +export { UpdaterManager__factory } from "./factories/UpdaterManager__factory"; +export { UpgradeBeacon__factory } from "./factories/UpgradeBeacon__factory"; +export { UpgradeBeaconController__factory } from "./factories/UpgradeBeaconController__factory"; +export { UpgradeBeaconProxy__factory } from "./factories/UpgradeBeaconProxy__factory"; +export { Version0__factory } from "./factories/Version0__factory"; +export { XAppConnectionManager__factory } from "./factories/XAppConnectionManager__factory"; +export { IMessageRecipient__factory } from "./factories/IMessageRecipient__factory"; +export { IUpdaterManager__factory } from "./factories/IUpdaterManager__factory"; diff --git a/solidity/abacus-xapps/.prettierrc b/solidity/abacus-xapps/.prettierrc index dc9e8b1f9..bf810e7b0 100644 --- a/solidity/abacus-xapps/.prettierrc +++ b/solidity/abacus-xapps/.prettierrc @@ -1,13 +1,8 @@ { + "tabWidth": 2, + "singleQuote": true, + "trailingComma": "all", "overrides": [ - { - "files": "*.js", - "options": { - "tabWidth": 2, - "singleQuote": true, - "trailingComma": "all" - } - }, { "files": "*.sol", "options": { diff --git a/solidity/abacus-xapps/contracts/bridge/test/MockCore.sol b/solidity/abacus-xapps/contracts/bridge/test/MockCore.sol deleted file mode 100644 index 16a33c169..000000000 --- a/solidity/abacus-xapps/contracts/bridge/test/MockCore.sol +++ /dev/null @@ -1,86 +0,0 @@ -// SPDX-License-Identifier: MIT OR Apache-2.0 -pragma solidity >=0.6.11; - -import {MerkleTreeManager} from "@abacus-network/abacus-sol/contracts/Merkle.sol"; -import {QueueManager} from "@abacus-network/abacus-sol/contracts/Queue.sol"; - -import {Message} from "@abacus-network/abacus-sol/libs/Message.sol"; -import {MerkleLib} from "@abacus-network/abacus-sol/libs/Merkle.sol"; -import {QueueLib} from "@abacus-network/abacus-sol/libs/Queue.sol"; - -// We reproduce a significant amount of logic from `Home` to ensure that -// calling dispatch here is AT LEAST AS EXPENSIVE as calling it on home -contract MockCore is MerkleTreeManager, QueueManager { - using QueueLib for QueueLib.Queue; - using MerkleLib for MerkleLib.Tree; - - uint256 public constant MAX_MESSAGE_BODY_BYTES = 2 * 2**10; - - event Enqueue( - uint32 indexed _destination, - bytes32 indexed _recipient, - bytes _body - ); - event Dispatch( - uint256 indexed leafIndex, - uint64 indexed destinationAndNonce, - bytes32 indexed leaf, - bytes message - ); - - mapping(uint32 => uint32) public nonces; - - function localDomain() public pure returns (uint32) { - return 5; - } - - function home() external view returns (address) { - return address(this); - } - - // We reproduce the logic here to simulate - function dispatch( - uint32 _destination, - bytes32 _recipient, - bytes calldata _body - ) external { - require(_body.length <= MAX_MESSAGE_BODY_BYTES, "!too big"); - uint32 _nonce = nonces[_destination]; - - bytes memory _message = Message.formatMessage( - localDomain(), - bytes32(uint256(uint160(msg.sender))), - _nonce, - _destination, - _recipient, - _body - ); - bytes32 _leaf = keccak256(_message); - - tree.insert(_leaf); - queue.enqueue(root()); - - // leafIndex is count() - 1 since new leaf has already been inserted - emit Dispatch( - count() - 1, - _destinationAndNonce(_destination, _nonce), - _leaf, - _message - ); - emit Enqueue(_destination, _recipient, _body); - - nonces[_destination] = _nonce + 1; - } - - function isReplica(address) public pure returns (bool) { - return true; - } - - function _destinationAndNonce(uint32 _destination, uint32 _nonce) - internal - pure - returns (uint64) - { - return (uint64(_destination) << 32) | _nonce; - } -} diff --git a/solidity/abacus-xapps/hardhat.config.ts b/solidity/abacus-xapps/hardhat.config.ts index 8c93fc7c7..9222d45bf 100644 --- a/solidity/abacus-xapps/hardhat.config.ts +++ b/solidity/abacus-xapps/hardhat.config.ts @@ -1,6 +1,9 @@ import "solidity-coverage"; import "@typechain/hardhat"; import "@nomiclabs/hardhat-etherscan"; +import "@nomiclabs/hardhat-waffle"; +import "hardhat-gas-reporter"; +import './test/lib/index'; import { task } from "hardhat/config"; import { verifyLatestBridgeDeploy } from "../../typescript/abacus-deploy/src/verification/verifyLatestDeploy"; @@ -33,7 +36,9 @@ module.exports = { }, }, }, - + gasReporter: { + currency: "USD", + }, networks: { localhost: { url: "http://localhost:8545", @@ -57,7 +62,7 @@ module.exports = { }, typechain: { - outDir: "../../typescript/typechain/abacus-xapps", + outDir: "./typechain", target: "ethers-v5", alwaysGenerateOverloads: false, // should overloads with full signatures like deposit(uint256) be generated always, even if there are no overloads? }, diff --git a/solidity/abacus-xapps/package.json b/solidity/abacus-xapps/package.json index 09e38f726..d1b661afc 100644 --- a/solidity/abacus-xapps/package.json +++ b/solidity/abacus-xapps/package.json @@ -11,7 +11,8 @@ "eslint": "^7.20.0", "ethereum-waffle": "^3.2.2", "ethers": "^5.4.4", - "hardhat": "^2.0.8", + "hardhat": "^2.8.3", + "hardhat-gas-reporter": "^1.0.7", "prettier": "^2.2.1", "prettier-plugin-solidity": "^1.0.0-beta.5", "solhint": "^3.3.2", @@ -24,12 +25,16 @@ "version": "0.0.0", "description": "A bridge using abacus", "main": " ", + "directories": { + "test": "test" + }, "scripts": { - "prettier": "prettier --write './contracts'", - "compile": "hardhat compile && hardhat typechain && npm run prettier", + "prettier": "prettier --write ./contracts ./test", + "compile": "hardhat compile && hardhat typechain && npm run prettier && npm run copy-typechain", + "copy-typechain": "cp -r typechain/* ../../typescript/typechain/abacus-xapps/", "build": "npm run compile", "coverage": "npm run compile && hardhat coverage", - "test": "cd ../../ && ./scripts/test-solidity.sh", + "test": "hardhat test", "lint": "solhint contracts/*.sol", "lint:fix": "solhint --fix contracts/*.sol", "deploy": "npm run compile && cd ../../typescript/abacus-deploy && npm run deploy-bridge", diff --git a/typescript/abacus-tests/test/bridge/BridgeToken.test.ts b/solidity/abacus-xapps/test/BridgeToken.test.ts similarity index 93% rename from typescript/abacus-tests/test/bridge/BridgeToken.test.ts rename to solidity/abacus-xapps/test/BridgeToken.test.ts index d0959816a..b8e818de8 100644 --- a/typescript/abacus-tests/test/bridge/BridgeToken.test.ts +++ b/solidity/abacus-xapps/test/BridgeToken.test.ts @@ -2,12 +2,9 @@ import { ethers } from 'hardhat'; import { expect } from 'chai'; import { Wallet } from 'ethers'; -import { Signer } from '../../lib/types'; -import { permitDigest } from '../../lib/permit'; -import { - BridgeToken__factory, - BridgeToken, -} from '@abacus-network/ts-interface/dist/abacus-xapps'; +import { Signer } from '@abacus-network/abacus-sol/test/lib/types'; +import { permitDigest } from './lib/permit'; +import { BridgeToken__factory, BridgeToken } from '../typechain'; const VALUE = 100; diff --git a/typescript/abacus-tests/test/bridge/EthHelper.test.ts b/solidity/abacus-xapps/test/EthHelper.test.ts similarity index 50% rename from typescript/abacus-tests/test/bridge/EthHelper.test.ts rename to solidity/abacus-xapps/test/EthHelper.test.ts index 356ac92ae..461b5a764 100644 --- a/typescript/abacus-tests/test/bridge/EthHelper.test.ts +++ b/solidity/abacus-xapps/test/EthHelper.test.ts @@ -1,17 +1,20 @@ -import { ethers, bridge } from 'hardhat'; +import { ethers, bridge, abacus } from 'hardhat'; import { Signer } from 'ethers'; import { expect } from 'chai'; -import * as types from '../../lib/types'; -import { toBytes32 } from '../../lib/utils'; -import TestBridgeDeploy from '../TestBridgeDeploy'; -import { TokenIdentifier } from '@abacus-network/sdk/dist/abacus'; -import { getTestChain } from '../testChain'; +import * as types from './lib/types'; +import { BridgeDeployment } from './lib/BridgeDeployment'; +import { AbacusDeployment } from '@abacus-network/abacus-sol/test/lib/AbacusDeployment'; +import { toBytes32 } from '@abacus-network/abacus-sol/test/lib/utils'; const { BridgeMessageTypes } = bridge; +const localDomain = 1000; +const remoteDomain = 2000; +const domains = [localDomain, remoteDomain]; describe('EthHelper', async () => { - let deploy: TestBridgeDeploy; + let abacusDeployment: AbacusDeployment; + let bridgeDeployment: BridgeDeployment; let deployer: Signer; let deployerAddress: string; @@ -32,11 +35,15 @@ describe('EthHelper', async () => { deployerId = toBytes32(deployerAddress).toLowerCase(); recipientAddress = await recipient.getAddress(); recipientId = toBytes32(recipientAddress).toLowerCase(); - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); + abacusDeployment = await abacus.deployment.fromDomains(domains, deployer); + bridgeDeployment = await BridgeDeployment.fromAbacusDeployment( + abacusDeployment, + deployer, + ); - const tokenId: TokenIdentifier = { - domain: deploy.localDomain, - id: toBytes32(deploy.mockWeth.address), + const tokenId: types.TokenIdentifier = { + domain: localDomain, + id: toBytes32(bridgeDeployment.weth(localDomain).address), }; const transferToSelfMessageObj: types.Message = { tokenId, @@ -60,40 +67,39 @@ describe('EthHelper', async () => { }); it('send function', async () => { - let sendTx = deploy.contracts.ethHelper!.send(deploy.remoteDomain, { + let sendTx = bridgeDeployment.helper(localDomain).send(remoteDomain, { value, }); - await expect(sendTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, transferToSelfMessage); + await expect(sendTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); }); it('sendTo function', async () => { - let sendTx = deploy.contracts.ethHelper!.sendTo( - deploy.remoteDomain, - recipientId, - { + let sendTx = bridgeDeployment + .helper(localDomain) + .sendTo(remoteDomain, recipientId, { value, - }, - ); + }); - await expect(sendTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, transferMessage); + await expect(sendTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); }); it('sendToEVMLike function', async () => { - let sendTx = deploy.contracts.ethHelper!.sendToEVMLike( - deploy.remoteDomain, - recipientAddress, - { + let sendTx = bridgeDeployment + .helper(localDomain) + .sendToEVMLike(remoteDomain, recipientAddress, { value, - }, - ); + }); - await expect(sendTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, transferMessage); + await expect(sendTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); }); }); diff --git a/solidity/abacus-xapps/test/bridge.test.ts b/solidity/abacus-xapps/test/bridge.test.ts new file mode 100644 index 000000000..4f0896e31 --- /dev/null +++ b/solidity/abacus-xapps/test/bridge.test.ts @@ -0,0 +1,830 @@ +import { expect } from 'chai'; +import { ethers, bridge, abacus } from 'hardhat'; +import { BigNumber, BytesLike } from 'ethers'; + +import * as types from './lib/types'; +import { BridgeDeployment } from './lib/BridgeDeployment'; +import { AbacusDeployment } from '@abacus-network/abacus-sol/test/lib/AbacusDeployment'; +import { Signer } from '@abacus-network/abacus-sol/test/lib/types'; +import { + stringToBytes32, + toBytes32, +} from '@abacus-network/abacus-sol/test/lib/utils'; +import { BridgeToken, BridgeToken__factory, IERC20 } from '../typechain'; + +const { BridgeMessageTypes } = bridge; +const localDomain = 1000; +const remoteDomain = 2000; +const domains = [localDomain, remoteDomain]; +const testToken = `0x${'11'.repeat(32)}`; +const testTokenId = { + domain: remoteDomain, + id: testToken, +}; + +describe('BridgeRouter', async () => { + let abacusDeployment: AbacusDeployment; + let bridgeDeployment: BridgeDeployment; + let deployer: Signer; + let deployerAddress: string; + let deployerId: BytesLike; + + const PROTOCOL_PROCESS_GAS = 800_000; + + // Numerical token value + const TOKEN_VALUE = 0xffff; + + before(async () => { + // populate deployer signer + [deployer] = await ethers.getSigners(); + deployerAddress = await deployer.getAddress(); + deployerId = toBytes32(await deployer.getAddress()).toLowerCase(); + abacusDeployment = await abacus.deployment.fromDomains(domains, deployer); + // Enroll ourselves as a replica so we can send messages directly to the + // local router. + await abacusDeployment + .connectionManager(localDomain) + .ownerEnrollReplica(deployerAddress, remoteDomain); + }); + + beforeEach(async () => { + bridgeDeployment = await BridgeDeployment.fromAbacusDeployment( + abacusDeployment, + deployer, + ); + // Enroll ourselves as a router so we can send messages directly to the + // local router. + await bridgeDeployment + .router(localDomain) + .enrollRemoteRouter(remoteDomain, deployerId); + }); + + describe('invalid messages', async () => { + it('rejects invalid messages', async () => { + const handleTx = bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, '0x', { + gasLimit: PROTOCOL_PROCESS_GAS, + }); + await expect(handleTx).to.be.reverted; + }); + }); + + describe('transfer message', async () => { + describe('remotely-originating asset roundtrup', async () => { + let transferMessage: BytesLike; + let repr: IERC20; + let handleTx: any; + + beforeEach(async () => { + // generate transfer action + const transferMessageObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: TOKEN_VALUE, + }, + }; + transferMessage = bridge.serializeMessage(transferMessageObj); + + // Send a message to the local BridgeRouter triggering a BridgeToken + // deployment. + handleTx = await bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, transferMessage, { + gasLimit: PROTOCOL_PROCESS_GAS, + }); + repr = await bridgeDeployment.bridgeToken( + localDomain, + remoteDomain, + testToken, + ); + }); + + it('deploys a token on first inbound transfer', async () => { + await expect(handleTx).to.emit( + bridgeDeployment.router(localDomain), + 'TokenDeployed', + ); + await expect(handleTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); + expect(await repr.balanceOf(deployer.address)).to.equal( + BigNumber.from(TOKEN_VALUE), + ); + expect(await repr.totalSupply()).to.equal(BigNumber.from(TOKEN_VALUE)); + }); + + it('errors on send if ERC20 balance is insufficient', async () => { + const stealTx = bridgeDeployment + .router(localDomain) + .send(repr.address, TOKEN_VALUE * 10, remoteDomain, deployerId); + + await expect(stealTx).to.be.revertedWith( + 'ERC20: burn amount exceeds balance', + ); + }); + + it('errors when missing a remote router', async () => { + expect( + bridgeDeployment + .router(localDomain) + .send(repr.address, TOKEN_VALUE * 10, 121234, deployerId), + ).to.be.revertedWith('!remote'); + }); + + it('errors on send when recipient is the 0 address', async () => { + expect( + bridgeDeployment + .router(localDomain) + .send( + repr.address, + TOKEN_VALUE * 10, + remoteDomain, + `0x${'00'.repeat(32)}`, + ), + ).to.be.revertedWith('!recip'); + }); + + it('errors on send if ERC20 amount is zero', async () => { + const zeroTx = bridgeDeployment + .router(localDomain) + .send(repr.address, 0, remoteDomain, deployerId); + + await expect(zeroTx).to.be.revertedWith('!amnt'); + }); + + it('errors on send if remote router is unknown', async () => { + const unknownRemote = bridgeDeployment + .router(localDomain) + .send(repr.address, 1, 3000, deployerId); + + await expect(unknownRemote).to.be.revertedWith('!remote'); + }); + + it('burns tokens on outbound message', async () => { + // OUTBOUND + const sendTx = bridgeDeployment + .router(localDomain) + .send(repr.address, TOKEN_VALUE, remoteDomain, deployerId); + + await expect(sendTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); + + expect(await repr.totalSupply()).to.equal(BigNumber.from(0)); + }); + + it('errors on outbound messages with not enough balance', async () => { + // OUTBOUND, NOT ENOUGH Tokens + const badTx = bridgeDeployment + .router(localDomain) + .send(repr.address, TOKEN_VALUE + 1, remoteDomain, deployerId); + await expect(badTx).to.be.revertedWith( + 'ERC20: burn amount exceeds balance', + ); + }); + }); + + describe('locally-originating asset roundtrip', async () => { + let transferMessage: string; + let localToken: BridgeToken; + + beforeEach(async () => { + localToken = await new BridgeToken__factory(deployer).deploy(); + await localToken.initialize(); + await localToken.mint(deployerAddress, TOKEN_VALUE); + + // generate protocol messages + const transferMessageObj: types.Message = { + tokenId: { + domain: localDomain, + id: toBytes32(localToken.address), + }, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: TOKEN_VALUE, + }, + }; + transferMessage = bridge.serializeMessage(transferMessageObj); + + expect(await localToken.balanceOf(deployerAddress)).to.equal( + BigNumber.from(TOKEN_VALUE), + ); + expect( + await localToken.balanceOf( + bridgeDeployment.router(localDomain).address, + ), + ).to.equal(BigNumber.from(0)); + }); + + it('errors if the token is not approved', async () => { + // TOKEN NOT APPROVED + const unapproved = bridgeDeployment + .router(localDomain) + .send(localToken.address, 1, remoteDomain, deployerId); + + expect(unapproved).to.be.revertedWith( + 'ERC20: transfer amount exceeds allowance', + ); + expect( + await localToken.balanceOf( + bridgeDeployment.router(localDomain).address, + ), + ).to.equal(BigNumber.from(0)); + }); + + it('errors if insufficient balance', async () => { + await localToken.approve( + bridgeDeployment.router(localDomain).address, + ethers.constants.MaxUint256, + ); + + const badTx = bridgeDeployment + .router(localDomain) + .send(localToken.address, TOKEN_VALUE + 1, remoteDomain, deployerId); + + expect(badTx).to.be.revertedWith( + 'ERC20: transfer amount exceeds balance', + ); + expect( + await localToken.balanceOf( + bridgeDeployment.router(localDomain).address, + ), + ).to.equal(BigNumber.from(0)); + }); + + it('holds tokens on outbound transfer', async () => { + await localToken.approve( + bridgeDeployment.router(localDomain).address, + ethers.constants.MaxUint256, + ); + + const sendTx = await bridgeDeployment + .router(localDomain) + .send(localToken.address, TOKEN_VALUE, remoteDomain, deployerId); + + await expect(sendTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); + + expect( + await localToken.balanceOf( + bridgeDeployment.router(localDomain).address, + ), + ).to.equal(BigNumber.from(TOKEN_VALUE)); + }); + + it('unlocks tokens on inbound transfer', async () => { + await localToken.approve( + bridgeDeployment.router(localDomain).address, + ethers.constants.MaxUint256, + ); + + const sendTx = await bridgeDeployment + .router(localDomain) + .send(localToken.address, TOKEN_VALUE, remoteDomain, deployerId); + + let handleTx = await bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, transferMessage, { + gasLimit: PROTOCOL_PROCESS_GAS, + }); + + expect(handleTx).to.not.emit( + bridgeDeployment.router(localDomain), + 'TokenDeployed', + ); + + expect( + await localToken.balanceOf( + bridgeDeployment.router(localDomain).address, + ), + ).to.equal(BigNumber.from(0)); + + expect(await localToken.balanceOf(deployerAddress)).to.equal( + BigNumber.from(TOKEN_VALUE), + ); + }); + }); + }); + + describe('prefill', async () => { + it('errors for non-existing assets', async () => { + // generate transfer action + const transferMessageObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: TOKEN_VALUE, + }, + }; + const transferMessage = bridge.serializeMessage(transferMessageObj); + + expect( + bridgeDeployment.router(localDomain).preFill(transferMessage), + ).to.be.revertedWith('!token'); + }); + + describe('remotely-originating asset', async () => { + let setupMessage: string; + let repr: IERC20; + let recipient: string; + let recipientId: string; + let transferMessage: string; + + beforeEach(async () => { + // generate actions + recipient = `0x${'00'.repeat(19)}ff`; + recipientId = toBytes32(recipient); + + // transfer message + const transferMessageObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: recipientId, + amount: TOKEN_VALUE, + }, + }; + transferMessage = bridge.serializeMessage(transferMessageObj); + + // setup message + const setupMessageObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: TOKEN_VALUE, + }, + }; + setupMessage = bridge.serializeMessage(setupMessageObj); + + // perform setup + const setupTx = await bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, setupMessage, { + gasLimit: PROTOCOL_PROCESS_GAS, + }); + + await expect(setupTx).to.emit( + bridgeDeployment.router(localDomain), + 'TokenDeployed', + ); + + repr = await bridgeDeployment.bridgeToken( + localDomain, + remoteDomain, + testToken, + ); + + expect(await repr.balanceOf(deployerAddress)).to.equal( + BigNumber.from(TOKEN_VALUE), + ); + await repr.approve( + bridgeDeployment.router(localDomain).address, + ethers.constants.MaxUint256, + ); + }); + + it('transfers tokens on a prefill', async () => { + const prefillTx = await bridgeDeployment + .router(localDomain) + .preFill(transferMessage); + await expect(prefillTx) + .to.emit(repr, 'Transfer') + .withArgs( + deployerAddress, + recipient, + BigNumber.from(TOKEN_VALUE).mul(9995).div(10000), + ); + }); + + it('mints tokens for the liquidity provider on message receipt', async () => { + await bridgeDeployment.router(localDomain).preFill(transferMessage); + let deliver = bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, transferMessage, { + gasLimit: PROTOCOL_PROCESS_GAS, + }); + await expect(deliver) + .to.emit(repr, 'Transfer') + .withArgs(ethers.constants.AddressZero, deployerAddress, TOKEN_VALUE); + }); + }); + + describe('locally-originating asset', async () => { + let localToken: BridgeToken; + let recipient: string; + let recipientId: string; + let transferMessage: string; + + beforeEach(async () => { + localToken = await new BridgeToken__factory(deployer).deploy(); + await localToken.initialize(); + await localToken.mint(deployerAddress, TOKEN_VALUE); + await localToken.mint( + bridgeDeployment.router(localDomain).address, + TOKEN_VALUE, + ); + await localToken.approve( + bridgeDeployment.router(localDomain).address, + ethers.constants.MaxUint256, + ); + + expect(await localToken.balanceOf(deployerAddress)).to.equal( + BigNumber.from(TOKEN_VALUE), + ); + expect( + await localToken.balanceOf( + bridgeDeployment.router(localDomain).address, + ), + ).to.equal(BigNumber.from(TOKEN_VALUE)); + + // generate transfer action + recipient = `0x${'00'.repeat(19)}ff`; + recipientId = toBytes32(recipient); + + const transferMessageObj: types.Message = { + tokenId: { + domain: localDomain, + id: toBytes32(localToken.address), + }, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: recipientId, + amount: TOKEN_VALUE, + }, + }; + transferMessage = bridge.serializeMessage(transferMessageObj); + }); + + it('transfers tokens on prefill', async () => { + const prefillTx = await bridgeDeployment + .router(localDomain) + .preFill(transferMessage); + await expect(prefillTx) + .to.emit(localToken, 'Transfer') + .withArgs( + deployerAddress, + recipient, + BigNumber.from(TOKEN_VALUE).mul(9995).div(10000), + ); + }); + + it('unlocks tokens on message receipt', async () => { + await bridgeDeployment.router(localDomain).preFill(transferMessage); + let deliver = bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, transferMessage, { + gasLimit: PROTOCOL_PROCESS_GAS, + }); + await expect(deliver) + .to.emit(localToken, 'Transfer') + .withArgs( + bridgeDeployment.router(localDomain).address, + deployerAddress, + TOKEN_VALUE, + ); + }); + }); + }); + + describe('details message', async () => { + let localToken: BridgeToken; + let requestMessage: string; + let outgoingDetails: string; + let incomingDetails: string; + let transferMessage: string; + let repr: BridgeToken; + + const TEST_NAME = 'TEST TOKEN'; + const TEST_SYMBOL = 'TEST'; + const TEST_DECIMALS = 8; + + beforeEach(async () => { + localToken = await new BridgeToken__factory(deployer).deploy(); + await localToken.initialize(); + await localToken.setDetails(TEST_NAME, TEST_SYMBOL, TEST_DECIMALS); + + const requestMessageObj: types.Message = { + tokenId: { + domain: localDomain, + id: toBytes32(localToken.address), + }, + action: { + type: BridgeMessageTypes.REQUEST_DETAILS, + }, + }; + requestMessage = bridge.serializeMessage(requestMessageObj); + + const outgoingDetailsObj: types.Message = { + tokenId: { + domain: localDomain, + id: toBytes32(localToken.address), + }, + action: { + type: BridgeMessageTypes.DETAILS, + name: stringToBytes32(TEST_NAME), + symbol: stringToBytes32(TEST_SYMBOL), + decimals: TEST_DECIMALS, + }, + }; + outgoingDetails = bridge.serializeMessage(outgoingDetailsObj); + + // generate transfer action + const transferMessageObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: TOKEN_VALUE, + }, + }; + transferMessage = bridge.serializeMessage(transferMessageObj); + + const incomingDetailsObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.DETAILS, + name: stringToBytes32(TEST_NAME), + symbol: stringToBytes32(TEST_SYMBOL), + decimals: TEST_DECIMALS, + }, + }; + incomingDetails = bridge.serializeMessage(incomingDetailsObj); + + // first send in a transfer to create the repr + await bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, transferMessage); + + repr = await bridgeDeployment.bridgeToken( + localDomain, + remoteDomain, + testToken, + ); + }); + + it('allows admins to dispatch requestDetails', async () => { + const requestTx = await bridgeDeployment + .router(localDomain) + .requestDetails(remoteDomain, testToken); + + const requestDetailsObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.REQUEST_DETAILS, + }, + }; + const requestDetails = bridge.serializeMessage(requestDetailsObj); + + await expect(requestTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); + }); + + it('handles incoming requestDetails by dispatching a details message', async () => { + const handleTx = bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, requestMessage); + + await expect(handleTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); + }); + + it('errors if token is a repr', async () => { + const badRequestObj: types.Message = { + tokenId: { + domain: localDomain, + id: toBytes32(repr.address), + }, + action: { + type: BridgeMessageTypes.REQUEST_DETAILS, + }, + }; + const badRequest = bridge.serializeMessage(badRequestObj); + + let badRequestTx = bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, badRequest); + + await expect(badRequestTx).to.be.revertedWith('!local origin'); + }); + + it('errors if no registered router for response', async () => { + const badRequestObj: types.Message = { + tokenId: { + domain: localDomain, + id: toBytes32(localToken.address), + }, + action: { + type: BridgeMessageTypes.REQUEST_DETAILS, + }, + }; + const badRequest = bridge.serializeMessage(badRequestObj); + + let badRequestTx = bridgeDeployment + .router(localDomain) + .handle(3812, deployerId, badRequest); + + await expect(badRequestTx).to.be.revertedWith('!remote router'); + }); + + it('sets details during details message handling', async () => { + // repr should not be configured + expect((await repr.name()).length).to.equal(15); + expect((await repr.symbol()).length).to.equal(15); + expect(await repr.decimals()).to.equal(18); + + await bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, incomingDetails); + + expect(await repr.name()).to.equal(TEST_NAME); + expect(await repr.symbol()).to.equal(TEST_SYMBOL); + expect(await repr.decimals()).to.equal(TEST_DECIMALS); + }); + }); + + describe('custom token representations', async () => { + let transferMessage: string; + let defaultRepr: BridgeToken; + let customRepr: BridgeToken; + const VALUE = `0xffffffffffffffff`; + + beforeEach(async () => { + // generate transfer action + const transferMessageObj: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: VALUE, + }, + }; + transferMessage = bridge.serializeMessage(transferMessageObj); + + // first send in a transfer to create the repr + await bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, transferMessage); + + defaultRepr = await bridgeDeployment.bridgeToken( + localDomain, + remoteDomain, + testToken, + ); + expect(await defaultRepr.balanceOf(deployerAddress)).to.equal( + BigNumber.from(VALUE), + ); + + // setup custom + customRepr = await new BridgeToken__factory(deployer).deploy(); + await customRepr.initialize(); + expect(await customRepr.balanceOf(deployerAddress)).to.equal( + BigNumber.from(0), + ); + }); + + it('migrate errors if old === new', async () => { + const migrate = bridgeDeployment + .router(localDomain) + .migrate(defaultRepr.address); + await expect(migrate).to.be.revertedWith('!different'); + }); + + it('migrate errors if custom token is not enrolled', async () => { + const migrate = bridgeDeployment + .router(localDomain) + .migrate(customRepr.address); + await expect(migrate).to.be.revertedWith('!repr'); + }); + + it('errors if no mint/burn privileges', async () => { + const enrollTx = bridgeDeployment + .router(localDomain) + .enrollCustom(remoteDomain, testToken, customRepr.address); + + await expect(enrollTx).to.be.revertedWith( + 'Ownable: caller is not the owner', + ); + }); + describe('when registering a custom token', () => { + beforeEach(async () => { + await customRepr.transferOwnership( + bridgeDeployment.router(localDomain).address, + ); + + const enrollTx = bridgeDeployment + .router(localDomain) + .enrollCustom(remoteDomain, testToken, customRepr.address); + + await expect(enrollTx).to.not.be.reverted; + }); + + it('registers the custom token', async () => { + expect( + ( + await bridgeDeployment.bridgeToken( + localDomain, + remoteDomain, + testToken, + ) + ).address, + ).to.equal(customRepr.address); + + let [domain, token] = await bridgeDeployment + .router(localDomain) + .getCanonicalAddress(customRepr.address); + expect(domain).to.equal(remoteDomain); + expect(token).to.equal(testToken); + + [domain, token] = await bridgeDeployment + .router(localDomain) + .getCanonicalAddress(defaultRepr.address); + expect(domain).to.equal(remoteDomain); + expect(token).to.equal(testToken); + }); + + describe('when bridging a custom token', () => { + let defaultBalance: BigNumber; + beforeEach(async () => { + defaultBalance = await defaultRepr.balanceOf(deployerAddress); + // first send in a transfer to create the repr + await bridgeDeployment + .router(localDomain) + .handle(remoteDomain, deployerId, transferMessage); + }); + + it('mints incoming tokens in the custom repr', async () => { + // did not mint default + expect(await defaultRepr.balanceOf(deployerAddress)).to.equal( + defaultBalance, + ); + // did mint custom + expect(await customRepr.balanceOf(deployerAddress)).to.equal( + BigNumber.from(VALUE), + ); + }); + + describe('when transferring a custom token', () => { + it('allows outbound transfers of both assets', async () => { + const smallTransfer: types.Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: TOKEN_VALUE, + }, + }; + const smallTransferMessage = bridge.serializeMessage(smallTransfer); + + const defaultSendTx = await bridgeDeployment + .router(localDomain) + .send(defaultRepr.address, TOKEN_VALUE, remoteDomain, deployerId); + await expect(defaultSendTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); + + const customSendTx = await bridgeDeployment + .router(localDomain) + .send(customRepr.address, TOKEN_VALUE, remoteDomain, deployerId); + await expect(customSendTx).to.emit( + abacusDeployment.home(localDomain), + 'Dispatch', + ); + }); + + it('allows users to migrate', async () => { + const defaultBalance = await defaultRepr.balanceOf(deployerAddress); + const customBalance = await customRepr.balanceOf(deployerAddress); + + let migrateTx = bridgeDeployment + .router(localDomain) + .migrate(defaultRepr.address); + + await expect(migrateTx).to.not.be.reverted; + + expect(await defaultRepr.balanceOf(deployerAddress)).to.equal( + ethers.constants.Zero, + ); + expect(await customRepr.balanceOf(deployerAddress)).to.equal( + defaultBalance.add(customBalance), + ); + }); + }); + }); + }); + }); +}); diff --git a/typescript/abacus-tests/test/bridge/bridgeMessage.test.ts b/solidity/abacus-xapps/test/bridgeMessage.test.ts similarity index 74% rename from typescript/abacus-tests/test/bridge/bridgeMessage.test.ts rename to solidity/abacus-xapps/test/bridgeMessage.test.ts index 84692d3e6..8524ddfb8 100644 --- a/typescript/abacus-tests/test/bridge/bridgeMessage.test.ts +++ b/solidity/abacus-xapps/test/bridgeMessage.test.ts @@ -1,16 +1,19 @@ -import { ethers, bridge } from 'hardhat'; -const { BridgeMessageTypes } = bridge; +import { ethers, abacus, bridge } from 'hardhat'; import { BytesLike } from 'ethers'; import { expect } from 'chai'; -import { toBytes32 } from '../../lib/utils'; -import { formatTokenId } from '../../lib/bridge'; -import * as types from '../../lib/types'; +import { toBytes32 } from '@abacus-network/abacus-sol/test/lib/utils'; +import { formatTokenId } from './lib/bridge'; import { - TestBridgeMessage__factory, - TestBridgeMessage, -} from '@abacus-network/ts-interface/dist/abacus-xapps'; -import { TokenIdentifier } from '@abacus-network/sdk/dist/abacus'; + TokenIdentifier, + TransferAction, + DetailsAction, + Message, + RequestDetailsAction, +} from './lib/types'; +import { TestBridgeMessage__factory, TestBridgeMessage } from '../typechain'; + +const { BridgeMessageTypes } = bridge; const stringToBytes32 = (s: string): string => { const str = Buffer.from(s.slice(0, 32), 'utf-8'); @@ -21,66 +24,76 @@ const stringToBytes32 = (s: string): string => { }; describe('BridgeMessage', async () => { - let bridgeMessage: TestBridgeMessage; - const [deployer] = await ethers.getSigners(); - const deployerAddress = await deployer.getAddress(); - const deployerId = toBytes32(deployerAddress).toLowerCase(); - const TOKEN_VALUE = 0xffff; - - // tokenId - const testTokenId: TokenIdentifier = { - domain: 1, - id: '0x' + '11'.repeat(32), - }; - const tokenIdBytes = formatTokenId( - testTokenId.domain as number, - testTokenId.id as string, - ); - - // transfer action/message - const transferAction: types.TransferAction = { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: TOKEN_VALUE, - }; - const transferBytes = bridge.serializeTransferAction(transferAction); - const transferMessage: types.Message = { - tokenId: testTokenId, - action: transferAction, - }; - const transferMessageBytes = bridge.serializeMessage(transferMessage); - - // details action/message - const detailsAction: types.DetailsAction = { - type: BridgeMessageTypes.DETAILS, - name: stringToBytes32('TEST TOKEN'), - symbol: stringToBytes32('TEST'), - decimals: 8, - }; - const detailsBytes = bridge.serializeDetailsAction(detailsAction); - const detailsMessage: types.Message = { - tokenId: testTokenId, - action: detailsAction, - }; - const detailsMessageBytes = bridge.serializeMessage(detailsMessage); - - // requestDetails action/message - const requestDetailsAction: types.RequestDetailsAction = { - type: BridgeMessageTypes.REQUEST_DETAILS, - }; - const requestDetailsBytes = - bridge.serializeRequestDetailsAction(requestDetailsAction); - const requestDetailsMessage: types.Message = { - tokenId: testTokenId, - action: { - type: BridgeMessageTypes.REQUEST_DETAILS, - }, - }; - const requestDetailsMessageBytes = bridge.serializeMessage( - requestDetailsMessage, - ); + let bridgeMessage: TestBridgeMessage, + transferBytes: BytesLike, + detailsBytes: BytesLike, + requestDetailsBytes: BytesLike, + transferMessageBytes: BytesLike, + detailsMessageBytes: BytesLike, + requestDetailsMessageBytes: BytesLike, + transferAction: TransferAction, + detailsAction: DetailsAction, + testTokenId: TokenIdentifier, + deployerAddress: string, + tokenIdBytes: BytesLike; before(async () => { + const [deployer] = await ethers.getSigners(); + deployerAddress = await deployer.getAddress(); + const deployerId = toBytes32(deployerAddress).toLowerCase(); + const TOKEN_VALUE = 0xffff; + + // tokenId + testTokenId = { + domain: 1, + id: '0x' + '11'.repeat(32), + }; + tokenIdBytes = formatTokenId( + testTokenId.domain as number, + testTokenId.id as string, + ); + + // transfer action/message + transferAction = { + type: BridgeMessageTypes.TRANSFER, + recipient: deployerId, + amount: TOKEN_VALUE, + }; + transferBytes = bridge.serializeTransferAction(transferAction); + const transferMessage: Message = { + tokenId: testTokenId, + action: transferAction, + }; + transferMessageBytes = bridge.serializeMessage(transferMessage); + + // details action/message + detailsAction = { + type: BridgeMessageTypes.DETAILS, + name: stringToBytes32('TEST TOKEN'), + symbol: stringToBytes32('TEST'), + decimals: 8, + }; + detailsBytes = bridge.serializeDetailsAction(detailsAction); + const detailsMessage: Message = { + tokenId: testTokenId, + action: detailsAction, + }; + detailsMessageBytes = bridge.serializeMessage(detailsMessage); + + // requestDetails action/message + const requestDetailsAction: RequestDetailsAction = { + type: BridgeMessageTypes.REQUEST_DETAILS, + }; + requestDetailsBytes = + bridge.serializeRequestDetailsAction(requestDetailsAction); + const requestDetailsMessage: Message = { + tokenId: testTokenId, + action: { + type: BridgeMessageTypes.REQUEST_DETAILS, + }, + }; + requestDetailsMessageBytes = bridge.serializeMessage(requestDetailsMessage); + const [signer] = await ethers.getSigners(); const bridgeMessageFactory = new TestBridgeMessage__factory(signer); @@ -216,9 +229,18 @@ describe('BridgeMessage', async () => { it('fails for wrong action type', async () => { const invalidType = '0x00'; - const badTransfer: BytesLike = invalidType + transferBytes.slice(4); - const badDetails: BytesLike = invalidType + detailsBytes.slice(4); - const badRequest: BytesLike = invalidType + requestDetailsBytes.slice(4); + const badTransfer: BytesLike = ethers.utils.hexConcat([ + invalidType, + ethers.utils.hexDataSlice(transferBytes, 1), + ]); + const badDetails: BytesLike = ethers.utils.hexConcat([ + invalidType, + ethers.utils.hexDataSlice(detailsBytes, 1), + ]); + const badRequest: BytesLike = ethers.utils.hexConcat([ + invalidType, + ethers.utils.hexDataSlice(requestDetailsBytes, 1), + ]); const isTransfer = await bridgeMessage.testIsTransfer(badTransfer); expect(isTransfer).to.be.false; diff --git a/typescript/abacus-tests/test/bridge/encoding.test.ts b/solidity/abacus-xapps/test/encoding.test.ts similarity index 61% rename from typescript/abacus-tests/test/bridge/encoding.test.ts rename to solidity/abacus-xapps/test/encoding.test.ts index c3f5e6d9b..4d1f9ec50 100644 --- a/typescript/abacus-tests/test/bridge/encoding.test.ts +++ b/solidity/abacus-xapps/test/encoding.test.ts @@ -1,11 +1,10 @@ import { ethers } from 'hardhat'; - -import * as contracts from '@abacus-network/ts-interface/dist/abacus-xapps'; +import { TestEncoding__factory } from '../typechain'; describe('Encoding', async () => { it('encodes', async () => { const [signer] = await ethers.getSigners(); - const factory = new contracts.TestEncoding__factory(signer); + const factory = new TestEncoding__factory(signer); const instance = await factory.deploy(); await instance.test(); diff --git a/solidity/abacus-xapps/test/lib/BridgeDeployment.ts b/solidity/abacus-xapps/test/lib/BridgeDeployment.ts new file mode 100644 index 000000000..6cb1046bf --- /dev/null +++ b/solidity/abacus-xapps/test/lib/BridgeDeployment.ts @@ -0,0 +1,131 @@ +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { assert } from 'chai'; +import * as ethers from 'ethers'; + +import { AbacusDeployment } from '@abacus-network/abacus-sol/test/lib/AbacusDeployment'; +import { toBytes32 } from '@abacus-network/abacus-sol/test/lib/utils'; +import * as types from '@abacus-network/abacus-sol/test/lib/types'; + +import { + MockWeth__factory, + MockWeth, + BridgeToken, + BridgeToken__factory, + BridgeRouter, + BridgeRouter__factory, + ETHHelper, + ETHHelper__factory, +} from '../../typechain'; +import { + UpgradeBeacon__factory, + UpgradeBeacon, +} from '@abacus-network/abacus-sol/typechain'; + +export interface BridgeInstance { + domain: types.Domain; + router: BridgeRouter; + helper: ETHHelper; + beacon: UpgradeBeacon; + token: BridgeToken; + weth: MockWeth; + signer: ethers.Signer; +} + +export class BridgeDeployment { + constructor( + public readonly domains: types.Domain[], + public readonly instances: Record, + ) {} + + static async fromAbacusDeployment( + abacus: AbacusDeployment, + signer: ethers.Signer, + ) { + const instances: Record = {}; + for (const domain of abacus.domains) { + const instance = await BridgeDeployment.deployInstance( + domain, + signer, + abacus.instances[domain].connectionManager.address, + ); + instances[domain] = instance; + } + + for (const local of abacus.domains) { + for (const remote of abacus.domains) { + if (local !== remote) { + await instances[local].router.enrollRemoteRouter( + remote, + toBytes32(instances[remote].router.address), + ); + } + } + } + return new BridgeDeployment(abacus.domains, instances); + } + + static async deployInstance( + domain: types.Domain, + signer: ethers.Signer, + connectionManagerAddress: types.Address, + ): Promise { + const wethFactory = new MockWeth__factory(signer); + const weth = await wethFactory.deploy(); + await weth.initialize(); + + const tokenFactory = new BridgeToken__factory(signer); + const token = await tokenFactory.deploy(); + await token.initialize(); + + const beaconFactory = new UpgradeBeacon__factory(signer); + const beacon = await beaconFactory.deploy( + token.address, + await signer.getAddress(), + ); + + const routerFactory = new BridgeRouter__factory(signer); + const router = await routerFactory.deploy(); + await router.initialize(beacon.address, connectionManagerAddress); + + const helperFactory = new ETHHelper__factory(signer); + const helper = await helperFactory.deploy(weth.address, router.address); + return { + domain, + beacon, + router, + helper, + token, + weth, + signer, + }; + } + + router(domain: types.Domain): BridgeRouter { + return this.instances[domain].router; + } + + signer(domain: types.Domain): ethers.Signer { + return this.instances[domain].signer; + } + + weth(domain: types.Domain): MockWeth { + return this.instances[domain].weth; + } + + helper(domain: types.Domain): ETHHelper { + return this.instances[domain].helper; + } + + async bridgeToken( + local: types.Domain, + remote: types.Domain, + address: ethers.BytesLike, + ): Promise { + const router = this.router(local); + const reprAddr = await router['getLocalAddress(uint32,bytes32)']( + remote, + address, + ); + return BridgeToken__factory.connect(reprAddr, this.signer(local)); + } +} diff --git a/typescript/abacus-tests/lib/bridge.ts b/solidity/abacus-xapps/test/lib/bridge.ts similarity index 98% rename from typescript/abacus-tests/lib/bridge.ts rename to solidity/abacus-xapps/test/lib/bridge.ts index fb8577525..d97cecc94 100644 --- a/typescript/abacus-tests/lib/bridge.ts +++ b/solidity/abacus-xapps/test/lib/bridge.ts @@ -1,8 +1,8 @@ -import { TokenIdentifier } from '@abacus-network/sdk/dist/abacus'; import { assert } from 'chai'; import { ethers } from 'ethers'; import * as types from './types'; +import { TokenIdentifier } from './types'; export enum BridgeMessageTypes { INVALID = 0, diff --git a/solidity/abacus-xapps/test/lib/index.ts b/solidity/abacus-xapps/test/lib/index.ts new file mode 100644 index 000000000..1af243afb --- /dev/null +++ b/solidity/abacus-xapps/test/lib/index.ts @@ -0,0 +1,12 @@ +import '@nomiclabs/hardhat-waffle'; +import { extendEnvironment } from 'hardhat/config'; + +import { abacus } from '@abacus-network/abacus-sol/test/lib/core'; + +import { bridge } from './bridge'; + +// HardhatRuntimeEnvironment +extendEnvironment((hre) => { + hre.abacus = abacus; + hre.bridge = bridge; +}); diff --git a/typescript/abacus-tests/lib/permit.ts b/solidity/abacus-xapps/test/lib/permit.ts similarity index 94% rename from typescript/abacus-tests/lib/permit.ts rename to solidity/abacus-xapps/test/lib/permit.ts index 27ed135e1..b08841299 100644 --- a/typescript/abacus-tests/lib/permit.ts +++ b/solidity/abacus-xapps/test/lib/permit.ts @@ -1,5 +1,5 @@ import { BigNumber, BigNumberish, ethers } from 'ethers'; -import { BridgeToken } from '@abacus-network/ts-interface/dist/abacus-xapps'; +import { BridgeToken } from '../../typechain'; const PERMIT_TYPEHASH = ethers.utils.keccak256( ethers.utils.toUtf8Bytes( diff --git a/solidity/abacus-xapps/test/lib/types.ts b/solidity/abacus-xapps/test/lib/types.ts new file mode 100644 index 000000000..a348021d3 --- /dev/null +++ b/solidity/abacus-xapps/test/lib/types.ts @@ -0,0 +1,61 @@ +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { BytesLike, ethers } from 'ethers'; +import { BridgeMessageTypes } from './bridge'; + +/********* HRE *********/ +export interface HardhatBridgeHelpers { + BridgeMessageTypes: typeof BridgeMessageTypes; + typeToByte: Function; + MESSAGE_LEN: MessageLen; + serializeTransferAction: Function; + serializeDetailsAction: Function; + serializeRequestDetailsAction: Function; + serializeAction: Function; + serializeTokenId: Function; + serializeMessage: Function; +} + +declare module 'hardhat/types/runtime' { + interface HardhatRuntimeEnvironment { + bridge: HardhatBridgeHelpers; + } +} + +/********* TOKEN BRIDGE *********/ + +export type MessageLen = { + identifier: number; + tokenId: number; + transfer: number; + details: number; + requestDetails: number; +}; + +export type Action = DetailsAction | TransferAction | RequestDetailsAction; + +export type Message = { + tokenId: TokenIdentifier; + action: Action; +}; + +export type TransferAction = { + type: BridgeMessageTypes.TRANSFER; + recipient: ethers.BytesLike; + amount: number | ethers.BytesLike; +}; + +export type DetailsAction = { + type: BridgeMessageTypes.DETAILS; + name: string; + symbol: string; + decimals: number; +}; + +export type RequestDetailsAction = { + type: BridgeMessageTypes.REQUEST_DETAILS; +}; + +export interface TokenIdentifier { + domain: string | number; + id: BytesLike; +} diff --git a/solidity/abacus-xapps/typechain/BridgeRouter.d.ts b/solidity/abacus-xapps/typechain/BridgeRouter.d.ts new file mode 100644 index 000000000..8e4193f57 --- /dev/null +++ b/solidity/abacus-xapps/typechain/BridgeRouter.d.ts @@ -0,0 +1,847 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BridgeRouterInterface extends ethers.utils.Interface { + functions: { + "PRE_FILL_FEE_DENOMINATOR()": FunctionFragment; + "PRE_FILL_FEE_NUMERATOR()": FunctionFragment; + "VERSION()": FunctionFragment; + "canonicalToRepresentation(bytes32)": FunctionFragment; + "enrollCustom(uint32,bytes32,address)": FunctionFragment; + "enrollRemoteRouter(uint32,bytes32)": FunctionFragment; + "getCanonicalAddress(address)": FunctionFragment; + "getLocalAddress(uint32,bytes32)": FunctionFragment; + "handle(uint32,bytes32,bytes)": FunctionFragment; + "initialize(address,address)": FunctionFragment; + "liquidityProvider(bytes32)": FunctionFragment; + "migrate(address)": FunctionFragment; + "owner()": FunctionFragment; + "preFill(bytes)": FunctionFragment; + "remotes(uint32)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "representationToCanonical(address)": FunctionFragment; + "requestDetails(uint32,bytes32)": FunctionFragment; + "send(address,uint256,uint32,bytes32)": FunctionFragment; + "setXAppConnectionManager(address)": FunctionFragment; + "tokenBeacon()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "xAppConnectionManager()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "PRE_FILL_FEE_DENOMINATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PRE_FILL_FEE_NUMERATOR", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "canonicalToRepresentation", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "enrollCustom", + values: [BigNumberish, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "enrollRemoteRouter", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getCanonicalAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getLocalAddress", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "liquidityProvider", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "migrate", values: [string]): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: "preFill", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "remotes", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "representationToCanonical", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "requestDetails", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "send", + values: [string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setXAppConnectionManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "tokenBeacon", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "xAppConnectionManager", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "PRE_FILL_FEE_DENOMINATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PRE_FILL_FEE_NUMERATOR", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "canonicalToRepresentation", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "enrollCustom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "enrollRemoteRouter", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCanonicalAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getLocalAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "liquidityProvider", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "migrate", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "preFill", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "remotes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "representationToCanonical", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "requestDetails", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "send", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setXAppConnectionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tokenBeacon", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "xAppConnectionManager", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + "Send(address,address,uint32,bytes32,uint256)": EventFragment; + "TokenDeployed(uint32,bytes32,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Send"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TokenDeployed"): EventFragment; +} + +export class BridgeRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BridgeRouterInterface; + + functions: { + PRE_FILL_FEE_DENOMINATOR(overrides?: CallOverrides): Promise<[BigNumber]>; + + PRE_FILL_FEE_NUMERATOR(overrides?: CallOverrides): Promise<[BigNumber]>; + + VERSION(overrides?: CallOverrides): Promise<[number]>; + + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + enrollCustom( + _domain: BigNumberish, + _id: BytesLike, + _custom: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise<[number, string] & { _domain: number; _id: string }>; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise<[string] & { _token: string }>; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise<[string] & { _token: string }>; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _tokenBeacon: string, + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidityProvider( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + migrate( + _oldRepr: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + preFill( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise<[number, string] & { domain: number; id: string }>; + + requestDetails( + _domain: BigNumberish, + _id: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + send( + _token: string, + _amount: BigNumberish, + _destination: BigNumberish, + _recipient: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tokenBeacon(overrides?: CallOverrides): Promise<[string]>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + PRE_FILL_FEE_DENOMINATOR(overrides?: CallOverrides): Promise; + + PRE_FILL_FEE_NUMERATOR(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + enrollCustom( + _domain: BigNumberish, + _id: BytesLike, + _custom: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise<[number, string] & { _domain: number; _id: string }>; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _tokenBeacon: string, + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidityProvider( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + migrate( + _oldRepr: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + preFill( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise<[number, string] & { domain: number; id: string }>; + + requestDetails( + _domain: BigNumberish, + _id: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + send( + _token: string, + _amount: BigNumberish, + _destination: BigNumberish, + _recipient: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tokenBeacon(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + + callStatic: { + PRE_FILL_FEE_DENOMINATOR(overrides?: CallOverrides): Promise; + + PRE_FILL_FEE_NUMERATOR(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + enrollCustom( + _domain: BigNumberish, + _id: BytesLike, + _custom: string, + overrides?: CallOverrides + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise<[number, string] & { _domain: number; _id: string }>; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + initialize( + _tokenBeacon: string, + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + liquidityProvider( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + migrate(_oldRepr: string, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + preFill(_message: BytesLike, overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise<[number, string] & { domain: number; id: string }>; + + requestDetails( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + send( + _token: string, + _amount: BigNumberish, + _destination: BigNumberish, + _recipient: BytesLike, + overrides?: CallOverrides + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + tokenBeacon(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Send( + token?: string | null, + from?: string | null, + toDomain?: BigNumberish | null, + toId?: null, + amount?: null + ): TypedEventFilter< + [string, string, number, string, BigNumber], + { + token: string; + from: string; + toDomain: number; + toId: string; + amount: BigNumber; + } + >; + + TokenDeployed( + domain?: BigNumberish | null, + id?: BytesLike | null, + representation?: string | null + ): TypedEventFilter< + [number, string, string], + { domain: number; id: string; representation: string } + >; + }; + + estimateGas: { + PRE_FILL_FEE_DENOMINATOR(overrides?: CallOverrides): Promise; + + PRE_FILL_FEE_NUMERATOR(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + enrollCustom( + _domain: BigNumberish, + _id: BytesLike, + _custom: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _tokenBeacon: string, + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidityProvider( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + migrate( + _oldRepr: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + preFill( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise; + + requestDetails( + _domain: BigNumberish, + _id: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + send( + _token: string, + _amount: BigNumberish, + _destination: BigNumberish, + _recipient: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tokenBeacon(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + PRE_FILL_FEE_DENOMINATOR( + overrides?: CallOverrides + ): Promise; + + PRE_FILL_FEE_NUMERATOR( + overrides?: CallOverrides + ): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + enrollCustom( + _domain: BigNumberish, + _id: BytesLike, + _custom: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _tokenBeacon: string, + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidityProvider( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + migrate( + _oldRepr: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + preFill( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remotes( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise; + + requestDetails( + _domain: BigNumberish, + _id: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + send( + _token: string, + _amount: BigNumberish, + _destination: BigNumberish, + _recipient: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tokenBeacon(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager( + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/BridgeToken.d.ts b/solidity/abacus-xapps/typechain/BridgeToken.d.ts new file mode 100644 index 000000000..7ec11333c --- /dev/null +++ b/solidity/abacus-xapps/typechain/BridgeToken.d.ts @@ -0,0 +1,771 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface BridgeTokenInterface extends ethers.utils.Interface { + functions: { + "VERSION()": FunctionFragment; + "_PERMIT_TYPEHASH()": FunctionFragment; + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "burn(address,uint256)": FunctionFragment; + "decimals()": FunctionFragment; + "decreaseAllowance(address,uint256)": FunctionFragment; + "domainSeparator()": FunctionFragment; + "increaseAllowance(address,uint256)": FunctionFragment; + "initialize()": FunctionFragment; + "mint(address,uint256)": FunctionFragment; + "name()": FunctionFragment; + "nonces(address)": FunctionFragment; + "owner()": FunctionFragment; + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "setDetails(string,string,uint8)": FunctionFragment; + "symbol()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "_PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "burn", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "decreaseAllowance", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "domainSeparator", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "increaseAllowance", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [string]): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setDetails", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "_PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "decreaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "domainSeparator", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setDetails", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export class BridgeToken extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: BridgeTokenInterface; + + functions: { + VERSION(overrides?: CallOverrides): Promise<[number]>; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise<[string]>; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + nonces(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: CallOverrides + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: CallOverrides + ): Promise; + + initialize(overrides?: CallOverrides): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: CallOverrides + ): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces( + arg0: string, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/Common.d.ts b/solidity/abacus-xapps/typechain/Common.d.ts new file mode 100644 index 000000000..e78ac2f5a --- /dev/null +++ b/solidity/abacus-xapps/typechain/Common.d.ts @@ -0,0 +1,255 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface CommonInterface extends ethers.utils.Interface { + functions: { + "committedRoot()": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "localDomain()": FunctionFragment; + "state()": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: { + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; +} + +export class Common extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: CommonInterface; + + functions: { + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + state(overrides?: CallOverrides): Promise<[number]>; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: { + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + }; + + estimateGas: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + committedRoot(overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/ERC20.d.ts b/solidity/abacus-xapps/typechain/ERC20.d.ts new file mode 100644 index 000000000..21fc449ee --- /dev/null +++ b/solidity/abacus-xapps/typechain/ERC20.d.ts @@ -0,0 +1,375 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface ERC20Interface extends ethers.utils.Interface { + functions: { + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "decreaseAllowance(address,uint256)": FunctionFragment; + "increaseAllowance(address,uint256)": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "decreaseAllowance", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "increaseAllowance", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "decreaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export class ERC20 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ERC20Interface; + + functions: { + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: CallOverrides + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/ETHHelper.d.ts b/solidity/abacus-xapps/typechain/ETHHelper.d.ts new file mode 100644 index 000000000..a9fcffb52 --- /dev/null +++ b/solidity/abacus-xapps/typechain/ETHHelper.d.ts @@ -0,0 +1,209 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface ETHHelperInterface extends ethers.utils.Interface { + functions: { + "bridge()": FunctionFragment; + "send(uint32)": FunctionFragment; + "sendTo(uint32,bytes32)": FunctionFragment; + "sendToEVMLike(uint32,address)": FunctionFragment; + "weth()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "bridge", values?: undefined): string; + encodeFunctionData(functionFragment: "send", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "sendTo", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sendToEVMLike", + values: [BigNumberish, string] + ): string; + encodeFunctionData(functionFragment: "weth", values?: undefined): string; + + decodeFunctionResult(functionFragment: "bridge", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "send", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sendTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sendToEVMLike", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "weth", data: BytesLike): Result; + + events: {}; +} + +export class ETHHelper extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ETHHelperInterface; + + functions: { + bridge(overrides?: CallOverrides): Promise<[string]>; + + send( + _domain: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendTo( + _domain: BigNumberish, + _to: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendToEVMLike( + _domain: BigNumberish, + _to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + weth(overrides?: CallOverrides): Promise<[string]>; + }; + + bridge(overrides?: CallOverrides): Promise; + + send( + _domain: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendTo( + _domain: BigNumberish, + _to: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendToEVMLike( + _domain: BigNumberish, + _to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + weth(overrides?: CallOverrides): Promise; + + callStatic: { + bridge(overrides?: CallOverrides): Promise; + + send(_domain: BigNumberish, overrides?: CallOverrides): Promise; + + sendTo( + _domain: BigNumberish, + _to: BytesLike, + overrides?: CallOverrides + ): Promise; + + sendToEVMLike( + _domain: BigNumberish, + _to: string, + overrides?: CallOverrides + ): Promise; + + weth(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + bridge(overrides?: CallOverrides): Promise; + + send( + _domain: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendTo( + _domain: BigNumberish, + _to: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendToEVMLike( + _domain: BigNumberish, + _to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + weth(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + bridge(overrides?: CallOverrides): Promise; + + send( + _domain: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendTo( + _domain: BigNumberish, + _to: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sendToEVMLike( + _domain: BigNumberish, + _to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + weth(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/Home.d.ts b/solidity/abacus-xapps/typechain/Home.d.ts new file mode 100644 index 000000000..e4a330779 --- /dev/null +++ b/solidity/abacus-xapps/typechain/Home.d.ts @@ -0,0 +1,799 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface HomeInterface extends ethers.utils.Interface { + functions: { + "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; + "VERSION()": FunctionFragment; + "committedRoot()": FunctionFragment; + "count()": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "improperUpdate(bytes32,bytes32,bytes)": FunctionFragment; + "initialize(address)": FunctionFragment; + "localDomain()": FunctionFragment; + "nonces(uint32)": FunctionFragment; + "owner()": FunctionFragment; + "queueContains(bytes32)": FunctionFragment; + "queueEnd()": FunctionFragment; + "queueLength()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "root()": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "setUpdaterManager(address)": FunctionFragment; + "state()": FunctionFragment; + "suggestUpdate()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "tree()": FunctionFragment; + "update(bytes32,bytes32,bytes)": FunctionFragment; + "updater()": FunctionFragment; + "updaterManager()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; + encodeFunctionData( + functionFragment: "dispatch", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "improperUpdate", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "initialize", values: [string]): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueContains", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueLength", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "root", values?: undefined): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData( + functionFragment: "setUpdaterManager", + values: [string] + ): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData( + functionFragment: "suggestUpdate", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData(functionFragment: "tree", values?: undefined): string; + encodeFunctionData( + functionFragment: "update", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + encodeFunctionData( + functionFragment: "updaterManager", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "improperUpdate", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueContains", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setUpdaterManager", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "suggestUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "update", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "updaterManager", + data: BytesLike + ): Result; + + events: { + "Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment; + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "ImproperUpdate(bytes32,bytes32,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "NewUpdaterManager(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + "UpdaterSlashed(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Dispatch"): EventFragment; + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ImproperUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdaterManager"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; + getEvent(nameOrSignatureOrTopic: "UpdaterSlashed"): EventFragment; +} + +export class Home extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: HomeInterface; + + functions: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>; + + VERSION(overrides?: CallOverrides): Promise<[number]>; + + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + count(overrides?: CallOverrides): Promise<[BigNumber]>; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + queueEnd(overrides?: CallOverrides): Promise<[string]>; + + queueLength(overrides?: CallOverrides): Promise<[BigNumber]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise<[string]>; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise<[number]>; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree( + overrides?: CallOverrides + ): Promise<[BigNumber] & { count: BigNumber }>; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + + updaterManager(overrides?: CallOverrides): Promise<[string]>; + }; + + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + + callStatic: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: CallOverrides + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + initialize( + _updaterManager: string, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater(_updater: string, overrides?: CallOverrides): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: CallOverrides + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate( + overrides?: CallOverrides + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; + + filters: { + Dispatch( + messageHash?: BytesLike | null, + leafIndex?: BigNumberish | null, + destinationAndNonce?: BigNumberish | null, + committedRoot?: null, + message?: null + ): TypedEventFilter< + [string, BigNumber, BigNumber, string, string], + { + messageHash: string; + leafIndex: BigNumber; + destinationAndNonce: BigNumber; + committedRoot: string; + message: string; + } + >; + + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + ImproperUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null + ): TypedEventFilter< + [string, string, string], + { oldRoot: string; newRoot: string; signature: string } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + NewUpdaterManager( + updaterManager?: null + ): TypedEventFilter<[string], { updaterManager: string }>; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + + UpdaterSlashed( + updater?: string | null, + reporter?: string | null + ): TypedEventFilter< + [string, string], + { updater: string; reporter: string } + >; + }; + + estimateGas: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + MAX_MESSAGE_BODY_BYTES( + overrides?: CallOverrides + ): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + improperUpdate( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + root(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setUpdaterManager( + _updaterManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + suggestUpdate(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tree(overrides?: CallOverrides): Promise; + + update( + _committedRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + updaterManager(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/IBridgeToken.d.ts b/solidity/abacus-xapps/typechain/IBridgeToken.d.ts new file mode 100644 index 000000000..d71d772e5 --- /dev/null +++ b/solidity/abacus-xapps/typechain/IBridgeToken.d.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IBridgeTokenInterface extends ethers.utils.Interface { + functions: { + "balanceOf(address)": FunctionFragment; + "burn(address,uint256)": FunctionFragment; + "decimals()": FunctionFragment; + "initialize()": FunctionFragment; + "mint(address,uint256)": FunctionFragment; + "name()": FunctionFragment; + "setDetails(string,string,uint8)": FunctionFragment; + "symbol()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "burn", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "initialize", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "setDetails", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setDetails", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + + events: {}; +} + +export class IBridgeToken extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IBridgeTokenInterface; + + functions: { + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _name: string, + _symbol: string, + _decimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + }; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _name: string, + _symbol: string, + _decimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + callStatic: { + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + initialize(overrides?: CallOverrides): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + setDetails( + _name: string, + _symbol: string, + _decimals: BigNumberish, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _name: string, + _symbol: string, + _decimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _name: string, + _symbol: string, + _decimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/IERC20.d.ts b/solidity/abacus-xapps/typechain/IERC20.d.ts new file mode 100644 index 000000000..8b62f51ad --- /dev/null +++ b/solidity/abacus-xapps/typechain/IERC20.d.ts @@ -0,0 +1,294 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IERC20Interface extends ethers.utils.Interface { + functions: { + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export class IERC20 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IERC20Interface; + + functions: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + account: string, + overrides?: CallOverrides + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/IMessageRecipient.d.ts b/solidity/abacus-xapps/typechain/IMessageRecipient.d.ts new file mode 100644 index 000000000..c4c28a40e --- /dev/null +++ b/solidity/abacus-xapps/typechain/IMessageRecipient.d.ts @@ -0,0 +1,124 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IMessageRecipientInterface extends ethers.utils.Interface { + functions: { + "handle(uint32,bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + + events: {}; +} + +export class IMessageRecipient extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IMessageRecipientInterface; + + functions: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/IUpdaterManager.d.ts b/solidity/abacus-xapps/typechain/IUpdaterManager.d.ts new file mode 100644 index 000000000..d2399f297 --- /dev/null +++ b/solidity/abacus-xapps/typechain/IUpdaterManager.d.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IUpdaterManagerInterface extends ethers.utils.Interface { + functions: { + "slashUpdater(address)": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "slashUpdater", + values: [string] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "slashUpdater", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: {}; +} + +export class IUpdaterManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUpdaterManagerInterface; + + functions: { + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + slashUpdater(_reporter: string, overrides?: CallOverrides): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + slashUpdater( + _reporter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/IWeth.d.ts b/solidity/abacus-xapps/typechain/IWeth.d.ts new file mode 100644 index 000000000..1c29a399a --- /dev/null +++ b/solidity/abacus-xapps/typechain/IWeth.d.ts @@ -0,0 +1,141 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IWethInterface extends ethers.utils.Interface { + functions: { + "approve(address,uint256)": FunctionFragment; + "deposit()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + + events: {}; +} + +export class IWeth extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IWethInterface; + + functions: { + approve( + _who: string, + _wad: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + approve( + _who: string, + _wad: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + approve( + _who: string, + _wad: BigNumberish, + overrides?: CallOverrides + ): Promise; + + deposit(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + approve( + _who: string, + _wad: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + approve( + _who: string, + _wad: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/MerkleTreeManager.d.ts b/solidity/abacus-xapps/typechain/MerkleTreeManager.d.ts new file mode 100644 index 000000000..3ca6484e3 --- /dev/null +++ b/solidity/abacus-xapps/typechain/MerkleTreeManager.d.ts @@ -0,0 +1,123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MerkleTreeManagerInterface extends ethers.utils.Interface { + functions: { + "count()": FunctionFragment; + "root()": FunctionFragment; + "tree()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "count", values?: undefined): string; + encodeFunctionData(functionFragment: "root", values?: undefined): string; + encodeFunctionData(functionFragment: "tree", values?: undefined): string; + + decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; + + events: {}; +} + +export class MerkleTreeManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MerkleTreeManagerInterface; + + functions: { + count(overrides?: CallOverrides): Promise<[BigNumber]>; + + root(overrides?: CallOverrides): Promise<[string]>; + + tree( + overrides?: CallOverrides + ): Promise<[BigNumber] & { count: BigNumber }>; + }; + + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + + callStatic: { + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + count(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/MockCore.d.ts b/solidity/abacus-xapps/typechain/MockCore.d.ts new file mode 100644 index 000000000..ff52c908c --- /dev/null +++ b/solidity/abacus-xapps/typechain/MockCore.d.ts @@ -0,0 +1,346 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MockCoreInterface extends ethers.utils.Interface { + functions: { + "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; + "count()": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; + "home()": FunctionFragment; + "isReplica(address)": FunctionFragment; + "localDomain()": FunctionFragment; + "nonces(uint32)": FunctionFragment; + "queueContains(bytes32)": FunctionFragment; + "queueEnd()": FunctionFragment; + "queueLength()": FunctionFragment; + "root()": FunctionFragment; + "tree()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; + encodeFunctionData( + functionFragment: "dispatch", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "home", values?: undefined): string; + encodeFunctionData(functionFragment: "isReplica", values: [string]): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "queueContains", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueLength", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "root", values?: undefined): string; + encodeFunctionData(functionFragment: "tree", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "MAX_MESSAGE_BODY_BYTES", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueContains", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueLength", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; + + events: { + "Dispatch(uint256,uint64,bytes32,bytes)": EventFragment; + "Enqueue(uint32,bytes32,bytes)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Dispatch"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Enqueue"): EventFragment; +} + +export class MockCore extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MockCoreInterface; + + functions: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>; + + count(overrides?: CallOverrides): Promise<[BigNumber]>; + + dispatch( + _destination: BigNumberish, + _recipient: BytesLike, + _body: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + home(overrides?: CallOverrides): Promise<[string]>; + + isReplica(arg0: string, overrides?: CallOverrides): Promise<[boolean]>; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + queueEnd(overrides?: CallOverrides): Promise<[string]>; + + queueLength(overrides?: CallOverrides): Promise<[BigNumber]>; + + root(overrides?: CallOverrides): Promise<[string]>; + + tree( + overrides?: CallOverrides + ): Promise<[BigNumber] & { count: BigNumber }>; + }; + + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destination: BigNumberish, + _recipient: BytesLike, + _body: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(arg0: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + + callStatic: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destination: BigNumberish, + _recipient: BytesLike, + _body: BytesLike, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(arg0: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + filters: { + Dispatch( + leafIndex?: BigNumberish | null, + destinationAndNonce?: BigNumberish | null, + leaf?: BytesLike | null, + message?: null + ): TypedEventFilter< + [BigNumber, BigNumber, string, string], + { + leafIndex: BigNumber; + destinationAndNonce: BigNumber; + leaf: string; + message: string; + } + >; + + Enqueue( + _destination?: BigNumberish | null, + _recipient?: BytesLike | null, + _body?: null + ): TypedEventFilter< + [number, string, string], + { _destination: number; _recipient: string; _body: string } + >; + }; + + estimateGas: { + MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destination: BigNumberish, + _recipient: BytesLike, + _body: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(arg0: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + MAX_MESSAGE_BODY_BYTES( + overrides?: CallOverrides + ): Promise; + + count(overrides?: CallOverrides): Promise; + + dispatch( + _destination: BigNumberish, + _recipient: BytesLike, + _body: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica( + arg0: string, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + root(overrides?: CallOverrides): Promise; + + tree(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/MockWeth.d.ts b/solidity/abacus-xapps/typechain/MockWeth.d.ts new file mode 100644 index 000000000..405acf504 --- /dev/null +++ b/solidity/abacus-xapps/typechain/MockWeth.d.ts @@ -0,0 +1,793 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MockWethInterface extends ethers.utils.Interface { + functions: { + "VERSION()": FunctionFragment; + "_PERMIT_TYPEHASH()": FunctionFragment; + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "burn(address,uint256)": FunctionFragment; + "decimals()": FunctionFragment; + "decreaseAllowance(address,uint256)": FunctionFragment; + "deposit()": FunctionFragment; + "domainSeparator()": FunctionFragment; + "increaseAllowance(address,uint256)": FunctionFragment; + "initialize()": FunctionFragment; + "mint(address,uint256)": FunctionFragment; + "name()": FunctionFragment; + "nonces(address)": FunctionFragment; + "owner()": FunctionFragment; + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "setDetails(string,string,uint8)": FunctionFragment; + "symbol()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "_PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "burn", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "decreaseAllowance", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "domainSeparator", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "increaseAllowance", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [string]): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setDetails", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "_PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "decreaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "domainSeparator", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setDetails", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export class MockWeth extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MockWethInterface; + + functions: { + VERSION(overrides?: CallOverrides): Promise<[number]>; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise<[string]>; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + nonces(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: CallOverrides + ): Promise; + + deposit(overrides?: CallOverrides): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: CallOverrides + ): Promise; + + initialize(overrides?: CallOverrides): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: CallOverrides + ): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(_account: string, overrides?: CallOverrides): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + VERSION(overrides?: CallOverrides): Promise; + + _PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + _owner: string, + _spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + _spender: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + _account: string, + overrides?: CallOverrides + ): Promise; + + burn( + _from: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + _spender: string, + _subtractedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + domainSeparator(overrides?: CallOverrides): Promise; + + increaseAllowance( + _spender: string, + _addedValue: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + _to: string, + _amnt: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces( + arg0: string, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + permit( + _owner: string, + _spender: string, + _value: BigNumberish, + _deadline: BigNumberish, + _v: BigNumberish, + _r: BytesLike, + _s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setDetails( + _newName: string, + _newSymbol: string, + _newDecimals: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + _sender: string, + _recipient: string, + _amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/Ownable.d.ts b/solidity/abacus-xapps/typechain/Ownable.d.ts new file mode 100644 index 000000000..2d3f0a49b --- /dev/null +++ b/solidity/abacus-xapps/typechain/Ownable.d.ts @@ -0,0 +1,169 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface OwnableInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class Ownable extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: OwnableInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/OwnableUpgradeable.d.ts b/solidity/abacus-xapps/typechain/OwnableUpgradeable.d.ts new file mode 100644 index 000000000..8a8eafde6 --- /dev/null +++ b/solidity/abacus-xapps/typechain/OwnableUpgradeable.d.ts @@ -0,0 +1,169 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface OwnableUpgradeableInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class OwnableUpgradeable extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: OwnableUpgradeableInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/PingPongRouter.d.ts b/solidity/abacus-xapps/typechain/PingPongRouter.d.ts new file mode 100644 index 000000000..fea97336a --- /dev/null +++ b/solidity/abacus-xapps/typechain/PingPongRouter.d.ts @@ -0,0 +1,381 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface PingPongRouterInterface extends ethers.utils.Interface { + functions: { + "enrollRemoteRouter(uint32,bytes32)": FunctionFragment; + "handle(uint32,bytes32,bytes)": FunctionFragment; + "initiatePingPongMatch(uint32)": FunctionFragment; + "owner()": FunctionFragment; + "remotes(uint32)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "setXAppConnectionManager(address)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "xAppConnectionManager()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "enrollRemoteRouter", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "initiatePingPongMatch", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "remotes", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setXAppConnectionManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "xAppConnectionManager", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "enrollRemoteRouter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "initiatePingPongMatch", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "remotes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setXAppConnectionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "xAppConnectionManager", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + "Received(uint32,uint32,uint256,bool)": EventFragment; + "Sent(uint32,uint32,uint256,bool)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Received"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Sent"): EventFragment; +} + +export class PingPongRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: PingPongRouterInterface; + + functions: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiatePingPongMatch( + _destinationDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiatePingPongMatch( + _destinationDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + + callStatic: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + initiatePingPongMatch( + _destinationDomain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Received( + domain?: BigNumberish | null, + matchId?: BigNumberish | null, + count?: null, + isPing?: null + ): TypedEventFilter< + [number, number, BigNumber, boolean], + { domain: number; matchId: number; count: BigNumber; isPing: boolean } + >; + + Sent( + domain?: BigNumberish | null, + matchId?: BigNumberish | null, + count?: null, + isPing?: null + ): TypedEventFilter< + [number, number, BigNumber, boolean], + { domain: number; matchId: number; count: BigNumber; isPing: boolean } + >; + }; + + estimateGas: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiatePingPongMatch( + _destinationDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initiatePingPongMatch( + _destinationDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager( + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/QueueManager.d.ts b/solidity/abacus-xapps/typechain/QueueManager.d.ts new file mode 100644 index 000000000..28273112f --- /dev/null +++ b/solidity/abacus-xapps/typechain/QueueManager.d.ts @@ -0,0 +1,145 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface QueueManagerInterface extends ethers.utils.Interface { + functions: { + "queueContains(bytes32)": FunctionFragment; + "queueEnd()": FunctionFragment; + "queueLength()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "queueContains", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string; + encodeFunctionData( + functionFragment: "queueLength", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "queueContains", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "queueLength", + data: BytesLike + ): Result; + + events: {}; +} + +export class QueueManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: QueueManagerInterface; + + functions: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + queueEnd(overrides?: CallOverrides): Promise<[string]>; + + queueLength(overrides?: CallOverrides): Promise<[BigNumber]>; + }; + + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + + callStatic: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + queueContains( + _item: BytesLike, + overrides?: CallOverrides + ): Promise; + + queueEnd(overrides?: CallOverrides): Promise; + + queueLength(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/Replica.d.ts b/solidity/abacus-xapps/typechain/Replica.d.ts new file mode 100644 index 000000000..07559ded2 --- /dev/null +++ b/solidity/abacus-xapps/typechain/Replica.d.ts @@ -0,0 +1,1104 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface ReplicaInterface extends ethers.utils.Interface { + functions: { + "PROCESS_GAS()": FunctionFragment; + "RESERVE_GAS()": FunctionFragment; + "VERSION()": FunctionFragment; + "acceptableRoot(bytes32)": FunctionFragment; + "committedRoot()": FunctionFragment; + "confirmAt(bytes32)": FunctionFragment; + "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; + "homeDomainHash()": FunctionFragment; + "initialize(uint32,address,bytes32,uint256)": FunctionFragment; + "localDomain()": FunctionFragment; + "messages(bytes32)": FunctionFragment; + "optimisticSeconds()": FunctionFragment; + "owner()": FunctionFragment; + "process(bytes)": FunctionFragment; + "prove(bytes32,bytes32[32],uint256)": FunctionFragment; + "proveAndProcess(bytes,bytes32[32],uint256)": FunctionFragment; + "remoteDomain()": FunctionFragment; + "setUpdater(address)": FunctionFragment; + "state()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "update(bytes32,bytes32,bytes)": FunctionFragment; + "updater()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "PROCESS_GAS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "RESERVE_GAS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData( + functionFragment: "acceptableRoot", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "confirmAt", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "homeDomainHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [BigNumberish, string, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "messages", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "optimisticSeconds", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: "process", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "prove", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "proveAndProcess", + values: [ + BytesLike, + [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "remoteDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; + encodeFunctionData(functionFragment: "state", values?: undefined): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "update", + values: [BytesLike, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "updater", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "PROCESS_GAS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "RESERVE_GAS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "acceptableRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "confirmAt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "doubleUpdate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "homeDomainHash", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "messages", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "optimisticSeconds", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "process", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "prove", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proveAndProcess", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "remoteDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "update", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result; + + events: { + "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; + "NewUpdater(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; + "Process(bytes32,bool,bytes)": EventFragment; + "Update(uint32,bytes32,bytes32,bytes)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Process"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Update"): EventFragment; +} + +export class Replica extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ReplicaInterface; + + functions: { + PROCESS_GAS(overrides?: CallOverrides): Promise<[BigNumber]>; + + RESERVE_GAS(overrides?: CallOverrides): Promise<[BigNumber]>; + + VERSION(overrides?: CallOverrides): Promise<[number]>; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + committedRoot(overrides?: CallOverrides): Promise<[string]>; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise<[string]>; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise<[number]>; + + optimisticSeconds(overrides?: CallOverrides): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise<[number]>; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise<[number]>; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise<[string]>; + }; + + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot(_root: BytesLike, overrides?: CallOverrides): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + + callStatic: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: CallOverrides + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process(_message: BytesLike, overrides?: CallOverrides): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater(_updater: string, overrides?: CallOverrides): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + filters: { + DoubleUpdate( + oldRoot?: null, + newRoot?: null, + signature?: null, + signature2?: null + ): TypedEventFilter< + [string, [string, string], string, string], + { + oldRoot: string; + newRoot: [string, string]; + signature: string; + signature2: string; + } + >; + + NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + Process( + messageHash?: BytesLike | null, + success?: boolean | null, + returnData?: BytesLike | null + ): TypedEventFilter< + [string, boolean, string], + { messageHash: string; success: boolean; returnData: string } + >; + + Update( + homeDomain?: BigNumberish | null, + oldRoot?: BytesLike | null, + newRoot?: BytesLike | null, + signature?: null + ): TypedEventFilter< + [number, string, string, string], + { + homeDomain: number; + oldRoot: string; + newRoot: string; + signature: string; + } + >; + }; + + estimateGas: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages(arg0: BytesLike, overrides?: CallOverrides): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + PROCESS_GAS(overrides?: CallOverrides): Promise; + + RESERVE_GAS(overrides?: CallOverrides): Promise; + + VERSION(overrides?: CallOverrides): Promise; + + acceptableRoot( + _root: BytesLike, + overrides?: CallOverrides + ): Promise; + + committedRoot(overrides?: CallOverrides): Promise; + + confirmAt( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + doubleUpdate( + _oldRoot: BytesLike, + _newRoot: [BytesLike, BytesLike], + _signature: BytesLike, + _signature2: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + homeDomainHash(overrides?: CallOverrides): Promise; + + initialize( + _remoteDomain: BigNumberish, + _updater: string, + _committedRoot: BytesLike, + _optimisticSeconds: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + messages( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + optimisticSeconds(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + process( + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + prove( + _leaf: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + proveAndProcess( + _message: BytesLike, + _proof: [ + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike, + BytesLike + ], + _index: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + remoteDomain(overrides?: CallOverrides): Promise; + + setUpdater( + _updater: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + state(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + update( + _oldRoot: BytesLike, + _newRoot: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + updater(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/Router.d.ts b/solidity/abacus-xapps/typechain/Router.d.ts new file mode 100644 index 000000000..cb053dfbb --- /dev/null +++ b/solidity/abacus-xapps/typechain/Router.d.ts @@ -0,0 +1,323 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface RouterInterface extends ethers.utils.Interface { + functions: { + "enrollRemoteRouter(uint32,bytes32)": FunctionFragment; + "handle(uint32,bytes32,bytes)": FunctionFragment; + "owner()": FunctionFragment; + "remotes(uint32)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "setXAppConnectionManager(address)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "xAppConnectionManager()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "enrollRemoteRouter", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "remotes", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setXAppConnectionManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "xAppConnectionManager", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "enrollRemoteRouter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "remotes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setXAppConnectionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "xAppConnectionManager", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class Router extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: RouterInterface; + + functions: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + + callStatic: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager( + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/RouterTemplate.d.ts b/solidity/abacus-xapps/typechain/RouterTemplate.d.ts new file mode 100644 index 000000000..1060af966 --- /dev/null +++ b/solidity/abacus-xapps/typechain/RouterTemplate.d.ts @@ -0,0 +1,368 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface RouterTemplateInterface extends ethers.utils.Interface { + functions: { + "dispatchTypeA(uint32,uint256)": FunctionFragment; + "enrollRemoteRouter(uint32,bytes32)": FunctionFragment; + "handle(uint32,bytes32,bytes)": FunctionFragment; + "owner()": FunctionFragment; + "remotes(uint32)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "setXAppConnectionManager(address)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "xAppConnectionManager()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "dispatchTypeA", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "enrollRemoteRouter", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "handle", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "remotes", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setXAppConnectionManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "xAppConnectionManager", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "dispatchTypeA", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "enrollRemoteRouter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "remotes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setXAppConnectionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "xAppConnectionManager", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + "TypeAReceived(uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TypeAReceived"): EventFragment; +} + +export class RouterTemplate extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: RouterTemplateInterface; + + functions: { + dispatchTypeA( + _destinationDomain: BigNumberish, + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + dispatchTypeA( + _destinationDomain: BigNumberish, + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + + callStatic: { + dispatchTypeA( + _destinationDomain: BigNumberish, + _number: BigNumberish, + overrides?: CallOverrides + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: CallOverrides + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + TypeAReceived( + number?: null + ): TypedEventFilter<[BigNumber], { number: BigNumber }>; + }; + + estimateGas: { + dispatchTypeA( + _destinationDomain: BigNumberish, + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + dispatchTypeA( + _destinationDomain: BigNumberish, + _number: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enrollRemoteRouter( + _domain: BigNumberish, + _router: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + handle( + _origin: BigNumberish, + _sender: BytesLike, + _message: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + remotes( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager( + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/TestBridgeMessage.d.ts b/solidity/abacus-xapps/typechain/TestBridgeMessage.d.ts new file mode 100644 index 000000000..1f09cb41e --- /dev/null +++ b/solidity/abacus-xapps/typechain/TestBridgeMessage.d.ts @@ -0,0 +1,789 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestBridgeMessageInterface extends ethers.utils.Interface { + functions: { + "testFormatDetails(bytes32,bytes32,uint8)": FunctionFragment; + "testFormatMessage(bytes,bytes,uint8,uint8)": FunctionFragment; + "testFormatRequestDetails()": FunctionFragment; + "testFormatTokenId(uint32,bytes32)": FunctionFragment; + "testFormatTransfer(bytes32,uint256)": FunctionFragment; + "testIsDetails(bytes)": FunctionFragment; + "testIsRequestDetails(bytes)": FunctionFragment; + "testIsTransfer(bytes)": FunctionFragment; + "testIsValidAction(bytes,uint8)": FunctionFragment; + "testIsValidMessageLength(bytes)": FunctionFragment; + "testMessageType(bytes)": FunctionFragment; + "testMustBeDetails(bytes)": FunctionFragment; + "testMustBeMessage(bytes)": FunctionFragment; + "testMustBeRequestDetails(bytes)": FunctionFragment; + "testMustBeTokenId(bytes)": FunctionFragment; + "testMustBeTransfer(bytes)": FunctionFragment; + "testSplitDetails(bytes)": FunctionFragment; + "testSplitMessage(bytes)": FunctionFragment; + "testSplitTokenId(bytes)": FunctionFragment; + "testSplitTransfer(bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "testFormatDetails", + values: [BytesLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "testFormatMessage", + values: [BytesLike, BytesLike, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "testFormatRequestDetails", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "testFormatTokenId", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testFormatTransfer", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "testIsDetails", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testIsRequestDetails", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testIsTransfer", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testIsValidAction", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "testIsValidMessageLength", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testMessageType", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testMustBeDetails", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testMustBeMessage", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testMustBeRequestDetails", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testMustBeTokenId", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testMustBeTransfer", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testSplitDetails", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testSplitMessage", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testSplitTokenId", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "testSplitTransfer", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "testFormatDetails", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testFormatMessage", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testFormatRequestDetails", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testFormatTokenId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testFormatTransfer", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testIsDetails", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testIsRequestDetails", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testIsTransfer", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testIsValidAction", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testIsValidMessageLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testMessageType", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testMustBeDetails", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testMustBeMessage", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testMustBeRequestDetails", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testMustBeTokenId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testMustBeTransfer", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testSplitDetails", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testSplitMessage", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testSplitTokenId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "testSplitTransfer", + data: BytesLike + ): Result; + + events: {}; +} + +export class TestBridgeMessage extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestBridgeMessageInterface; + + functions: { + testFormatDetails( + _name: BytesLike, + _symbol: BytesLike, + _decimals: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + testFormatMessage( + _tokenId: BytesLike, + _action: BytesLike, + _idType: BigNumberish, + _actionType: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + testFormatRequestDetails(overrides?: CallOverrides): Promise<[string]>; + + testFormatTokenId( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + testFormatTransfer( + _to: BytesLike, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + testIsDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + testIsRequestDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + testIsTransfer( + _action: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + testIsValidAction( + _action: BytesLike, + _t: BigNumberish, + overrides?: CallOverrides + ): Promise<[boolean]>; + + testIsValidMessageLength( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + testMessageType( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[number]>; + + testMustBeDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + testMustBeMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + testMustBeRequestDetails( + _request: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + testMustBeTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + testMustBeTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + testSplitDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string, number]>; + + testSplitMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[string, string]>; + + testSplitTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string]>; + + testSplitTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string, BigNumber]>; + }; + + testFormatDetails( + _name: BytesLike, + _symbol: BytesLike, + _decimals: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatMessage( + _tokenId: BytesLike, + _action: BytesLike, + _idType: BigNumberish, + _actionType: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatRequestDetails(overrides?: CallOverrides): Promise; + + testFormatTokenId( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + testFormatTransfer( + _to: BytesLike, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsRequestDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsTransfer( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsValidAction( + _action: BytesLike, + _t: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsValidMessageLength( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMessageType( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeRequestDetails( + _request: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string, number]>; + + testSplitMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[string, string]>; + + testSplitTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string]>; + + testSplitTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string, BigNumber]>; + + callStatic: { + testFormatDetails( + _name: BytesLike, + _symbol: BytesLike, + _decimals: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatMessage( + _tokenId: BytesLike, + _action: BytesLike, + _idType: BigNumberish, + _actionType: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatRequestDetails(overrides?: CallOverrides): Promise; + + testFormatTokenId( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + testFormatTransfer( + _to: BytesLike, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsRequestDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsTransfer( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsValidAction( + _action: BytesLike, + _t: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsValidMessageLength( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMessageType( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeRequestDetails( + _request: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string, number]>; + + testSplitMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise<[string, string]>; + + testSplitTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string]>; + + testSplitTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise<[number, string, string, BigNumber]>; + }; + + filters: {}; + + estimateGas: { + testFormatDetails( + _name: BytesLike, + _symbol: BytesLike, + _decimals: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatMessage( + _tokenId: BytesLike, + _action: BytesLike, + _idType: BigNumberish, + _actionType: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatRequestDetails(overrides?: CallOverrides): Promise; + + testFormatTokenId( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + testFormatTransfer( + _to: BytesLike, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsRequestDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsTransfer( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsValidAction( + _action: BytesLike, + _t: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsValidMessageLength( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMessageType( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeRequestDetails( + _request: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + testFormatDetails( + _name: BytesLike, + _symbol: BytesLike, + _decimals: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatMessage( + _tokenId: BytesLike, + _action: BytesLike, + _idType: BigNumberish, + _actionType: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testFormatRequestDetails( + overrides?: CallOverrides + ): Promise; + + testFormatTokenId( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + testFormatTransfer( + _to: BytesLike, + _amnt: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsRequestDetails( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsTransfer( + _action: BytesLike, + overrides?: CallOverrides + ): Promise; + + testIsValidAction( + _action: BytesLike, + _t: BigNumberish, + overrides?: CallOverrides + ): Promise; + + testIsValidMessageLength( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMessageType( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeRequestDetails( + _request: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise; + + testMustBeTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitDetails( + _details: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitMessage( + _message: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitTokenId( + _tokenId: BytesLike, + overrides?: CallOverrides + ): Promise; + + testSplitTransfer( + _transfer: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/TestEncoding.d.ts b/solidity/abacus-xapps/typechain/TestEncoding.d.ts new file mode 100644 index 000000000..be1f2365f --- /dev/null +++ b/solidity/abacus-xapps/typechain/TestEncoding.d.ts @@ -0,0 +1,95 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TestEncodingInterface extends ethers.utils.Interface { + functions: { + "test()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "test", values?: undefined): string; + + decodeFunctionResult(functionFragment: "test", data: BytesLike): Result; + + events: {}; +} + +export class TestEncoding extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TestEncodingInterface; + + functions: { + test(overrides?: CallOverrides): Promise<[void]>; + }; + + test(overrides?: CallOverrides): Promise; + + callStatic: { + test(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + test(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + test(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/TokenRegistry.d.ts b/solidity/abacus-xapps/typechain/TokenRegistry.d.ts new file mode 100644 index 000000000..ca481c5d0 --- /dev/null +++ b/solidity/abacus-xapps/typechain/TokenRegistry.d.ts @@ -0,0 +1,285 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TokenRegistryInterface extends ethers.utils.Interface { + functions: { + "canonicalToRepresentation(bytes32)": FunctionFragment; + "getCanonicalAddress(address)": FunctionFragment; + "getLocalAddress(uint32,bytes32)": FunctionFragment; + "representationToCanonical(address)": FunctionFragment; + "tokenBeacon()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "canonicalToRepresentation", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getCanonicalAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getLocalAddress", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "representationToCanonical", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "tokenBeacon", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "canonicalToRepresentation", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCanonicalAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getLocalAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "representationToCanonical", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tokenBeacon", + data: BytesLike + ): Result; + + events: { + "TokenDeployed(uint32,bytes32,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "TokenDeployed"): EventFragment; +} + +export class TokenRegistry extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TokenRegistryInterface; + + functions: { + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise<[string]>; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise<[number, string] & { _domain: number; _id: string }>; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise<[string] & { _token: string }>; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise<[string] & { _token: string }>; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise<[number, string] & { domain: number; id: string }>; + + tokenBeacon(overrides?: CallOverrides): Promise<[string]>; + }; + + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise<[number, string] & { _domain: number; _id: string }>; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise<[number, string] & { domain: number; id: string }>; + + tokenBeacon(overrides?: CallOverrides): Promise; + + callStatic: { + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise<[number, string] & { _domain: number; _id: string }>; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise<[number, string] & { domain: number; id: string }>; + + tokenBeacon(overrides?: CallOverrides): Promise; + }; + + filters: { + TokenDeployed( + domain?: BigNumberish | null, + id?: BytesLike | null, + representation?: string | null + ): TypedEventFilter< + [number, string, string], + { domain: number; id: string; representation: string } + >; + }; + + estimateGas: { + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise; + + tokenBeacon(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + canonicalToRepresentation( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + getCanonicalAddress( + _local: string, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,bytes32)"( + _domain: BigNumberish, + _id: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getLocalAddress(uint32,address)"( + _domain: BigNumberish, + _id: string, + overrides?: CallOverrides + ): Promise; + + representationToCanonical( + arg0: string, + overrides?: CallOverrides + ): Promise; + + tokenBeacon(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/TypedMemView.d.ts b/solidity/abacus-xapps/typechain/TypedMemView.d.ts new file mode 100644 index 000000000..ccab8f73c --- /dev/null +++ b/solidity/abacus-xapps/typechain/TypedMemView.d.ts @@ -0,0 +1,95 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface TypedMemViewInterface extends ethers.utils.Interface { + functions: { + "NULL()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "NULL", values?: undefined): string; + + decodeFunctionResult(functionFragment: "NULL", data: BytesLike): Result; + + events: {}; +} + +export class TypedMemView extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TypedMemViewInterface; + + functions: { + NULL(overrides?: CallOverrides): Promise<[string]>; + }; + + NULL(overrides?: CallOverrides): Promise; + + callStatic: { + NULL(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + NULL(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + NULL(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/UpgradeBeaconProxy.d.ts b/solidity/abacus-xapps/typechain/UpgradeBeaconProxy.d.ts new file mode 100644 index 000000000..62683abe0 --- /dev/null +++ b/solidity/abacus-xapps/typechain/UpgradeBeaconProxy.d.ts @@ -0,0 +1,78 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface UpgradeBeaconProxyInterface extends ethers.utils.Interface { + functions: {}; + + events: {}; +} + +export class UpgradeBeaconProxy extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UpgradeBeaconProxyInterface; + + functions: {}; + + callStatic: {}; + + filters: {}; + + estimateGas: {}; + + populateTransaction: {}; +} diff --git a/solidity/abacus-xapps/typechain/Version0.d.ts b/solidity/abacus-xapps/typechain/Version0.d.ts new file mode 100644 index 000000000..e6b444fd9 --- /dev/null +++ b/solidity/abacus-xapps/typechain/Version0.d.ts @@ -0,0 +1,95 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface Version0Interface extends ethers.utils.Interface { + functions: { + "VERSION()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + + decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + + events: {}; +} + +export class Version0 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: Version0Interface; + + functions: { + VERSION(overrides?: CallOverrides): Promise<[number]>; + }; + + VERSION(overrides?: CallOverrides): Promise; + + callStatic: { + VERSION(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + VERSION(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + VERSION(overrides?: CallOverrides): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/XAppConnectionClient.d.ts b/solidity/abacus-xapps/typechain/XAppConnectionClient.d.ts new file mode 100644 index 000000000..9af781a54 --- /dev/null +++ b/solidity/abacus-xapps/typechain/XAppConnectionClient.d.ts @@ -0,0 +1,224 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface XAppConnectionClientInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "setXAppConnectionManager(address)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "xAppConnectionManager()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setXAppConnectionManager", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "xAppConnectionManager", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setXAppConnectionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "xAppConnectionManager", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export class XAppConnectionClient extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: XAppConnectionClientInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setXAppConnectionManager( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + xAppConnectionManager( + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/XAppConnectionManager.d.ts b/solidity/abacus-xapps/typechain/XAppConnectionManager.d.ts new file mode 100644 index 000000000..d6d86efa6 --- /dev/null +++ b/solidity/abacus-xapps/typechain/XAppConnectionManager.d.ts @@ -0,0 +1,526 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface XAppConnectionManagerInterface extends ethers.utils.Interface { + functions: { + "domainToReplica(uint32)": FunctionFragment; + "home()": FunctionFragment; + "isReplica(address)": FunctionFragment; + "localDomain()": FunctionFragment; + "owner()": FunctionFragment; + "ownerEnrollReplica(address,uint32)": FunctionFragment; + "ownerUnenrollReplica(address)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "replicaToDomain(address)": FunctionFragment; + "setHome(address)": FunctionFragment; + "setWatcherPermission(address,uint32,bool)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "unenrollReplica(uint32,bytes32,bytes)": FunctionFragment; + "watcherPermission(address,uint32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "domainToReplica", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "home", values?: undefined): string; + encodeFunctionData(functionFragment: "isReplica", values: [string]): string; + encodeFunctionData( + functionFragment: "localDomain", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerEnrollReplica", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "ownerUnenrollReplica", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "replicaToDomain", + values: [string] + ): string; + encodeFunctionData(functionFragment: "setHome", values: [string]): string; + encodeFunctionData( + functionFragment: "setWatcherPermission", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "unenrollReplica", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "watcherPermission", + values: [string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "domainToReplica", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "localDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "ownerEnrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "ownerUnenrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "replicaToDomain", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setHome", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setWatcherPermission", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unenrollReplica", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "watcherPermission", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + "ReplicaEnrolled(uint32,address)": EventFragment; + "ReplicaUnenrolled(uint32,address)": EventFragment; + "WatcherPermissionSet(uint32,address,bool)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ReplicaEnrolled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ReplicaUnenrolled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "WatcherPermissionSet"): EventFragment; +} + +export class XAppConnectionManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: XAppConnectionManagerInterface; + + functions: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + home(overrides?: CallOverrides): Promise<[string]>; + + isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>; + + localDomain(overrides?: CallOverrides): Promise<[number]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<[number]>; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: CallOverrides + ): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + replicaToDomain(arg0: string, overrides?: CallOverrides): Promise; + + setHome(_home: string, overrides?: CallOverrides): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + ReplicaEnrolled( + domain?: BigNumberish | null, + replica?: null + ): TypedEventFilter<[number, string], { domain: number; replica: string }>; + + ReplicaUnenrolled( + domain?: BigNumberish | null, + replica?: null + ): TypedEventFilter<[number, string], { domain: number; replica: string }>; + + WatcherPermissionSet( + domain?: BigNumberish | null, + watcher?: null, + access?: null + ): TypedEventFilter< + [number, string, boolean], + { domain: number; watcher: string; access: boolean } + >; + }; + + estimateGas: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica(_replica: string, overrides?: CallOverrides): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain( + arg0: string, + overrides?: CallOverrides + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + domainToReplica( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + home(overrides?: CallOverrides): Promise; + + isReplica( + _replica: string, + overrides?: CallOverrides + ): Promise; + + localDomain(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerEnrollReplica( + _replica: string, + _domain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + ownerUnenrollReplica( + _replica: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + replicaToDomain( + arg0: string, + overrides?: CallOverrides + ): Promise; + + setHome( + _home: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setWatcherPermission( + _watcher: string, + _domain: BigNumberish, + _access: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unenrollReplica( + _domain: BigNumberish, + _updater: BytesLike, + _signature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + watcherPermission( + _watcher: string, + _domain: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/solidity/abacus-xapps/typechain/commons.ts b/solidity/abacus-xapps/typechain/commons.ts new file mode 100644 index 000000000..8d8e66ce5 --- /dev/null +++ b/solidity/abacus-xapps/typechain/commons.ts @@ -0,0 +1,36 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { EventFilter, Event } from "ethers"; +import { Result } from "@ethersproject/abi"; + +export interface TypedEventFilter<_EventArgsArray, _EventArgsObject> + extends EventFilter {} + +export interface TypedEvent extends Event { + args: EventArgs; +} + +export type TypedListener< + EventArgsArray extends Array, + EventArgsObject +> = ( + ...listenerArg: [ + ...EventArgsArray, + TypedEvent + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; diff --git a/solidity/abacus-xapps/typechain/factories/BridgeRouter__factory.ts b/solidity/abacus-xapps/typechain/factories/BridgeRouter__factory.ts new file mode 100644 index 000000000..0fd86705e --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/BridgeRouter__factory.ts @@ -0,0 +1,546 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BridgeRouter, BridgeRouterInterface } from "../BridgeRouter"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "uint32", + name: "toDomain", + type: "uint32", + }, + { + indexed: false, + internalType: "bytes32", + name: "toId", + type: "bytes32", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Send", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "id", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "representation", + type: "address", + }, + ], + name: "TokenDeployed", + type: "event", + }, + { + inputs: [], + name: "PRE_FILL_FEE_DENOMINATOR", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PRE_FILL_FEE_NUMERATOR", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "canonicalToRepresentation", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_id", + type: "bytes32", + }, + { + internalType: "address", + name: "_custom", + type: "address", + }, + ], + name: "enrollCustom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "enrollRemoteRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_local", + type: "address", + }, + ], + name: "getCanonicalAddress", + outputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_id", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_id", + type: "bytes32", + }, + ], + name: "getLocalAddress", + outputs: [ + { + internalType: "address", + name: "_token", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "address", + name: "_id", + type: "address", + }, + ], + name: "getLocalAddress", + outputs: [ + { + internalType: "address", + name: "_token", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_tokenBeacon", + type: "address", + }, + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "liquidityProvider", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_oldRepr", + type: "address", + }, + ], + name: "migrate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "preFill", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "remotes", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "representationToCanonical", + outputs: [ + { + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "id", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_id", + type: "bytes32", + }, + ], + name: "requestDetails", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_token", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "uint32", + name: "_destination", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_recipient", + type: "bytes32", + }, + ], + name: "send", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "setXAppConnectionManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "tokenBeacon", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "xAppConnectionManager", + outputs: [ + { + internalType: "contract XAppConnectionManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50615fd880620000216000396000f3fe60806040523480156200001157600080fd5b5060043610620001c05760003560e01c80636eb3d5fe11620000f9578063cbcacfee1162000099578063d82d0531116200006f578063d82d05311462000628578063f2fde38b146200066a578063ffa1ad7414620006a057620001c0565b8063cbcacfee14620005b2578063ccf5a77c14620005e8578063ce5494bb14620005f257620001c0565b80638da5cb5b11620000cf5780638da5cb5b1462000550578063b49c53a7146200055a578063c3a7a023146200058657620001c0565b80636eb3d5fe1462000516578063715018a6146200052057806383bbb806146200052a57620001c0565b8063485cc9551162000165578063589b3c64116200013b578063589b3c6414620004585780636256878714620004845780636cdccfb814620004fa57620001c0565b8063485cc955146200033c578063546d573d146200037a57806356d5d475146200039a57620001c0565b806328b1aea0116200019b57806328b1aea014620002b45780633339df9614620002fc57806341bdc8b5146200030657620001c0565b806303e418c214620001c55780631cabf08f146200021b5780631ecf6f9f146200026b575b600080fd5b620001fb60048036036020811015620001dd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620006c0565b6040805163ffffffff909316835260208301919091528051918290030190f35b62000269600480360360808110156200023357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359063ffffffff6040820135169060600135620006e2565b005b6200028b600480360360208110156200028357600080fd5b503562000aa6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6200026960048036036060811015620002cc57600080fd5b50803563ffffffff16906020810135906040013573ffffffffffffffffffffffffffffffffffffffff1662000ace565b6200028b62000e0a565b62000269600480360360208110156200031e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000e26565b62000269600480360360408110156200035457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351662000f1a565b6200028b600480360360208110156200039257600080fd5b50356200104e565b6200026960048036036060811015620003b257600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115620003e057600080fd5b820183602082011115620003f357600080fd5b803590602001918460018302840111640100000000831117156200041657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062001076945050505050565b6200028b600480360360408110156200047057600080fd5b5063ffffffff81351690602001356200133a565b62000269600480360360208110156200049c57600080fd5b810190602081018135640100000000811115620004b857600080fd5b820183602082011115620004cb57600080fd5b80359060200191846001830284011164010000000083111715620004ee57600080fd5b50909250905062001359565b62000504620015d9565b60408051918252519081900360200190f35b62000504620015df565b62000269620015e5565b62000504600480360360208110156200054257600080fd5b503563ffffffff1662001701565b6200028b62001713565b62000269600480360360408110156200057257600080fd5b5063ffffffff81351690602001356200172f565b62000269600480360360408110156200059e57600080fd5b5063ffffffff8135169060200135620017f5565b620001fb60048036036020811015620005ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620018bd565b6200028b62001908565b62000269600480360360208110156200060a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001924565b6200028b600480360360408110156200064057600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff1662001c44565b62000269600480360360208110156200068257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001c5c565b620006aa62001e05565b6040805160ff9092168252519081900360200190f35b60ca602052600090815260409020805460019091015463ffffffff9091169082565b600083116200075257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21616d6e74000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b80620007bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172656369700000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000620007cc8362001e0a565b905084620007da8162001e92565b156200080a576200080473ffffffffffffffffffffffffffffffffffffffff821633308862001ea5565b620008a0565b620008158162001f42565b73ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200088657600080fd5b505af11580156200089b573d6000803e3d6000fd5b505050505b6000620008ae848762001f45565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200091957600080fd5b505afa1580156200092e573d6000803e3d6000fd5b505050506040513d60208110156200094557600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de0186856200097a620009738c62001fa6565b8662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620009da578181015183820152602001620009c0565b50505050905090810190601f16801562000a085780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801562000a2a57600080fd5b505af115801562000a3f573d6000803e3d6000fd5b505060408051878152602081018a9052815163ffffffff8a16945033935073ffffffffffffffffffffffffffffffffffffffff8716927fcf20fd9072af09cee97ee48e835f72e237cebf880d75143434214e57d6496d60928290030190a450505050505050565b60cb6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b62000ad862002116565b73ffffffffffffffffffffffffffffffffffffffff1662000af862001713565b73ffffffffffffffffffffffffffffffffffffffff161462000b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff8316916340c10f1991604480830192600092919082900301818387803b15801562000bf057600080fd5b505af115801562000c05573d6000803e3d6000fd5b5050604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff85169350639dc29fac9250604480830192600092919082900301818387803b15801562000c7e57600080fd5b505af115801562000c93573d6000803e3d6000fd5b50505050600062000ca584846200211a565b905062000cd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166200216c565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562000d597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216620021b8565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca602052604081206001019190915562000db27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620021fa565b600090815260cb6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff949094169390931790925550505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b62000e3062002116565b73ffffffffffffffffffffffffffffffffffffffff1662000e5062001713565b73ffffffffffffffffffffffffffffffffffffffff161462000ed357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff168062000f36575062000f366200223d565b8062000f45575060005460ff16155b62000f9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200100357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6200100e8362002250565b6200101982620023ad565b80156200104957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60cc6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b620010813362002513565b620010ed57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8282620010fb8282620025bf565b6200116757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b6000620011a1620011798583620025db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662002601565b90506000620011d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200263a565b90506000620012037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200267e565b9050620012327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002714565b156200124a5762001244828262002750565b62001330565b620012777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002937565b1562001289576200124482826200295a565b620012b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002bc0565b15620012c9576200124488888462002be3565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050505050565b6000620013526200134c84846200211a565b62003049565b9392505050565b6000620013a562001179600085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620025db9050565b9050600062001402620013da7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200263a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003128565b905060006200145f620014377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166200267e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003139565b905060006200146f83836200314a565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16156200150457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21756e66696c6c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600081815260cc6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556200154584620031eb565b9050620015d033620015797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166200327e565b620015b0620015aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620032be565b62003300565b73ffffffffffffffffffffffffffffffffffffffff851692919062001ea5565b50505050505050565b61270b81565b61271081565b620015ef62002116565b73ffffffffffffffffffffffffffffffffffffffff166200160f62001713565b73ffffffffffffffffffffffffffffffffffffffff16146200169257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60976020526000908152604090205481565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b6200173962002116565b73ffffffffffffffffffffffffffffffffffffffff166200175962001713565b73ffffffffffffffffffffffffffffffffffffffff1614620017dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b620017ff62002116565b73ffffffffffffffffffffffffffffffffffffffff166200181f62001713565b73ffffffffffffffffffffffffffffffffffffffff1614620018a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000620018b083836200211a565b9050620010498162003312565b73ffffffffffffffffffffffffffffffffffffffff16600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549290910182905291565b60c95473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff1680845260019091015491830191909152620019d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2172657072000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b816000620019e783620034fe565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562001a8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f21646966666572656e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562001aef57600080fd5b505afa15801562001b04573d6000803e3d6000fd5b505050506040513d602081101562001b1b57600080fd5b5051604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905191925073ffffffffffffffffffffffffffffffffffffffff851691639dc29fac9160448082019260009290919082900301818387803b15801562001b9657600080fd5b505af115801562001bab573d6000803e3d6000fd5b5050604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff861693506340c10f199250604480830192600092919082900301818387803b15801562001c2457600080fd5b505af115801562001c39573d6000803e3d6000fd5b505050505050505050565b6000620013528362001c568462003515565b6200133a565b62001c6662002116565b73ffffffffffffffffffffffffffffffffffffffff1662001c8662001713565b73ffffffffffffffffffffffffffffffffffffffff161462001d0957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811662001d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005e1c6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b63ffffffff81166000908152609760205260409020548062001e8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b919050565b600062001e9f826200352e565b92915050565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905262001f3c90859062003570565b50505050565b90565b60006200135262001fa06000600386866040516020018084600581111562001f6957fe5b60f81b81526001018381526020018281526020019350505050604051602081830303815290604052620025db90919063ffffffff16565b62003139565b60008062001fb4836200364e565b905062001352816000015182602001516200211a565b606082600162001fff815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690620036ce565b506200200b846200385a565b6200207757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616374696f6e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160028082526060820183526000926020830190803683370190505090508581600081518110620020a757fe5b602002602001019062ffffff1916908162ffffff1916815250508481600181518110620020d057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101909101526200210c816200388b565b9695505050505050565b3390565b6000620013526200216660008585604051602001808363ffffffff1660e01b815260040182815260200192505050604051602081830303815290604052620025db90919063ffffffff16565b62003128565b60008160016200217c8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006004620038e1565b92505b5050919050565b6000816001620021c88162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166004602062003904565b600080620022088362003a87565b6bffffffffffffffffffffffff1690506000620022258462003a9b565b6bffffffffffffffffffffffff169091209392505050565b60006200224a3062003aaf565b15905090565b600054610100900460ff16806200226c57506200226c6200223d565b806200227b575060005460ff16155b620022d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200233957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015620023a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600054610100900460ff1680620023c95750620023c96200223d565b80620023d8575060005460ff16155b6200242f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200249657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055620024e062003ab5565b8015620023a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b1580156200258b57600080fd5b505afa158015620025a0573d6000803e3d6000fd5b505050506040513d6020811015620025b757600080fd5b505192915050565b63ffffffff919091166000908152609760205260409020541490565b815160009060208401620025f864ffffffffff8516828462003be4565b95945050505050565b600062001e9f620026128362003c41565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003c8f565b60008160026200264a8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006024600162003d0c565b60008160026200268e8162001fd5565b5060006024620026c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003a9b565b6bffffffffffffffffffffffff160390506000620026de8662003da0565b60ff1690506200210c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166024848462003d0c565b60006003620027238362003dd3565b60ff1614801562001e9f575060035b6200273d8362003e05565b60058111156200274957fe5b1492915050565b60006200275d8362003e43565b905060006200278e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200327e565b905060006200279e85856200314a565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680156200280557600082815260cc6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559150815b620028108462001e92565b156200286d576200286783620028487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620032be565b73ffffffffffffffffffffffffffffffffffffffff8716919062003e87565b6200292f565b620028788462001f42565b73ffffffffffffffffffffffffffffffffffffffff166340c10f1984620028c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916620032be565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200291557600080fd5b505af11580156200292a573d6000803e3d6000fd5b505050505b505050505050565b60006004620029468362003dd3565b60ff1614801562001e9f5750600462002732565b60006200296783620031eb565b9050620029748162001e92565b15620029e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f7465206f726967696e000000000000000000000000000000000000604482015290519081900360640190fd5b620029ec8162001f42565b73ffffffffffffffffffffffffffffffffffffffff1663654935f462002a3e62002a387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861662003f16565b62003f58565b62002a6f62002a387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003fcf565b62002a9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662004011565b6040518463ffffffff1660e01b81526004018080602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562002af757818101518382015260200162002add565b50505050905090810190601f16801562002b255780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562002b5a57818101518382015260200162002b40565b50505050905090810190601f16801562002b885780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562002bab57600080fd5b505af1158015620015d0573d6000803e3d6000fd5b6000600562002bcf8362003dd3565b60ff1614801562001e9f5750600562002732565b600062002c127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004053565b905062002c1f816200352e565b62002c8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f216c6f63616c206f726967696e00000000000000000000000000000000000000604482015290519081900360640190fd5b6000819050600062002ed762002dfc8373ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002ce357600080fd5b505af115801562002cf8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101562002d4057600080fd5b810190808051604051939291908464010000000082111562002d6157600080fd5b90830190602082018581111562002d7757600080fd5b825164010000000081118282018810171562002d9257600080fd5b82525081516020918201929091019080838360005b8381101562002dc157818101518382015260200162002da7565b50505050905090810190601f16801562002def5780820380516001836020036101000a031916815260200191505b5060405250505062004093565b62002e5c8473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801562002e4757600080fd5b505afa15801562002cf8573d6000803e3d6000fd5b8473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801562002ea357600080fd5b505afa15801562002eb8573d6000803e3d6000fd5b505050506040513d602081101562002ecf57600080fd5b5051620040dd565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b15801562002f4257600080fd5b505afa15801562002f57573d6000803e3d6000fd5b505050506040513d602081101562002f6e57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de01878762002f99888662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562002ff957818101518382015260200162002fdf565b50505050905090810190601f168015620030275780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156200291557600080fd5b6000620030556200414c565b63ffffffff16620030887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200216c565b63ffffffff161415620030ca57620030c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004053565b905062001e8d565b60cb6000620030fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021fa565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b600062001e9f62002612836200415d565b600062001e9f6200261283620041af565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106200317e57fe5b602002602001019062ffffff1916908162ffffff1916815250508281600181518110620031a757fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910190910152620031e38162004201565b949350505050565b600080620031f98362003049565b905073ffffffffffffffffffffffffffffffffffffffff811662001e9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21746f6b656e0000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008160036200328e8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600d6200421d565b6000816003620032ce8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660216020620038e1565b600061271061270b83025b0492915050565b6000620033417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200216c565b63ffffffff81166000908152609760205260409020549091508062003368575050620034fb565b6000620033746200422d565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620033df57600080fd5b505afa158015620033f4573d6000803e3d6000fd5b505050506040513d60208110156200340b57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de01848462003436888662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620034965781810151838201526020016200347c565b50505050905090810190601f168015620034c45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015620034e657600080fd5b505af115801562001330573d6000803e3d6000fd5b50565b600062001e9f6200350f836200427e565b62004294565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca602052604081205463ffffffff1615620035695750600062001e8d565b503b151590565b6000620035d4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620042c69092919063ffffffff16565b8051909150156200104957808060200190516020811015620035f557600080fd5b505162001049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018062005ef1602a913960400191505060405180910390fd5b620036586200586b565b5073ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549183019190915262001e8d57620036b16200414c565b63ffffffff168152620036c48262003515565b6020820152919050565b6000620036dc8383620042d7565b62003853576000620036ff620036f285620042fb565b64ffffffffff1662004301565b9150506000620037168464ffffffffff1662004301565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b8381101562003817578181015183820152602001620037fd565b50505050905090810190601f168015620038455780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b6000620038678262002937565b80620038795750620038798262002bc0565b8062001e9f575062001e9f8262002714565b6040516060906000620038a28460208401620043df565b90506000620038b18262003a9b565b6bffffffffffffffffffffffff1690506000620038ce8362004461565b9184525082016020016040525092915050565b60008160200360080260ff16620038fa85858562003904565b901c949350505050565b600060ff8216620039185750600062001352565b620039238462003a9b565b6bffffffffffffffffffffffff16620039408460ff851662004477565b1115620039eb5762003988620039568562003a87565b6bffffffffffffffffffffffff166200396f8662003a9b565b6bffffffffffffffffffffffff16858560ff16620044ea565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831562003817578181015183820152602001620037fd565b60208260ff16111562003a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018062005eb7603a913960400191505060405180910390fd5b60088202600062003a5b8662003a87565b6bffffffffffffffffffffffff169050600062003a78836200464f565b91909501511695945050505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168062003ad1575062003ad16200223d565b8062003ae0575060005460ff16155b62003b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff1615801562003b9e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b62003ba862004698565b62003bb2620047b2565b8015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008062003bf3848462004477565b905060405181111562003c04575060005b8062003c34577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505062001352565b620025f88585856200494c565b600062003c4e826200495f565b1562003c8557620030c260025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690620049bf565b62001e9f620049e5565b600062003c9c8262004a09565b62003d0857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b60008062003d1a8662003a87565b6bffffffffffffffffffffffff16905062003d358662004a4c565b62003d4d8562003d46848962004477565b9062004477565b111562003d7e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050620031e3565b62003d8a818662004477565b90506200210c8364ffffffffff16828662003be4565b600062001e9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246001620038e1565b600062001e9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826001620038e1565b600062003e347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620042fb565b60ff16600581111562001e9f57fe5b60008062003e518362003049565b905073ffffffffffffffffffffffffffffffffffffffff811662001e9f5762003e7a8362004a7a565b905062001e9f8362003312565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526200104990849062003570565b600081600462003f268162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166001602062003904565b606060005b60208160ff1610801562003fa55750828160ff166020811062003f7c57fe5b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b1562003fb45760010162003f5d565b60405191506040820160405280825282602083015250919050565b600081600462003fdf8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166021602062003904565b6000816004620040218162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660416001620038e1565b6000816001620040638162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660106200421d565b600062001e9f60008351620040b3600086620025db90919063ffffffff16565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016919062003904565b6000620031e36200414660006004878787604051602001808560058111156200410257fe5b60f81b81526001018481526020018381526020018260ff1660f81b8152600101945050505050604051602081830303815290604052620025db90919063ffffffff16565b62004e87565b60006200415862004e98565b905090565b600060246200418e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600162003c5b565b60006041620041e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600362003c5b565b60405160009062001352620042178483620043df565b620021fa565b60006200135283836014620038e1565b6000620041586200427860006005604051602001808260058111156200424f57fe5b60f81b8152600101915050604051602081830303815290604052620025db90919063ffffffff16565b62004f37565b600062001e9f826000015183602001516200211a565b600060cb81620030fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021fa565b6060620031e3848460008562004f48565b60008164ffffffffff16620042ec84620042fb565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156200436e5760ff600882021684901c62004329816200510d565b61ffff16841793508160ff166010146200434557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004307565b50600f5b60ff8160ff161015620043d95760ff600882021684901c62004394816200510d565b61ffff16831792508160ff16600014620043b057601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004372565b50915091565b600060405182811115620043f35760206060fd5b506000805b8451811015620044525760008582815181106200441157fe5b60200260200101519050620044298184870162005141565b50620044358162003a9b565b6bffffffffffffffffffffffff16929092019150600101620043f8565b50620031e3600084836200494c565b60006200446e826200527e565b60200292915050565b8181018281101562001e9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b60606000620044f98662004301565b9150506000620045098662004301565b9150506000620045198662004301565b9150506000620045298662004301565b91505083838383604051602001808062005f6e603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602162005e6882397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600054610100900460ff1680620046b45750620046b46200223d565b80620046c3575060005460ff16155b6200471a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff1615801562003bb257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680620047ce5750620047ce6200223d565b80620047dd575060005460ff16155b62004834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200489b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000620048a762002116565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b606092831b9190911790911b1760181b90565b6000806200498f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff1690506065811480620049af5750606681145b8062001352575060251492915050565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b600062004a1682620042fb565b64ffffffffff1664ffffffffff141562004a335750600062001e8d565b600062004a408362004a4c565b60405110199392505050565b600062004a598262003a9b565b62004a648362003a87565b016bffffffffffffffffffffffff169050919050565b60c95460405160009173ffffffffffffffffffffffffffffffffffffffff169062004aa59062005882565b73ffffffffffffffffffffffffffffffffffffffff909116815260406020820181905260008183018190529051918290036060019190f08015801562004aef573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562004b3b57600080fd5b505af115801562004b50573d6000803e3d6000fd5b5050505060608062004b6284620052b0565b80925081935050508273ffffffffffffffffffffffffffffffffffffffff1663654935f4838360126040518463ffffffff1660e01b8152600401808060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562004be257818101518382015260200162004bc8565b50505050905090810190601f16801562004c105780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562004c4557818101518382015260200162004c2b565b50505050905090810190601f16801562004c735780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562004c9657600080fd5b505af115801562004cab573d6000803e3d6000fd5b5050505062004cc08462ffffff19166200216c565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562004d457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021b8565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040812060010191909155839060cb9062004da37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620021fa565b8152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055831662004e217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616620021b8565b62004e4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166200216c565b63ffffffff167f84d5e3618bf276f3d29a931646fdd996b398a3efa3cf6bceefc1fe7f0304059f60405160405180910390a45050919050565b600062001e9f6200261283620053ca565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801562004f0457600080fd5b505afa15801562004f19573d6000803e3d6000fd5b505050506040513d602081101562004f3057600080fd5b5051905090565b600062001e9f62002612836200541c565b60608247101562004fa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005e426026913960400191505060405180910390fd5b62004fb08562003aaf565b6200501c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106200508757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910162005048565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114620050eb576040519150601f19603f3d011682016040523d82523d6000602084013e620050f0565b606091505b5091509150620051028282866200546e565b979650505050505050565b60006200512160048360ff16901c620054f3565b60ff161760081b62ffff00166200513882620054f3565b60ff1617919050565b60006200514e836200567f565b620051a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018062005f1b6028913960400191505060405180910390fd5b620051b08362004a09565b62005207576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062005f43602b913960400191505060405180910390fd5b6000620052148462003a9b565b6bffffffffffffffffffffffff1690506000620052318562003a87565b6bffffffffffffffffffffffff1690506000604051905084811115620052575760206060fd5b8285848460045afa506200210c6200526f87620042fb565b64ffffffffff1686856200494c565b60006020620052a86020620052938562003a9b565b6bffffffffffffffffffffffff169062004477565b816200330b57fe5b6060806000620052ec620052e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616620021b8565b62005693565b9150506200530a620053048562ffffff19166200216c565b6200576b565b6040805160b09290921b7fffffffffffffffffffff000000000000000000000000000000000000000000001660208301527f2e00000000000000000000000000000000000000000000000000000000000000602a83015260e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016602b8301528051808303600f9081018252602f8401818152606f85019093529095509091604f0181803683370190505091506020830151602083015250915091565b60006042620053fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600462003c5b565b600060016200544d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600562003c5b565b606083156200547f57508162001352565b825115620054905782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831562003817578181015183820152602001620037fd565b600060f08083179060ff821614156200551157603091505062001e8d565b8060ff1660f114156200552957603191505062001e8d565b8060ff1660f214156200554157603291505062001e8d565b8060ff1660f314156200555957603391505062001e8d565b8060ff1660f414156200557157603491505062001e8d565b8060ff1660f514156200558957603591505062001e8d565b8060ff1660f61415620055a157603691505062001e8d565b8060ff1660f71415620055b957603791505062001e8d565b8060ff1660f81415620055d157603891505062001e8d565b8060ff1660f91415620055e957603991505062001e8d565b8060ff1660fa14156200560157606191505062001e8d565b8060ff1660fb14156200561957606291505062001e8d565b8060ff1660fc14156200563157606391505062001e8d565b8060ff1660fd14156200564957606491505062001e8d565b8060ff1660fe14156200566157606591505062001e8d565b8060ff1660ff14156200567957606691505062001e8d565b50919050565b60006200568c82620057c6565b1592915050565b600080601f5b600f8160ff161115620057005760ff600882021684901c620056bb81620057ee565b61ffff16841793508160ff16601014620056d757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005699565b50600f5b60ff8160ff161015620043d95760ff600882021684901c6200572681620057ee565b61ffff16831792508160ff166000146200574257601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005704565b60006030815b600a8160ff161015620021b15760ff600882021682600a63ffffffff87160663ffffffff160169ffffffffffffffffffff16901b83179250600a8463ffffffff1681620057ba57fe5b04935060010162005771565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60006200580260048360ff16901c62005814565b60ff161760081b62ffff001662005138825b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106200585c57fe5b016020015160f81c9392505050565b604080518082019091526000808252602082015290565b61058b80620058918339019056fe60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea2646970667358221220e084da10f1437ab964c16dc80d846859df965188ba4815af7c882864b60df38a64736f6c634300070600334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212204b8cebcc9d3b67a6a74b1f15292b8b70f3861535794097f5b52b8cecce7db2e364736f6c63430007060033"; + +export class BridgeRouter__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BridgeRouter { + return super.attach(address) as BridgeRouter; + } + connect(signer: Signer): BridgeRouter__factory { + return super.connect(signer) as BridgeRouter__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BridgeRouterInterface { + return new utils.Interface(_abi) as BridgeRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BridgeRouter { + return new Contract(address, _abi, signerOrProvider) as BridgeRouter; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/BridgeToken__factory.ts b/solidity/abacus-xapps/typechain/factories/BridgeToken__factory.ts new file mode 100644 index 000000000..59d44203d --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/BridgeToken__factory.ts @@ -0,0 +1,536 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { BridgeToken, BridgeTokenInterface } from "../BridgeToken"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "_PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "address", + name: "_spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "uint256", + name: "_amnt", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_subtractedValue", + type: "uint256", + }, + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "domainSeparator", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_addedValue", + type: "uint256", + }, + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_amnt", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_value", + type: "uint256", + }, + { + internalType: "uint256", + name: "_deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "_v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "_r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_newName", + type: "string", + }, + { + internalType: "string", + name: "_newSymbol", + type: "string", + }, + { + internalType: "uint8", + name: "_newDecimals", + type: "uint8", + }, + ], + name: "setDetails", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_recipient", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_sender", + type: "address", + }, + { + internalType: "address", + name: "_recipient", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c6121646100a560003980610f43525080611369525080610c835280610edf52506121646000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80638129fc1c116100e3578063a9059cbb1161008c578063f2fde38b11610066578063f2fde38b1461060b578063f698da251461063e578063ffa1ad74146106465761018d565b8063a9059cbb14610539578063d505accf14610572578063dd62ed3e146105d05761018d565b8063982aaf6b116100bd578063982aaf6b146104bf5780639dc29fac146104c7578063a457c2d7146105005761018d565b80638129fc1c1461047e5780638da5cb5b1461048657806395d89b41146104b75761018d565b8063395093511161014557806370a082311161011f57806370a0823114610410578063715018a6146104435780637ecebe001461044b5761018d565b806339509351146102d757806340c10f1914610310578063654935f41461034b5761018d565b806318160ddd1161017657806318160ddd1461025c57806323b872dd14610276578063313ce567146102b95761018d565b806306fdde0314610192578063095ea7b31461020f575b600080fd5b61019a61064e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d45781810151838201526020016101bc565b50505050905090810190601f1680156102015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102486004803603604081101561022557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610702565b604080519115158252519081900360200190f35b610264610718565b60408051918252519081900360200190f35b6102486004803603606081101561028c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561071e565b6102c1610794565b6040805160ff9092168252519081900360200190f35b610248600480360360408110156102ed57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561079d565b6103496004803603604081101561032657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107e0565b005b6103496004803603606081101561036157600080fd5b81019060208101813564010000000081111561037c57600080fd5b82018360208201111561038e57600080fd5b803590602001918460018302840111640100000000831117156103b057600080fd5b9193909290916020810190356401000000008111156103ce57600080fd5b8201836020820111156103e057600080fd5b8035906020019184600183028401116401000000008311171561040257600080fd5b91935091503560ff16610896565b6102646004803603602081101561042657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610990565b6103496109a1565b6102646004803603602081101561046157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ab8565b610349610aca565b61048e610be6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61019a610c02565b610264610c81565b610349600480360360408110156104dd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ca5565b6102486004803603604081101561051657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610d57565b6102486004803603604081101561054f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610db3565b610349600480360360e081101561058857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610dc0565b610264600480360360408110156105e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166110ed565b6103496004803603602081101561062157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611125565b6102646112c7565b6102c16113bd565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106f85780601f106106cd576101008083540402835291602001916106f8565b820191906000526020600020905b8154815290600101906020018083116106db57829003601f168201915b5050505050905090565b600061070f3384846113c2565b50600192915050565b60675490565b600061072b848484611509565b61078a8433610785856040518060600160405280602881526020016120786028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260666020908152604080832033845290915290205491906116db565b6113c2565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161070f918590610785908661178c565b6107e8611807565b73ffffffffffffffffffffffffffffffffffffffff16610806610be6565b73ffffffffffffffffffffffffffffffffffffffff161461088857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610892828261180b565b5050565b61089e611807565b73ffffffffffffffffffffffffffffffffffffffff166108bc610be6565b73ffffffffffffffffffffffffffffffffffffffff161461093e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61094a60688686611ed7565b5061095760698484611ed7565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b600061099b8261193e565b92915050565b6109a9611807565b73ffffffffffffffffffffffffffffffffffffffff166109c7610be6565b73ffffffffffffffffffffffffffffffffffffffff1614610a4957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610ae35750610ae3611966565b80610af1575060005460ff16155b610b46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015610bac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610bb4611977565b8015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106f85780601f106106cd576101008083540402835291602001916106f8565b7f000000000000000000000000000000000000000000000000000000000000000081565b610cad611807565b73ffffffffffffffffffffffffffffffffffffffff16610ccb610be6565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6108928282611a69565b600061070f33846107858560405180606001604052806025815260200161210a6025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906116db565b600061070f338484611509565b83421115610e2f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610eb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f0000000000000000000000000000000000000000000000000000000000000000610f6a6112c7565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611004573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b602052604090206001850190556110e08b8b8b6113c2565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61112d611807565b73ffffffffffffffffffffffffffffffffffffffff1661114b610be6565b73ffffffffffffffffffffffffffffffffffffffff16146111cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611239576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fdc6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561134e5780601f1061132c57610100808354040283529182019161134e565b820191906000526020600020905b81548152906001019060200180831161133a575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b600081565b73ffffffffffffffffffffffffffffffffffffffff831661142e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120e66024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661149a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120026022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611575576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120c16025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f976023913960400191505060405180910390fd5b6115ec838383611bb3565b611636816040518060600160405280602681526020016120246026913973ffffffffffffffffffffffffffffffffffffffff861660009081526065602052604090205491906116db565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152606560205260408082209390935590841681522054611672908261178c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611784576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611749578181015183820152602001611731565b50505050905090810190601f1680156117765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561180057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff821661188d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61189960008383611bb3565b6067546118a6908261178c565b60675573ffffffffffffffffffffffffffffffffffffffff82166000908152606560205260409020546118d9908261178c565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b600061197130611bb8565b15905090565b600054610100900460ff16806119905750611990611966565b8061199e575060005460ff16155b6119f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015611a5957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611a61611bbe565b610bb4611cd0565b73ffffffffffffffffffffffffffffffffffffffff8216611ad5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120a06021913960400191505060405180910390fd5b611ae182600083611bb3565b611b2b81604051806060016040528060228152602001611fba6022913973ffffffffffffffffffffffffffffffffffffffff851660009081526065602052604090205491906116db565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611b5e9082611e60565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611bd75750611bd7611966565b80611be5575060005460ff16155b611c3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015610bb457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611ce95750611ce9611966565b80611cf7575060005460ff16155b611d4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015611db257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611dbc611807565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600082821115611ed157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611f0d5760008555611f71565b82601f10611f44578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611f71565b82800160010185558215611f71579182015b82811115611f71578235825591602001919060010190611f56565b50611f7d929150611f81565b5090565b5b80821115611f7d5760008155600101611f8256fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd3c7adf3abcafbea5db66403ce63c3439e83481286f84b3e815e9ec76e8155064736f6c63430007060033"; + +export class BridgeToken__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): BridgeToken { + return super.attach(address) as BridgeToken; + } + connect(signer: Signer): BridgeToken__factory { + return super.connect(signer) as BridgeToken__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BridgeTokenInterface { + return new utils.Interface(_abi) as BridgeTokenInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BridgeToken { + return new Contract(address, _abi, signerOrProvider) as BridgeToken; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/Common__factory.ts b/solidity/abacus-xapps/typechain/factories/Common__factory.ts new file mode 100644 index 000000000..b8ef76ffe --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/Common__factory.ts @@ -0,0 +1,188 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { Common, CommonInterface } from "../Common"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class Common__factory { + static readonly abi = _abi; + static createInterface(): CommonInterface { + return new utils.Interface(_abi) as CommonInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): Common { + return new Contract(address, _abi, signerOrProvider) as Common; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/ERC20__factory.ts b/solidity/abacus-xapps/typechain/factories/ERC20__factory.ts new file mode 100644 index 000000000..347560d93 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/ERC20__factory.ts @@ -0,0 +1,275 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { ERC20, ERC20Interface } from "../ERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "address", + name: "_spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_subtractedValue", + type: "uint256", + }, + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_addedValue", + type: "uint256", + }, + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_recipient", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_sender", + type: "address", + }, + { + internalType: "address", + name: "_recipient", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b5061096d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610170578063a457c2d7146101a3578063a9059cbb146101dc578063dd62ed3e1461021557610088565b8063095ea7b31461008d57806318160ddd146100da57806323b872dd146100f45780633950935114610137575b600080fd5b6100c6600480360360408110156100a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610250565b604080519115158252519081900360200190f35b6100e2610266565b60408051918252519081900360200190f35b6100c66004803603606081101561010a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561026c565b6100c66004803603604081101561014d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356102e2565b6100e26004803603602081101561018657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610325565b6100c6600480360360408110156101b957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561034d565b6100c6600480360360408110156101f257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103a9565b6100e26004803603604081101561022b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166103b6565b600061025d3384846103ee565b50600192915050565b60025490565b6000610279848484610535565b6102d884336102d3856040518060600160405280602881526020016108a26028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526001602090815260408083203384529091529020549190610705565b6103ee565b5060019392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161025d9185906102d390866107b6565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b600061025d33846102d3856040518060600160405280602581526020016109136025913933600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529020549190610705565b600061025d338484610535565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b73ffffffffffffffffffffffffffffffffffffffff831661045a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806108ef6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166104c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061085a6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166105a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806108ca6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661060d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806108376023913960400191505060405180910390fd5b610618838383610831565b6106628160405180606001604052806026815260200161087c6026913973ffffffffffffffffffffffffffffffffffffffff86166000908152602081905260409020549190610705565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461069e90826107b6565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561077357818101518382015260200161075b565b50505050905090810190601f1680156107a05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561082a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fd7323c136624dd20de20c82a26a8a31fb62e402a90baade75ad3cd4e5387e7964736f6c63430007060033"; + +export class ERC20__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): ERC20 { + return super.attach(address) as ERC20; + } + connect(signer: Signer): ERC20__factory { + return super.connect(signer) as ERC20__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20Interface { + return new utils.Interface(_abi) as ERC20Interface; + } + static connect(address: string, signerOrProvider: Signer | Provider): ERC20 { + return new Contract(address, _abi, signerOrProvider) as ERC20; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/ETHHelper__factory.ts b/solidity/abacus-xapps/typechain/factories/ETHHelper__factory.ts new file mode 100644 index 000000000..1c1bf3a42 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/ETHHelper__factory.ts @@ -0,0 +1,142 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { ETHHelper, ETHHelperInterface } from "../ETHHelper"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_weth", + type: "address", + }, + { + internalType: "address", + name: "_bridge", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "bridge", + outputs: [ + { + internalType: "contract BridgeRouter", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "send", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_to", + type: "bytes32", + }, + ], + name: "sendTo", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "address", + name: "_to", + type: "address", + }, + ], + name: "sendToEVMLike", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "weth", + outputs: [ + { + internalType: "contract IWeth", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c060405234801561001057600080fd5b5060405161045d38038061045d8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606083811b821660805282901b1660a0526040805163095ea7b360e01b81526001600160a01b038084166004830152600019602483015291519184169163095ea7b39160448082019260009290919082900301818387803b1580156100a957600080fd5b505af11580156100bd573d6000803e3d6000fd5b50505050505060805160601c60a05160601c6103626100fb6000398061023e52806102e052508061014152806101fb52806102bc52506103626000f3fe60806040526004361061005a5760003560e01c80633fc8cef3116100435780633fc8cef3146100ad578063e78cea92146100eb578063ec93e5f0146101005761005a565b806303c1d2831461005f5780632e96d5a31461008a575b600080fd5b6100886004803603604081101561007557600080fd5b5063ffffffff813516906020013561013f565b005b610088600480360360208110156100a057600080fd5b503563ffffffff166102a5565b3480156100b957600080fd5b506100c26102ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100f757600080fd5b506100c26102de565b6100886004803603604081101561011657600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff16610302565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b5050604080517f1cabf08f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015234602483015263ffffffff881660448301526064820187905291517f00000000000000000000000000000000000000000000000000000000000000009092169450631cabf08f9350608480820193506000929182900301818387803b15801561028957600080fd5b505af115801561029d573d6000803e3d6000fd5b505050505050565b6102b7816102b233610313565b61013f565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61030f826102b283610313565b5050565b73ffffffffffffffffffffffffffffffffffffffff169056fea26469706673582212201dc9bf30653661849be4a806c1817e3e68a25dc9b56b4413c3ad1aa16d9e868664736f6c63430007060033"; + +export class ETHHelper__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _weth: string, + _bridge: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_weth, _bridge, overrides || {}) as Promise; + } + getDeployTransaction( + _weth: string, + _bridge: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_weth, _bridge, overrides || {}); + } + attach(address: string): ETHHelper { + return super.attach(address) as ETHHelper; + } + connect(signer: Signer): ETHHelper__factory { + return super.connect(signer) as ETHHelper__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ETHHelperInterface { + return new utils.Interface(_abi) as ETHHelperInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ETHHelper { + return new Contract(address, _abi, signerOrProvider) as ETHHelper; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/Home__factory.ts b/solidity/abacus-xapps/typechain/factories/Home__factory.ts new file mode 100644 index 000000000..1ea1946a2 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/Home__factory.ts @@ -0,0 +1,652 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Home, HomeInterface } from "../Home"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "uint256", + name: "leafIndex", + type: "uint256", + }, + { + indexed: true, + internalType: "uint64", + name: "destinationAndNonce", + type: "uint64", + }, + { + indexed: false, + internalType: "bytes32", + name: "committedRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "Dispatch", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "ImproperUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updaterManager", + type: "address", + }, + ], + name: "NewUpdaterManager", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "updater", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "reporter", + type: "address", + }, + ], + name: "UpdaterSlashed", + type: "event", + }, + { + inputs: [], + name: "MAX_MESSAGE_BODY_BYTES", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "count", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_recipientAddress", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_messageBody", + type: "bytes", + }, + ], + name: "dispatch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "improperUpdate", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IUpdaterManager", + name: "_updaterManager", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "queueContains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueEnd", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "root", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updaterManager", + type: "address", + }, + ], + name: "setUpdaterManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "suggestUpdate", + outputs: [ + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_new", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "tree", + outputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "update", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "updaterManager", + outputs: [ + { + internalType: "contract IUpdaterManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60a060405234801561001057600080fd5b50604051612fbe380380612fbe8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f4b610073600039806109875280610ad55280610fad52806115f55250612f4b6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639df6c8e1116100ee578063df034cd011610097578063f6d1610211610071578063f6d16102146105fc578063fa31de0114610604578063fd54b228146106bc578063ffa1ad74146106c4576101ae565b8063df034cd0146105b9578063ebf0c717146105c1578063f2fde38b146105c9576101ae565b8063b95a2001116100c8578063b95a20011461053a578063c19d93fb1461055d578063c4d66de814610586576101ae565b80639df6c8e114610478578063ab91c7b014610480578063b31c01fb14610488576101ae565b806367a6771d1161015b5780638da5cb5b116101355780638da5cb5b1461032f5780638e4e30e0146103605780639776120e146104125780639d54f41914610445576101ae565b806367a6771d146102fe578063715018a6146103065780638d3638f41461030e576101ae565b806336e104de1161018c57806336e104de146102cd57806345630b1a146102ee578063522ae002146102f6576101ae565b806306661abd146101b357806319d9d21a146101cd5780632bef28921461029c575b600080fd5b6101bb6106e2565b60408051918252519081900360200190f35b61029a600480360360a08110156101e357600080fd5b813591602081019181019060808101606082013564010000000081111561020957600080fd5b82018360208201111561021b57600080fd5b8035906020019184600183028401116401000000008311171561023d57600080fd5b91939092909160208101903564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b5090925090506106e8565b005b6102b9600480360360208110156102b257600080fd5b5035610945565b604080519115158252519081900360200190f35b6102d5610958565b6040805192835260208301919091528051918290030190f35b6101bb610980565b6101bb6109b0565b6101bb6109b6565b61029a6109bc565b610316610ad3565b6040805163ffffffff9092168252519081900360200190f35b610337610af7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102b96004803603606081101561037657600080fd5b81359160208101359181019060608101604082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460018302840111640100000000831117156103d157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b13945050505050565b61029a6004803603602081101561042857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d66565b61029a6004803603602081101561045b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e1a565b610337610eaa565b6101bb610ec7565b61029a6004803603606081101561049e57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ed3945050505050565b6103166004803603602081101561055057600080fd5b503563ffffffff16611071565b61056561108a565b6040518082600281111561057557fe5b815260200191505060405180910390f35b61029a6004803603602081101561059c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110ab565b6103376112c6565b6101bb6112e2565b61029a600480360360208110156105df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112ee565b6101bb611490565b61029a6004803603606081101561061a57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561064757600080fd5b82018360208201111561065957600080fd5b8035906020019184600183028401116401000000008311171561067b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149c945050505050565b6101bb611712565b6106cc611718565b6040805160ff9092168252519081900360200190f35b60545490565b600260865474010000000000000000000000000000000000000000900460ff16600281111561071357fe5b141561078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107c2918891883591889088908190840183828082843760009201919091525061171d92505050565b8015610811575061081186866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061171d92505050565b801561082257508435602086013514155b1561093d5761082f6117af565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b600061095260018361188b565b92915050565b60008061096560016118fb565b1561097c576087549150610979600161193b565b90505b9091565b60006109ab7f0000000000000000000000000000000000000000000000000000000000000000611978565b905090565b61080081565b60875481565b6109c46119ed565b73ffffffffffffffffffffffffffffffffffffffff166109e2610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610a6457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b4057fe5b1415610bad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610bb884848461171d565b610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c9357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c9e60018461188b565b610d5b57610caa6117af565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d17578181015183820152602001610cff565b50505050905090810190601f168015610d445780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d5f565b5060005b9392505050565b610d6e6119ed565b73ffffffffffffffffffffffffffffffffffffffff16610d8c610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e17816119f1565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610ea157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e1781611adf565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab60016118fb565b600260865474010000000000000000000000000000000000000000900460ff166002811115610efe57fe5b1415610f6b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f76838383610b13565b15610f805761106c565b6000610f8c6001611b58565b905082811415610f9c5750610fa2565b50610f80565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611031578181015183820152602001611019565b50505050905090810190601f16801561105e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806110c457506110c4611c91565b806110d2575060005460ff16155b611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff1615801561118d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611195611ca2565b61119d611dc5565b6111a6826119f1565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b5051905061124981611eb1565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a15080156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab603461203e565b6112f66119ed565b73ffffffffffffffffffffffffffffffffffffffff16611314610af7565b73ffffffffffffffffffffffffffffffffffffffff161461139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611402576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e7e6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109ab600161193b565b600260865474010000000000000000000000000000000000000000900460ff1660028111156114c757fe5b141561153457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610800815111156115a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905561161e7f00000000000000000000000000000000000000000000000000000000000000003384888888612051565b80516020820120909150611633603482612127565b61164661163e6112e2565b60019061222f565b50611651868461229c565b67ffffffffffffffff1660016116656106e2565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156116cf5781810151838201526020016116b7565b50505050905090810190601f1680156116fc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b600080611728610980565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611769816122b6565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661178f8285612307565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b6117b76123a1565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b15801561182a57600080fd5b505af115801561183e573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d5b5760008181526001850160205260409020548314156118f3576001915050610952565b6001016118a3565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661193382826123e2565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119fa816123fc565b611a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b9082826123e2565b611bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c4c576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c9c306123fc565b15905090565b600054610100900460ff1680611cbb5750611cbb611c91565b80611cc9575060005460ff16155b611d1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d8457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d8c612402565b611d94612514565b8015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611dde5750611dde611c91565b80611dec575060005460ff16155b611e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611ea757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d9460016126a4565b600054610100900460ff1680611eca5750611eca611c91565b80611ed8575060005460ff16155b611f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611f9357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b60006109528261204c6126e8565b612ba9565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106120e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a5565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161219d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b602081101561222c5781600116600114156121d957828482602081106121cf57fe5b0155506112c29050565b8381602081106121e557fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161222157fe5b0491506001016121ad565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610952576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461237957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61239786828585612c67565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168061241b575061241b611c91565b80612429575060005460ff16155b61247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d9457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff168061252d575061252d611c91565b8061253b575060005460ff16155b612590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff161580156125f657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006126006119ed565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610e175780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b6126f0612e5e565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612c5f57600182821c166000868360208110612bd057fe5b015490508160011415612c135780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612c55565b84868460208110612c2057fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612bb3565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ea46022913960400191505060405180910390fd5b8360ff16601b1480612cf757508360ff16601c145b612d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ef46022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612da8573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612e5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a264697066735822122076f15ccd0d11afe57a77e1cd5655a24a029cf4f512c965c14e704c83554c35dd64736f6c63430007060033"; + +export class Home__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_localDomain, overrides || {}) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_localDomain, overrides || {}); + } + attach(address: string): Home { + return super.attach(address) as Home; + } + connect(signer: Signer): Home__factory { + return super.connect(signer) as Home__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): HomeInterface { + return new utils.Interface(_abi) as HomeInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): Home { + return new Contract(address, _abi, signerOrProvider) as Home; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/IBridgeToken__factory.ts b/solidity/abacus-xapps/typechain/factories/IBridgeToken__factory.ts new file mode 100644 index 000000000..c26879315 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/IBridgeToken__factory.ts @@ -0,0 +1,147 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IBridgeToken, IBridgeTokenInterface } from "../IBridgeToken"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "uint256", + name: "_amnt", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_amnt", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_symbol", + type: "string", + }, + { + internalType: "uint8", + name: "_decimals", + type: "uint8", + }, + ], + name: "setDetails", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IBridgeToken__factory { + static readonly abi = _abi; + static createInterface(): IBridgeTokenInterface { + return new utils.Interface(_abi) as IBridgeTokenInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IBridgeToken { + return new Contract(address, _abi, signerOrProvider) as IBridgeToken; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/IERC20__factory.ts b/solidity/abacus-xapps/typechain/factories/IERC20__factory.ts new file mode 100644 index 000000000..809682308 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/IERC20__factory.ts @@ -0,0 +1,203 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IERC20, IERC20Interface } from "../IERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new utils.Interface(_abi) as IERC20Interface; + } + static connect(address: string, signerOrProvider: Signer | Provider): IERC20 { + return new Contract(address, _abi, signerOrProvider) as IERC20; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/IMessageRecipient__factory.ts b/solidity/abacus-xapps/typechain/factories/IMessageRecipient__factory.ts new file mode 100644 index 000000000..8c7933c2f --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/IMessageRecipient__factory.ts @@ -0,0 +1,49 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IMessageRecipient, + IMessageRecipientInterface, +} from "../IMessageRecipient"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IMessageRecipient__factory { + static readonly abi = _abi; + static createInterface(): IMessageRecipientInterface { + return new utils.Interface(_abi) as IMessageRecipientInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IMessageRecipient { + return new Contract(address, _abi, signerOrProvider) as IMessageRecipient; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/IUpdaterManager__factory.ts b/solidity/abacus-xapps/typechain/factories/IUpdaterManager__factory.ts new file mode 100644 index 000000000..c8b482b31 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/IUpdaterManager__factory.ts @@ -0,0 +1,52 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUpdaterManager, + IUpdaterManagerInterface, +} from "../IUpdaterManager"; + +const _abi = [ + { + inputs: [ + { + internalType: "address payable", + name: "_reporter", + type: "address", + }, + ], + name: "slashUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IUpdaterManager__factory { + static readonly abi = _abi; + static createInterface(): IUpdaterManagerInterface { + return new utils.Interface(_abi) as IUpdaterManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUpdaterManager { + return new Contract(address, _abi, signerOrProvider) as IUpdaterManager; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/IWeth__factory.ts b/solidity/abacus-xapps/typechain/factories/IWeth__factory.ts new file mode 100644 index 000000000..e2eeb07db --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/IWeth__factory.ts @@ -0,0 +1,45 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IWeth, IWethInterface } from "../IWeth"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_who", + type: "address", + }, + { + internalType: "uint256", + name: "_wad", + type: "uint256", + }, + ], + name: "approve", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class IWeth__factory { + static readonly abi = _abi; + static createInterface(): IWethInterface { + return new utils.Interface(_abi) as IWethInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): IWeth { + return new Contract(address, _abi, signerOrProvider) as IWeth; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/MerkleTreeManager__factory.ts b/solidity/abacus-xapps/typechain/factories/MerkleTreeManager__factory.ts new file mode 100644 index 000000000..7a1c789fb --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/MerkleTreeManager__factory.ts @@ -0,0 +1,89 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + MerkleTreeManager, + MerkleTreeManagerInterface, +} from "../MerkleTreeManager"; + +const _abi = [ + { + inputs: [], + name: "count", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "root", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tree", + outputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b5061067a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306661abd14610046578063ebf0c71714610060578063fd54b22814610068575b600080fd5b61004e610070565b60408051918252519081900360200190f35b61004e610076565b61004e610087565b60205490565b6000610082600061008d565b905090565b60205481565b60006100a08261009b6100a6565b610567565b92915050565b6100ae610625565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b602081101561061d57600182821c16600086836020811061058e57fe5b0154905081600114156105d15780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610613565b848684602081106105de57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101610571565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220374f6723c7bd7c2dd88be05ae696a9ac4b76a4156ff35d90b6c3dff320ea8be664736f6c63430007060033"; + +export class MerkleTreeManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MerkleTreeManager { + return super.attach(address) as MerkleTreeManager; + } + connect(signer: Signer): MerkleTreeManager__factory { + return super.connect(signer) as MerkleTreeManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MerkleTreeManagerInterface { + return new utils.Interface(_abi) as MerkleTreeManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MerkleTreeManager { + return new Contract(address, _abi, signerOrProvider) as MerkleTreeManager; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/MockCore__factory.ts b/solidity/abacus-xapps/typechain/factories/MockCore__factory.ts new file mode 100644 index 000000000..c86171538 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/MockCore__factory.ts @@ -0,0 +1,287 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { MockCore, MockCoreInterface } from "../MockCore"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "leafIndex", + type: "uint256", + }, + { + indexed: true, + internalType: "uint64", + name: "destinationAndNonce", + type: "uint64", + }, + { + indexed: true, + internalType: "bytes32", + name: "leaf", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "Dispatch", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "_destination", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "_recipient", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "_body", + type: "bytes", + }, + ], + name: "Enqueue", + type: "event", + }, + { + inputs: [], + name: "MAX_MESSAGE_BODY_BYTES", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "count", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destination", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_recipient", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_body", + type: "bytes", + }, + ], + name: "dispatch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "home", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "isReplica", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "queueContains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueEnd", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "root", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tree", + outputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610ef4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063ab91c7b011610081578063f6d161021161005b578063f6d16102146101e4578063fa31de01146101ec578063fd54b22814610270576100d4565b8063ab91c7b0146101b1578063b95a2001146101b9578063ebf0c717146101dc576100d4565b8063522ae002116100b2578063522ae002146101575780638d3638f41461015f5780639fa92f9d14610180576100d4565b806306661abd146100d95780632bef2892146100f35780635190bc5314610124575b600080fd5b6100e1610278565b60408051918252519081900360200190f35b6101106004803603602081101561010957600080fd5b503561027e565b604080519115158252519081900360200190f35b6101106004803603602081101561013a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610291565b6100e1610297565b61016761029d565b6040805163ffffffff9092168252519081900360200190f35b6101886102a2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e16102a6565b610167600480360360208110156101cf57600080fd5b503563ffffffff166102b7565b6100e16102cf565b6100e16102db565b61026e6004803603606081101561020257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561022f57600080fd5b82018360208201111561024157600080fd5b8035906020019184600183028401116401000000008311171561026357600080fd5b5090925090506102e7565b005b6100e161058d565b60205490565b600061028b605383610593565b92915050565b50600190565b61080081565b600590565b3090565b60006102b2605361060d565b905090565b60866020526000908152604090205463ffffffff1681565b60006102b2600061064d565b60006102b26053610660565b61080081111561035857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21746f6f20626967000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808516600090815260866020526040812054909116906103d761037e61029d565b3373ffffffffffffffffffffffffffffffffffffffff1660001b84898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061069d92505050565b805160208201209091506103ec600082610773565b6103ff6103f76102cf565b60539061087f565b508061040b88856108ec565b67ffffffffffffffff16600161041f610278565b037f1a2a870182b13cdb4a0ec2e16f96df5a0e20b1327d43564f7f0e62992a55bd6c856040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047f578181015183820152602001610467565b50505050905090810190601f1680156104ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4858763ffffffff167f75792710cca0c980daac207dc69865f88b53833bd172dcac111b2b42758202d6878760405180806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039550909350505050a3505063ffffffff948516600090815260866020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660019290920190951617909355505050565b60205481565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681116106035760008181526001850160205260409020548314156105fb57600191505061028b565b6001016105ab565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166106458282610906565b949350505050565b600061028b8261065b610920565b610de1565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061072e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016106f1565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff116107e957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b6020811015610878578160011660011415610825578284826020811061081b57fe5b01555061087b9050565b83816020811061083157fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161086d57fe5b0491506001016107f9565b50fe5b5050565b81546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000928390048216600101918216909202919091178355811561028b576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b60019103016fffffffffffffffffffffffffffffffff1690565b610928610e9f565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015610e9757600182821c166000868360208110610e0857fe5b015490508160011415610e4b5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610e8d565b84868460208110610e5857fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101610deb565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220f9f52be3545ad923b4da2f29b29eb582060deba8413083e28889d2f3592b7a7764736f6c63430007060033"; + +export class MockCore__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MockCore { + return super.attach(address) as MockCore; + } + connect(signer: Signer): MockCore__factory { + return super.connect(signer) as MockCore__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MockCoreInterface { + return new utils.Interface(_abi) as MockCoreInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockCore { + return new Contract(address, _abi, signerOrProvider) as MockCore; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/MockWeth__factory.ts b/solidity/abacus-xapps/typechain/factories/MockWeth__factory.ts new file mode 100644 index 000000000..e098c4711 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/MockWeth__factory.ts @@ -0,0 +1,543 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { MockWeth, MockWethInterface } from "../MockWeth"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "_PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "address", + name: "_spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "uint256", + name: "_amnt", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_subtractedValue", + type: "uint256", + }, + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "domainSeparator", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_addedValue", + type: "uint256", + }, + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_amnt", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_value", + type: "uint256", + }, + { + internalType: "uint256", + name: "_deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "_v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "_r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_newName", + type: "string", + }, + { + internalType: "string", + name: "_newSymbol", + type: "string", + }, + { + internalType: "uint8", + name: "_newDecimals", + type: "uint8", + }, + ], + name: "setDetails", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_recipient", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_sender", + type: "address", + }, + { + internalType: "address", + name: "_recipient", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c6122a16100a5600039806110805250806114a6525080610db4528061101c52506122a16000f3fe60806040526004361061018b5760003560e01c80638da5cb5b116100d6578063d0e30db01161007f578063f2fde38b11610059578063f2fde38b14610715578063f698da2514610755578063ffa1ad741461076a5761018b565b8063d0e30db01461065a578063d505accf14610662578063dd62ed3e146106cd5761018b565b80639dc29fac116100b05780639dc29fac14610588578063a457c2d7146105ce578063a9059cbb146106145761018b565b80638da5cb5b1461052057806395d89b411461055e578063982aaf6b146105735761018b565b806340c10f1911610138578063715018a611610112578063715018a6146104b65780637ecebe00146104cb5780638129fc1c1461050b5761018b565b806340c10f191461035c578063654935f4146103a457806370a08231146104765761018b565b806323b872dd1161016957806323b872dd1461029b578063313ce567146102eb57806339509351146103165761018b565b806306fdde0314610190578063095ea7b31461021a57806318160ddd14610274575b600080fd5b34801561019c57600080fd5b506101a561077f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101df5781810151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022657600080fd5b506102606004803603604081101561023d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610833565b604080519115158252519081900360200190f35b34801561028057600080fd5b50610289610849565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610260600480360360608110156102be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561084f565b3480156102f757600080fd5b506103006108c5565b6040805160ff9092168252519081900360200190f35b34801561032257600080fd5b506102606004803603604081101561033957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108ce565b34801561036857600080fd5b506103a26004803603604081101561037f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610911565b005b3480156103b057600080fd5b506103a2600480360360608110156103c757600080fd5b8101906020810181356401000000008111156103e257600080fd5b8201836020820111156103f457600080fd5b8035906020019184600183028401116401000000008311171561041657600080fd5b91939092909160208101903564010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91935091503560ff166109c7565b34801561048257600080fd5b506102896004803603602081101561049957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ac1565b3480156104c257600080fd5b506103a2610ad2565b3480156104d757600080fd5b50610289600480360360208110156104ee57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610be9565b34801561051757600080fd5b506103a2610bfb565b34801561052c57600080fd5b50610535610d17565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561056a57600080fd5b506101a5610d33565b34801561057f57600080fd5b50610289610db2565b34801561059457600080fd5b506103a2600480360360408110156105ab57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610dd6565b3480156105da57600080fd5b50610260600480360360408110156105f157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e88565b34801561062057600080fd5b506102606004803603604081101561063757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ee4565b6103a2610ef1565b34801561066e57600080fd5b506103a2600480360360e081101561068557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610efd565b3480156106d957600080fd5b50610289600480360360408110156106f057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661122a565b34801561072157600080fd5b506103a26004803603602081101561073857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611262565b34801561076157600080fd5b50610289611404565b34801561077657600080fd5b506103006114fa565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108295780601f106107fe57610100808354040283529160200191610829565b820191906000526020600020905b81548152906001019060200180831161080c57829003601f168201915b5050505050905090565b60006108403384846114ff565b50600192915050565b60675490565b600061085c848484611646565b6108bb84336108b6856040518060600160405280602881526020016121b56028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526066602090815260408083203384529091529020549190611818565b6114ff565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916108409185906108b690866118c9565b610919611944565b73ffffffffffffffffffffffffffffffffffffffff16610937610d17565b73ffffffffffffffffffffffffffffffffffffffff16146109b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109c38282611948565b5050565b6109cf611944565b73ffffffffffffffffffffffffffffffffffffffff166109ed610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610a6f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a7b60688686612014565b50610a8860698484612014565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b6000610acc82611a7b565b92915050565b610ada611944565b73ffffffffffffffffffffffffffffffffffffffff16610af8610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610b7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610c145750610c14611aa3565b80610c22575060005460ff16155b610c77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015610cdd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610ce5611ab4565b8015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108295780601f106107fe57610100808354040283529160200191610829565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dde611944565b73ffffffffffffffffffffffffffffffffffffffff16610dfc610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109c38282611ba6565b600061084033846108b6856040518060600160405280602581526020016122476025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529020549190611818565b6000610840338484611646565b610efb3334611948565b565b83421115610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610fee57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f00000000000000000000000000000000000000000000000000000000000000006110a7611404565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611141573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b6020526040902060018501905561121d8b8b8b6114ff565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61126a611944565b73ffffffffffffffffffffffffffffffffffffffff16611288610d17565b73ffffffffffffffffffffffffffffffffffffffff161461130a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611376576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806121196026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561148b5780601f1061146957610100808354040283529182019161148b565b820191906000526020600020905b815481529060010190602001808311611477575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b600081565b73ffffffffffffffffffffffffffffffffffffffff831661156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806122236024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061213f6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806121fe6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661171e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120d46023913960400191505060405180910390fd5b611729838383611cf0565b611773816040518060600160405280602681526020016121616026913973ffffffffffffffffffffffffffffffffffffffff86166000908152606560205260409020549190611818565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526065602052604080822093909355908416815220546117af90826118c9565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561188657818101518382015260200161186e565b50505050905090810190601f1680156118b35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561193d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff82166119ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6119d660008383611cf0565b6067546119e390826118c9565b60675573ffffffffffffffffffffffffffffffffffffffff8216600090815260656020526040902054611a1690826118c9565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b6000611aae30611cf5565b15905090565b600054610100900460ff1680611acd5750611acd611aa3565b80611adb575060005460ff16155b611b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015611b9657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611b9e611cfb565b610ce5611e0d565b73ffffffffffffffffffffffffffffffffffffffff8216611c12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121dd6021913960400191505060405180910390fd5b611c1e82600083611cf0565b611c68816040518060600160405280602281526020016120f76022913973ffffffffffffffffffffffffffffffffffffffff85166000908152606560205260409020549190611818565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611c9b9082611f9d565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611d145750611d14611aa3565b80611d22575060005460ff16155b611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015610ce557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611e265750611e26611aa3565b80611e34575060005460ff16155b611e89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015611eef57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611ef9611944565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008282111561200e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261204a57600085556120ae565b82601f10612081578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008235161785556120ae565b828001600101855582156120ae579182015b828111156120ae578235825591602001919060010190612093565b506120ba9291506120be565b5090565b5b808211156120ba57600081556001016120bf56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a0177c1b8b94038ad8239d17cda5eebfb47c7a8e533bba4682f3a0afd856b73d64736f6c63430007060033"; + +export class MockWeth__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MockWeth { + return super.attach(address) as MockWeth; + } + connect(signer: Signer): MockWeth__factory { + return super.connect(signer) as MockWeth__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MockWethInterface { + return new utils.Interface(_abi) as MockWethInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockWeth { + return new Contract(address, _abi, signerOrProvider) as MockWeth; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/OwnableUpgradeable__factory.ts b/solidity/abacus-xapps/typechain/factories/OwnableUpgradeable__factory.ts new file mode 100644 index 000000000..7d6909216 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/OwnableUpgradeable__factory.ts @@ -0,0 +1,78 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + OwnableUpgradeable, + OwnableUpgradeableInterface, +} from "../OwnableUpgradeable"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class OwnableUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): OwnableUpgradeableInterface { + return new utils.Interface(_abi) as OwnableUpgradeableInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): OwnableUpgradeable { + return new Contract(address, _abi, signerOrProvider) as OwnableUpgradeable; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/Ownable__factory.ts b/solidity/abacus-xapps/typechain/factories/Ownable__factory.ts new file mode 100644 index 000000000..df0453aa2 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/Ownable__factory.ts @@ -0,0 +1,75 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { Ownable, OwnableInterface } from "../Ownable"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class Ownable__factory { + static readonly abi = _abi; + static createInterface(): OwnableInterface { + return new utils.Interface(_abi) as OwnableInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Ownable { + return new Contract(address, _abi, signerOrProvider) as Ownable; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/PingPongRouter__factory.ts b/solidity/abacus-xapps/typechain/factories/PingPongRouter__factory.ts new file mode 100644 index 000000000..fef75a3b0 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/PingPongRouter__factory.ts @@ -0,0 +1,279 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + PingPongRouter, + PingPongRouterInterface, +} from "../PingPongRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: true, + internalType: "uint32", + name: "matchId", + type: "uint32", + }, + { + indexed: false, + internalType: "uint256", + name: "count", + type: "uint256", + }, + { + indexed: false, + internalType: "bool", + name: "isPing", + type: "bool", + }, + ], + name: "Received", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: true, + internalType: "uint32", + name: "matchId", + type: "uint32", + }, + { + indexed: false, + internalType: "uint256", + name: "count", + type: "uint256", + }, + { + indexed: false, + internalType: "bool", + name: "isPing", + type: "bool", + }, + ], + name: "Sent", + type: "event", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "enrollRemoteRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", + }, + ], + name: "initiatePingPongMatch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "remotes", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "setXAppConnectionManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "xAppConnectionManager", + outputs: [ + { + internalType: "contract XAppConnectionManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040516100833803806100838339818101604052602081101561003357600080fd5b50516040805162461bcd60e51b815260206004820152601b60248201527f6578616d706c6520784170702c20646f206e6f74206465706c6f790000000000604482015290519081900360640190fdfe"; + +export class PingPongRouter__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _xAppConnectionManager, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_xAppConnectionManager, overrides || {}); + } + attach(address: string): PingPongRouter { + return super.attach(address) as PingPongRouter; + } + connect(signer: Signer): PingPongRouter__factory { + return super.connect(signer) as PingPongRouter__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): PingPongRouterInterface { + return new utils.Interface(_abi) as PingPongRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): PingPongRouter { + return new Contract(address, _abi, signerOrProvider) as PingPongRouter; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/QueueManager__factory.ts b/solidity/abacus-xapps/typechain/factories/QueueManager__factory.ts new file mode 100644 index 000000000..05bea3a12 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/QueueManager__factory.ts @@ -0,0 +1,92 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { QueueManager, QueueManagerInterface } from "../QueueManager"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes32", + name: "_item", + type: "bytes32", + }, + ], + name: "queueContains", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueEnd", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "queueLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632bef289214610046578063ab91c7b014610077578063f6d1610214610091575b600080fd5b6100636004803603602081101561005c57600080fd5b5035610099565b604080519115158252519081900360200190f35b61007f6100ac565b60408051918252519081900360200190f35b61007f6100bd565b60006100a66001836100c9565b92915050565b60006100b86001610143565b905090565b60006100b86001610183565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681116101395760008181526001850160205260409020548314156101315760019150506100a6565b6001016100e1565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661017b82826101c0565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b60019103016fffffffffffffffffffffffffffffffff169056fea26469706673582212207f2a827d62b0a811c487607b6f8c23cdb6f4433de80325e0ec18a21d5152b62e64736f6c63430007060033"; + +export class QueueManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): QueueManager { + return super.attach(address) as QueueManager; + } + connect(signer: Signer): QueueManager__factory { + return super.connect(signer) as QueueManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): QueueManagerInterface { + return new utils.Interface(_abi) as QueueManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): QueueManager { + return new Contract(address, _abi, signerOrProvider) as QueueManager; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/Replica__factory.ts b/solidity/abacus-xapps/typechain/factories/Replica__factory.ts new file mode 100644 index 000000000..37d3d66e5 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/Replica__factory.ts @@ -0,0 +1,586 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Replica, ReplicaInterface } from "../Replica"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32", + name: "_localDomain", + type: "uint32", + }, + { + internalType: "uint256", + name: "_processGas", + type: "uint256", + }, + { + internalType: "uint256", + name: "_reserveGas", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32[2]", + name: "newRoot", + type: "bytes32[2]", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "signature2", + type: "bytes", + }, + ], + name: "DoubleUpdate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "updater", + type: "address", + }, + ], + name: "NewUpdater", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "bool", + name: "success", + type: "bool", + }, + { + indexed: true, + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "Process", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "homeDomain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "oldRoot", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newRoot", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Update", + type: "event", + }, + { + inputs: [], + name: "PROCESS_GAS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "RESERVE_GAS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_root", + type: "bytes32", + }, + ], + name: "acceptableRoot", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "confirmAt", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", + type: "bytes", + }, + ], + name: "doubleUpdate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "homeDomainHash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_remoteDomain", + type: "uint32", + }, + { + internalType: "address", + name: "_updater", + type: "address", + }, + { + internalType: "bytes32", + name: "_committedRoot", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_optimisticSeconds", + type: "uint256", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "messages", + outputs: [ + { + internalType: "enum Replica.MessageStatus", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "optimisticSeconds", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "process", + outputs: [ + { + internalType: "bool", + name: "_success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_leaf", + type: "bytes32", + }, + { + internalType: "bytes32[32]", + name: "_proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "_index", + type: "uint256", + }, + ], + name: "prove", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + { + internalType: "bytes32[32]", + name: "_proof", + type: "bytes32[32]", + }, + { + internalType: "uint256", + name: "_index", + type: "uint256", + }, + ], + name: "proveAndProcess", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "remoteDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_updater", + type: "address", + }, + ], + name: "setUpdater", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "state", + outputs: [ + { + internalType: "enum Common.States", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_oldRoot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_newRoot", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "update", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "updater", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60e060405234801561001057600080fd5b5060405162002dd938038062002dd98339818101604052606081101561003557600080fd5b50805160208201516040909201516001600160e01b031960e083901b16608052909190620cf85082101561009f576040805162461bcd60e51b815260206004820152600c60248201526b2170726f636573732067617360a01b604482015290519081900360640190fd5b613a988110156100e5576040805162461bcd60e51b815260206004820152600c60248201526b21726573657276652067617360a01b604482015290519081900360640190fd5b60a082905260c081905260805160e01c9250612caa6200012f600039806108e65280610da8525080610d875280610e7f5280611509525080610b035280610b575250612caa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063928bc4b2116100d8578063c19d93fb1161008c578063e7e7a7b711610066578063e7e7a7b7146105e9578063f2fde38b14610634578063ffa1ad741461066757610182565b8063c19d93fb146105d1578063d88beda2146105d9578063df034cd0146105e157610182565b80639d54f419116100bd5780639d54f419146104cf578063a3f81d6814610502578063b31c01fb1461051f57610182565b8063928bc4b214610421578063961681dc146104c757610182565b806345630b1a1161013a57806371bfb7b81161011457806371bfb7b8146103b25780638d3638f4146103cf5780638da5cb5b146103f057610182565b806345630b1a146102f45780636188af0e146102fc57806367a6771d146103aa57610182565b80632bbd59ca1161016b5780632bbd59ca14610270578063371d3071146102ae57806339992668146102ec57610182565b806319d9d21a1461018757806325e3beda14610256575b600080fd5b610254600480360360a081101561019d57600080fd5b81359160208101918101906080810160608201356401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91939092909160208101903564010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b509092509050610685565b005b61025e6108e4565b60408051918252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610908565b6040518082600281111561029d57fe5b815260200191505060405180910390f35b6102d860048036036104408110156102c557600080fd5b508035906020810190610420013561091d565b604080519115158252519081900360200190f35b61025e610a3d565b61025e610a43565b610254600480360361044081101561031357600080fd5b81019060208101813564010000000081111561032e57600080fd5b82018360208201111561034057600080fd5b8035906020019184600183028401116401000000008311171561036257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a5d565b61025e610ae9565b61025e600480360360208110156103c857600080fd5b5035610aef565b6103d7610b01565b6040805163ffffffff9092168252519081900360200190f35b6103f8610b25565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102d86004803603602081101561043757600080fd5b81019060208101813564010000000081111561045257600080fd5b82018360208201111561046457600080fd5b8035906020019184600183028401116401000000008311171561048657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b41945050505050565b6103d7611184565b610254600480360360208110156104e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611190565b6102d86004803603602081101561051857600080fd5b503561126b565b6102546004803603606081101561053557600080fd5b81359160208101359181019060608101604082013564010000000081111561055c57600080fd5b82018360208201111561056e57600080fd5b8035906020019184600183028401116401000000008311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b61028d6114e4565b61025e611507565b6103f861152b565b610254600480360360808110156105ff57600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561154d565b6102546004803603602081101561064a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ed565b61066f6118cc565b6040805160ff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156106b257fe5b141561071f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261076191889188359188908890819084018382808284376000920191909152506118d192505050565b80156107b057506107b086866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d192505050565b80156107c157508435602086013514155b156108dc576107ce611969565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff16600281111561093d57fe5b146109a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109df8585602080602002604051908101604052809291908260208002808284376000920191909152508791506119739050565b90506109ea8161126b565b15610a30575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a36565b60009150505b9392505050565b60325481565b603154600090610a589063ffffffff16611a1e565b905090565b610a6f8380519060200120838361091d565b610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae383610b41565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610b4e8382611a93565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610ba27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611ab9565b63ffffffff1614610c1457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610c417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611aea565b9050600160008281526035602052604090205460ff166002811115610c6257fe5b14610cce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610d4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a1015610e3857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b29565b6040805161010080825261012082019092529192506000917f0000000000000000000000000000000000000000000000000000000000000000908390836020820181803683370190505090506000610ede7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611b3c565b610f097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611b6c565b610f5e610f377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611b9d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611c0e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610fb0578181015183820152602001610f98565b50505050905090810190601f168015610fdd5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d94508385111561107c578394505b848252846000602084013e816040518082805190602001908083835b602083106110d557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611098565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061119a610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111f0575060006111d8610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061125e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61126782611c52565b5050565b6000818152603460205260408120548061128957600091505061128f565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156112c157fe5b141561132e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461139e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6113a98383836118d1565b61141457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61141c611971565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806115665750611566611cd3565b80611574575060005460ff16155b6115c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff1615801561162f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61163884611ce4565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905583815560008481526034602052604090205560328290556116b7336116ed565b80156116e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006116f7610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061174d57506000611735610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b9050806117bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661183d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b6000806118dc610a43565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061191d81611e78565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff166119498285611ec9565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611971611f63565b565b8260005b6020811015611a1657600183821c16600085836020811061199457fe5b6020020151905081600114156119da5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611a0c565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611977565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611aae64ffffffffff85168284611fa6565b925050505b92915050565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612005565b600080611af683612026565b6bffffffffffffffffffffffff1690506000611b118461203a565b6bffffffffffffffffffffffff169091209392505050565b6000611ab3611b378361204e565b61207f565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612005565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612082565b6000611ab3604c80611bd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661203a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061222d565b6060600080611c1c8461203a565b6bffffffffffffffffffffffff1690506040519150819250611c4184836020016122bf565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b6000611cde306123eb565b15905090565b600054610100900460ff1680611cfd5750611cfd611cd3565b80611d0b575060005460ff16155b611d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff16158015611dc657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561126757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611f3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a611f59868285856123f1565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611fb384846125df565b9050604051811115611fc3575060005b80611ff1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a36565b611ffc858585612651565b95945050505050565b60008160200360080260ff1661201c858585612082565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020612082565b90565b600060ff821661209457506000610a36565b61209d8461203a565b6bffffffffffffffffffffffff166120b88460ff85166125df565b1115612197576120f96120ca85612026565b6bffffffffffffffffffffffff166120e18661203a565b6bffffffffffffffffffffffff16858560ff16612664565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215c578181015183820152602001612144565b50505050905090810190601f1680156121895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612bb3603a913960400191505060405180910390fd5b60088202600061220386612026565b6bffffffffffffffffffffffff169050600061221e836127bf565b91909501511695945050505050565b60008061223986612026565b6bffffffffffffffffffffffff16905061225286612808565b6122668561226084896125df565b906125df565b1115612295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506122b7565b61229f81866125df565b90506122b38364ffffffffff168286611fa6565b9150505b949350505050565b60006122ca83612832565b61231f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bed6028913960400191505060405180910390fd5b61232883612844565b61237d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c15602b913960400191505060405180910390fd5b60006123888461203a565b6bffffffffffffffffffffffff16905060006123a385612026565b6bffffffffffffffffffffffff16905060006040519050848111156123c85760206060fd5b8285848460045afa50611f596123dd87612881565b64ffffffffff168685612651565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b206022913960400191505060405180910390fd5b8360ff16601b148061248157508360ff16601c145b6124d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b916022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612532573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ffc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b6060600061267186612887565b915050600061267f86612887565b915050600061268d86612887565b915050600061269b86612887565b915050838383836040516020018080612c40603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612b4282397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b60006128138261203a565b61281c83612026565b016bffffffffffffffffffffffff169050919050565b600061283d8261295b565b1592915050565b600061284f82612881565b64ffffffffff1664ffffffffff141561286a5750600061128f565b600061287583612808565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff1611156128ef5760ff600882021684901c6128ac81612983565b61ffff16841793508160ff166010146128c757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161288d565b50600f5b60ff8160ff1610156129555760ff600882021684901c61291281612983565b61ffff16831792508160ff1660001461292d57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016128f3565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061299560048360ff16901c6129b3565b60ff161760081b62ffff00166129aa826129b3565b60ff1617919050565b600060f08083179060ff821614156129cf57603091505061128f565b8060ff1660f114156129e557603191505061128f565b8060ff1660f214156129fb57603291505061128f565b8060ff1660f31415612a1157603391505061128f565b8060ff1660f41415612a2757603491505061128f565b8060ff1660f51415612a3d57603591505061128f565b8060ff1660f61415612a5357603691505061128f565b8060ff1660f71415612a6957603791505061128f565b8060ff1660f81415612a7f57603891505061128f565b8060ff1660f91415612a9557603991505061128f565b8060ff1660fa1415612aab57606191505061128f565b8060ff1660fb1415612ac157606291505061128f565b8060ff1660fc1415612ad757606391505061128f565b8060ff1660fd1415612aed57606491505061128f565b8060ff1660fe1415612b0357606591505061128f565b8060ff1660ff1415612b1957606691505061128f565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122066225e5a1d1ed389fc968e151d709326576dde8456e356fefeb2f6569a28715164736f6c63430007060033"; + +export class Replica__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _localDomain: BigNumberish, + _processGas: BigNumberish, + _reserveGas: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _localDomain, + _processGas, + _reserveGas, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _localDomain: BigNumberish, + _processGas: BigNumberish, + _reserveGas: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _localDomain, + _processGas, + _reserveGas, + overrides || {} + ); + } + attach(address: string): Replica { + return super.attach(address) as Replica; + } + connect(signer: Signer): Replica__factory { + return super.connect(signer) as Replica__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ReplicaInterface { + return new utils.Interface(_abi) as ReplicaInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Replica { + return new Contract(address, _abi, signerOrProvider) as Replica; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/RouterTemplate__factory.ts b/solidity/abacus-xapps/typechain/factories/RouterTemplate__factory.ts new file mode 100644 index 000000000..38ddecc88 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/RouterTemplate__factory.ts @@ -0,0 +1,235 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + RouterTemplate, + RouterTemplateInterface, +} from "../RouterTemplate"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "number", + type: "uint256", + }, + ], + name: "TypeAReceived", + type: "event", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", + }, + { + internalType: "uint256", + name: "_number", + type: "uint256", + }, + ], + name: "dispatchTypeA", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "enrollRemoteRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "remotes", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "setXAppConnectionManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "xAppConnectionManager", + outputs: [ + { + internalType: "contract XAppConnectionManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60806040523480156200001157600080fd5b506040516200197838038062001978833981810160405260208110156200003757600080fd5b505162000044816200004b565b50620003ac565b600054610100900460ff1680620000675750620000676200011b565b8062000076575060005460ff16155b620000b35760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620000df576000805460ff1961ff0019909116610100171660011790555b606580546001600160a01b0319166001600160a01b0384161790556200010462000139565b801562000117576000805461ff00191690555b5050565b60006200013330620001f760201b620009f31760201c565b15905090565b600054610100900460ff1680620001555750620001556200011b565b8062000164575060005460ff16155b620001a15760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620001cd576000805460ff1961ff0019909116610100171660011790555b620001d7620001fd565b620001e1620002a5565b8015620001f4576000805461ff00191690555b50565b3b151590565b600054610100900460ff1680620002195750620002196200011b565b8062000228575060005460ff16155b620002655760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620001e1576000805460ff1961ff0019909116610100171660011790558015620001f4576000805461ff001916905550565b600054610100900460ff1680620002c15750620002c16200011b565b80620002d0575060005460ff16155b6200030d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff1615801562000339576000805460ff1961ff0019909116610100171660011790555b600062000345620003a8565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620001f4576000805461ff001916905550565b3390565b61158e80620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063715018a6116100765780638da5cb5b1161005b5780638da5cb5b1461022c578063b49c53a714610234578063f2fde38b1461025d576100a3565b8063715018a6146101ef57806383bbb806146101f7576100a3565b80631984a330146100a85780633339df96146100d357806341bdc8b51461010457806356d5d47514610137575b600080fd5b6100d1600480360360408110156100be57600080fd5b5063ffffffff8135169060200135610290565b005b6100db61039a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100d16004803603602081101561011a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103b6565b6100d16004803603606081101561014d57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561017a57600080fd5b82018360208201111561018c57600080fd5b803590602001918460018302840111640100000000831117156101ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104a5945050505050565b6100d161064b565b61021a6004803603602081101561020d57600080fd5b503563ffffffff16610762565b60408051918252519081900360200190f35b6100db610774565b6100d16004803603604081101561024a57600080fd5b5063ffffffff8135169060200135610790565b6100d16004803603602081101561027357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610851565b600061029b836109fd565b905060006102a883610a7f565b90506102b2610ac4565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018584846040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561032e578181015183820152602001610316565b50505050905090810190601f16801561035b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561037c57600080fd5b505af1158015610390573d6000803e3d6000fd5b5050505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b6103be610b60565b73ffffffffffffffffffffffffffffffffffffffff166103dc610774565b73ffffffffffffffffffffffffffffffffffffffff161461045e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6104ae33610b64565b61051957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826105258282610c0d565b61059057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b600061059c8482610c2c565b90506105c97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610c50565b156105dc576105d781610c6f565b610643565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b610653610b60565b73ffffffffffffffffffffffffffffffffffffffff16610671610774565b73ffffffffffffffffffffffffffffffffffffffff16146106f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60976020526000908152604090205481565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b610798610b60565b73ffffffffffffffffffffffffffffffffffffffff166107b6610774565b73ffffffffffffffffffffffffffffffffffffffff161461083857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b610859610b60565b73ffffffffffffffffffffffffffffffffffffffff16610877610774565b73ffffffffffffffffffffffffffffffffffffffff16146108f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610965576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114756026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803b15155b919050565b63ffffffff8116600090815260976020526040902054806109f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f0100000000000000000000000000000000000000000000000000000000000000602082015260218082019390935281518082039093018352604101905290565b606554604080517f9fa92f9d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fa92f9d916004808301926020929190829003018186803b158015610b2f57600080fd5b505afa158015610b43573d6000803e3d6000fd5b505050506040513d6020811015610b5957600080fd5b5051905090565b3390565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b158015610bdb57600080fd5b505afa158015610bef573d6000803e3d6000fd5b505050506040513d6020811015610c0557600080fd5b505192915050565b63ffffffff821660009081526097602052604090205481145b92915050565b815160009060208401610c4764ffffffffff85168284610cd7565b95945050505050565b60006001610c5d83610d38565b6001811115610c6857fe5b1492915050565b6000610c9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610d73565b6040805182815290519192507f2b51a16951b17b51a53e06c3041d704232f26354acf317a5b7bfeab23f4ca629919081900360200190a15050565b600080610ce48484610e02565b9050604051811115610cf4575060005b80610d22577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d31565b610d2d858585610e74565b9150505b9392505050565b6000610d657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610e87565b60ff166001811115610c2657fe5b6000610d7e82610c50565b610dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061149b602e913960400191505060405180910390fd5b610c267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660006020610e8d565b81810182811015610c2657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b600060ff8216610e9f57506000610d31565b610ea884611038565b6bffffffffffffffffffffffff16610ec38460ff8516610e02565b1115610fa257610f04610ed58561104c565b6bffffffffffffffffffffffff16610eec86611038565b6bffffffffffffffffffffffff16858560ff16611060565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f67578181015183820152602001610f4f565b50505050905090810190601f168015610f945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610fff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806114ea603a913960400191505060405180910390fd5b60088202600061100e8661104c565b6bffffffffffffffffffffffff1690506000611029836111bb565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b60781c6bffffffffffffffffffffffff1690565b6060600061106d86611204565b915050600061107b86611204565b915050600061108986611204565b915050600061109786611204565b915050838383836040516020018080611524603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114c982397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff16111561126c5760ff600882021684901c611229816112d8565b61ffff16841793508160ff1660101461124457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161120a565b50600f5b60ff8160ff1610156112d25760ff600882021684901c61128f816112d8565b61ffff16831792508160ff166000146112aa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611270565b50915091565b60006112ea60048360ff16901c611308565b60ff161760081b62ffff00166112ff82611308565b60ff1617919050565b600060f08083179060ff821614156113245760309150506109f8565b8060ff1660f1141561133a5760319150506109f8565b8060ff1660f214156113505760329150506109f8565b8060ff1660f314156113665760339150506109f8565b8060ff1660f4141561137c5760349150506109f8565b8060ff1660f514156113925760359150506109f8565b8060ff1660f614156113a85760369150506109f8565b8060ff1660f714156113be5760379150506109f8565b8060ff1660f814156113d45760389150506109f8565b8060ff1660f914156113ea5760399150506109f8565b8060ff1660fa14156114005760619150506109f8565b8060ff1660fb14156114165760629150506109f8565b8060ff1660fc141561142c5760639150506109f8565b8060ff1660fd14156114425760649150506109f8565b8060ff1660fe14156114585760659150506109f8565b8060ff1660ff141561146e5760669150506109f8565b5091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d65737361676554656d706c6174652f6e756d6265723a2076696577206d757374206265206f66207479706520412e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220dbe7964fa9957e834c98c861deae4a1e48698c423e21faf4439a05e08c086f6664736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; + +export class RouterTemplate__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _xAppConnectionManager, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _xAppConnectionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_xAppConnectionManager, overrides || {}); + } + attach(address: string): RouterTemplate { + return super.attach(address) as RouterTemplate; + } + connect(signer: Signer): RouterTemplate__factory { + return super.connect(signer) as RouterTemplate__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): RouterTemplateInterface { + return new utils.Interface(_abi) as RouterTemplateInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): RouterTemplate { + return new Contract(address, _abi, signerOrProvider) as RouterTemplate; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/Router__factory.ts b/solidity/abacus-xapps/typechain/factories/Router__factory.ts new file mode 100644 index 000000000..c4643d986 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/Router__factory.ts @@ -0,0 +1,158 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { Router, RouterInterface } from "../Router"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_router", + type: "bytes32", + }, + ], + name: "enrollRemoteRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_origin", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_sender", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "handle", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "remotes", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "setXAppConnectionManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "xAppConnectionManager", + outputs: [ + { + internalType: "contract XAppConnectionManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class Router__factory { + static readonly abi = _abi; + static createInterface(): RouterInterface { + return new utils.Interface(_abi) as RouterInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): Router { + return new Contract(address, _abi, signerOrProvider) as Router; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/TestBridgeMessage__factory.ts b/solidity/abacus-xapps/typechain/factories/TestBridgeMessage__factory.ts new file mode 100644 index 000000000..e28a5fb98 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/TestBridgeMessage__factory.ts @@ -0,0 +1,509 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + TestBridgeMessage, + TestBridgeMessageInterface, +} from "../TestBridgeMessage"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes32", + name: "_name", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_symbol", + type: "bytes32", + }, + { + internalType: "uint8", + name: "_decimals", + type: "uint8", + }, + ], + name: "testFormatDetails", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_tokenId", + type: "bytes", + }, + { + internalType: "bytes", + name: "_action", + type: "bytes", + }, + { + internalType: "enum BridgeMessage.Types", + name: "_idType", + type: "uint8", + }, + { + internalType: "enum BridgeMessage.Types", + name: "_actionType", + type: "uint8", + }, + ], + name: "testFormatMessage", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "testFormatRequestDetails", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_id", + type: "bytes32", + }, + ], + name: "testFormatTokenId", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_to", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_amnt", + type: "uint256", + }, + ], + name: "testFormatTransfer", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_action", + type: "bytes", + }, + ], + name: "testIsDetails", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_action", + type: "bytes", + }, + ], + name: "testIsRequestDetails", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_action", + type: "bytes", + }, + ], + name: "testIsTransfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_action", + type: "bytes", + }, + { + internalType: "enum BridgeMessage.Types", + name: "_t", + type: "uint8", + }, + ], + name: "testIsValidAction", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "testIsValidMessageLength", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "testMessageType", + outputs: [ + { + internalType: "enum BridgeMessage.Types", + name: "", + type: "uint8", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_details", + type: "bytes", + }, + ], + name: "testMustBeDetails", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "testMustBeMessage", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_request", + type: "bytes", + }, + ], + name: "testMustBeRequestDetails", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_tokenId", + type: "bytes", + }, + ], + name: "testMustBeTokenId", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_transfer", + type: "bytes", + }, + ], + name: "testMustBeTransfer", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_details", + type: "bytes", + }, + ], + name: "testSplitDetails", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + ], + name: "testSplitMessage", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_tokenId", + type: "bytes", + }, + ], + name: "testSplitTokenId", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "_transfer", + type: "bytes", + }, + ], + name: "testSplitTransfer", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50612996806100206000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80636c18a185116100cd578063932cbc9811610081578063cd9aeee611610066578063cd9aeee614610d14578063dfd9d1db14610d3d578063f9dd616a14610e7a5761016c565b8063932cbc9814610bc8578063b81726a214610c6e5761016c565b80638213d910116100b25780638213d91014610a5457806382cfb20e14610aff5780638f071d7e14610ba55761016c565b80636c18a1851461089857806375fbce8e1461097d5761016c565b80631a028e201161012457806348528b0c1161010957806348528b0c146106665780635029539f146107ea5780635048e37a146107f25761016c565b80631a028e20146105595780631b083da5146105855761016c565b806308e3410a1161015557806308e3410a1461033257806312bdd731146103ec57806313acadec146104b35761016c565b8063040e728e14610171578063089ee8291461028c575b600080fd5b6102176004803603602081101561018757600080fd5b8101906020810181356401000000008111156101a257600080fd5b8201836020820111156101b457600080fd5b803590602001918460018302840111640100000000831117156101d657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f20945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610251578181015183820152602001610239565b50505050905090810190601f16801561027e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610217600480360360208110156102a257600080fd5b8101906020810181356401000000008111156102bd57600080fd5b8201836020820111156102cf57600080fd5b803590602001918460018302840111640100000000831117156102f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f6f945050505050565b6103d86004803603602081101561034857600080fd5b81019060208101813564010000000081111561036357600080fd5b82018360208201111561037557600080fd5b8035906020019184600183028401116401000000008311171561039757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f8b945050505050565b604080519115158252519081900360200190f35b6104926004803603602081101561040257600080fd5b81019060208101813564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184600183028401116401000000008311171561045157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fa3945050505050565b604051808260058111156104a257fe5b815260200191505060405180910390f35b6103d8600480360360208110156104c957600080fd5b8101906020810181356401000000008111156104e457600080fd5b8201836020820111156104f657600080fd5b8035906020019184600183028401116401000000008311171561051857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fc3945050505050565b6102176004803603606081101561056f57600080fd5b508035906020810135906040013560ff16610fdb565b61062b6004803603602081101561059b57600080fd5b8101906020810181356401000000008111156105b657600080fd5b8201836020820111156105c857600080fd5b803590602001918460018302840111640100000000831117156105ea57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ff5945050505050565b6040805163ffffffff9094168452602084019290925273ffffffffffffffffffffffffffffffffffffffff1682820152519081900360600190f35b61070c6004803603602081101561067c57600080fd5b81019060208101813564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061103b945050505050565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561074d578181015183820152602001610735565b50505050905090810190601f16801561077a5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156107ad578181015183820152602001610795565b50505050905090810190601f1680156107da5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6102176110cb565b6102176004803603602081101561080857600080fd5b81019060208101813564010000000081111561082357600080fd5b82018360208201111561083557600080fd5b8035906020019184600183028401116401000000008311171561085757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110dd945050505050565b61093e600480360360208110156108ae57600080fd5b8101906020810181356401000000008111156108c957600080fd5b8201836020820111156108db57600080fd5b803590602001918460018302840111640100000000831117156108fd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110f9945050505050565b6040805160ff9095168552602085019390935273ffffffffffffffffffffffffffffffffffffffff909116838301526060830152519081900360800190f35b610a236004803603602081101561099357600080fd5b8101906020810181356401000000008111156109ae57600080fd5b8201836020820111156109c057600080fd5b803590602001918460018302840111640100000000831117156109e257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611152945050505050565b604051808560ff1681526020018481526020018381526020018260ff16815260200194505050505060405180910390f35b6103d860048036036040811015610a6a57600080fd5b810190602081018135640100000000811115610a8557600080fd5b820183602082011115610a9757600080fd5b80359060200191846001830284011164010000000083111715610ab957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff1691506111969050565b61021760048036036020811015610b1557600080fd5b810190602081018135640100000000811115610b3057600080fd5b820183602082011115610b4257600080fd5b80359060200191846001830284011164010000000083111715610b6457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111b8945050505050565b61021760048036036040811015610bbb57600080fd5b50803590602001356111d4565b6103d860048036036020811015610bde57600080fd5b810190602081018135640100000000811115610bf957600080fd5b820183602082011115610c0b57600080fd5b80359060200191846001830284011164010000000083111715610c2d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111e3945050505050565b6103d860048036036020811015610c8457600080fd5b810190602081018135640100000000811115610c9f57600080fd5b820183602082011115610cb157600080fd5b80359060200191846001830284011164010000000083111715610cd357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611203945050505050565b61021760048036036040811015610d2a57600080fd5b5063ffffffff813516906020013561121b565b61021760048036036080811015610d5357600080fd5b810190602081018135640100000000811115610d6e57600080fd5b820183602082011115610d8057600080fd5b80359060200191846001830284011164010000000083111715610da257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050640100000000811115610df557600080fd5b820183602082011115610e0757600080fd5b80359060200191846001830284011164010000000083111715610e2957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff833581169450602090930135909216915061122a9050565b61021760048036036020811015610e9057600080fd5b810190602081018135640100000000811115610eab57600080fd5b820183602082011115610ebd57600080fd5b80359060200191846001830284011164010000000083111715610edf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611269945050505050565b60606000610f3160055b8490611285565b9050610f66610f3f826112a9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166112de565b9150505b919050565b60606000610f7d6004610f2a565b9050610f66610f3f82611322565b600080610f986004610f2a565b9050610f6681611330565b600080610faf83611366565b9050610f66610fbe8483611285565b611384565b600080610fd06005610f2a565b9050610f66816113bf565b6060610feb610f3f8585856113de565b90505b9392505050565b6000808080611005856001611285565b9050600061101282611448565b9050600061101f836114ab565b9050600061102c846114e9565b92989197509195509350505050565b606080600061104d60025b8590611285565b9050600061105a82611525565b9050600061106783611565565b90506110947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166112de565b6110bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166112de565b94509450505050915091565b60606110d8610f3f6115fd565b905090565b606060006110eb6003610f2a565b9050610f66610f3f82611649565b60008080808061110c60035b8790611285565b9050600061111982611657565b9050600061112683611687565b90506000611133846116c5565b9050600061114085611701565b939a9299509097509195509350505050565b6000808080806111626004611105565b9050600061116f82611657565b9050600061117c8361173f565b905060006111898461174d565b905060006111408561178b565b60006111af6111aa83600581111561104657fe5b6117c9565b90505b92915050565b606060006111c66001610f2a565b9050610f66610f3f826117f2565b60606111af610f3f8484611800565b6000806111ef83611366565b9050610f666111fe8483611285565b61185c565b6000806112106003610f2a565b9050610f66816118b8565b60606111af610f3f84846118d7565b6060600061123d84600581111561110557fe5b9050600061125084600581111561110557fe5b905061125c8282611925565b925050505b949350505050565b606060006112776002610f2a565b9050610f66610f3f82611a39565b8151600090602084016112a064ffffffffff85168284611a47565b95945050505050565b60006111b26112b783611a9d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611b1e565b60606000806112ec84611b98565b6bffffffffffffffffffffffff16905060405191508192506113118483602001611bac565b508181016020016040529052919050565b60006111b26112b783611cd8565b6000600461133d83611657565b60ff161480156111b2575060045b61135483611384565b600581111561135f57fe5b1492915050565b60008160248151811061137557fe5b016020015160f81c9050919050565b60006113b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611d25565b60ff1660058111156111b257fe5b600060056113cc83611657565b60ff161480156111b25750600561134b565b6000610feb611443600060048787876040516020018085600581111561140057fe5b60f81b81526001018481526020018381526020018260ff1660f81b815260010194505050505060405160208183030381529060405261128590919063ffffffff16565b611322565b600081600161147b815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611d2b565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006004611eab565b60008160016114b981611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660046020611ecc565b60008160016114f781611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516601061203a565b600081600261153381611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600060246001612048565b600081600261157381611452565b50600060246115a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716611b98565b6bffffffffffffffffffffffff1603905060006115bf866120ce565b60ff1690506115f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871660248484612048565b9695505050505050565b60006110d8611644600060056040516020018082600581111561161c57fe5b60f81b815260010191505060405160208183030381529060405261128590919063ffffffff16565b6112a9565b60006111b26112b7836120ff565b60006111b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826001611eab565b600081600361169581611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660016020611ecc565b60008160036116d381611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600d61203a565b600081600361170f81611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660216020611eab565b600081600461169581611452565b600081600461175b81611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660216020611ecc565b600081600461179981611452565b506112617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660416001611eab565b60006117d482611330565b806117e357506117e3826113bf565b806111b257506111b2826118b8565b60006111b26112b78361214c565b60006111af6118576000600386866040516020018084600581111561182157fe5b60f81b8152600101838152602001828152602001935050505060405160208183030381529060405261128590919063ffffffff16565b611649565b60008061188a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b98565b6bffffffffffffffffffffffff16905060658114806118a95750606681145b80610f66575060251492915050565b600060036118c583611657565b60ff161480156111b25750600361134b565b60006111af61192060008585604051602001808363ffffffff1660e01b81526004018281526020019250505060405160208183030381529060405261128590919063ffffffff16565b6117f2565b606082600161193381611452565b5061193d846117c9565b6119a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616374696f6e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051600280825260608201835260009260208301908036833701905050905085816000815181106119d757fe5b602002602001019062ffffff1916908162ffffff19168152505084816001815181106119ff57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101909101526115f381612199565b60006111b26112b7836121e9565b600080611a548484612203565b9050604051811115611a64575060005b80611a92577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610fee565b6112a0858585612275565b60006001611acc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b98565b6bffffffffffffffffffffffff161415611b1657611b0f60055b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690612288565b9050610f6a565b6111b26122ae565b6000611b29826122d2565b611b9457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b60181c6bffffffffffffffffffffffff1690565b6000611bb78361230f565b611c0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806128d96028913960400191505060405180910390fd5b611c15836122d2565b611c6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612901602b913960400191505060405180910390fd5b6000611c7584611b98565b6bffffffffffffffffffffffff1690506000611c9085612321565b6bffffffffffffffffffffffff1690506000604051905084811115611cb55760206060fd5b8285848460045afa506115f3611cca87611d25565b64ffffffffff168685612275565b60006042611d077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b98565b6bffffffffffffffffffffffff161415611b1657611b0f6004611ae6565b60d81c90565b6000611d378383612335565b611ea4576000611d55611d4985611d25565b64ffffffffff16612357565b9150506000611d6a8464ffffffffff16612357565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b83811015611e69578181015183820152602001611e51565b50505050905090810190601f168015611e965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b60008160200360080260ff16611ec2858585611ecc565b901c949350505050565b600060ff8216611ede57506000610fee565b611ee784611b98565b6bffffffffffffffffffffffff16611f028460ff8516612203565b1115611fa457611f43611f1485612321565b6bffffffffffffffffffffffff16611f2b86611b98565b6bffffffffffffffffffffffff16858560ff1661242b565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315611e69578181015183820152602001611e51565b60208260ff161115612001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061289f603a913960400191505060405180910390fd5b60088202600061201086612321565b6bffffffffffffffffffffffff169050600061202b83612586565b91909501511695945050505050565b60006111af83836014611eab565b60008061205486612321565b6bffffffffffffffffffffffff16905061206d866125cf565b6120818561207b8489612203565b90612203565b11156120b0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611261565b6120ba8186612203565b90506115f38364ffffffffff168286611a47565b60006111b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246001611eab565b6000604161212e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b98565b6bffffffffffffffffffffffff161415611b1657611b0f6003611ae6565b6000602461217b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b98565b6bffffffffffffffffffffffff161415611b1657611b0f6001611ae6565b60405160609060006121ae84602084016125f9565b905060006121bb82611b98565b6bffffffffffffffffffffffff16905060006121d683612671565b9184525082016020016040525092915050565b60006121f48261185c565b15611b1657611b0f6002611ae6565b818101828110156111b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b60006122dd82611d25565b64ffffffffff1664ffffffffff14156122f857506000610f6a565b6000612303836125cf565b60405110199392505050565b600061231a82612685565b1592915050565b60781c6bffffffffffffffffffffffff1690565b60008164ffffffffff1661234884611d25565b64ffffffffff16149392505050565b600080601f5b600f8160ff1611156123bf5760ff600882021684901c61237c816126ad565b61ffff16841793508160ff1660101461239757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161235d565b50600f5b60ff8160ff1610156124255760ff600882021684901c6123e2816126ad565b61ffff16831792508160ff166000146123fd57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016123c3565b50915091565b6060600061243886612357565b915050600061244686612357565b915050600061245486612357565b915050600061246286612357565b91505083838383604051602001808061292c603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161287e82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b60006125da82611b98565b6125e383612321565b016bffffffffffffffffffffffff169050919050565b60006040518281111561260c5760206060fd5b506000805b845181101561266457600085828151811061262857fe5b6020026020010151905061263e81848701611bac565b5061264881611b98565b6bffffffffffffffffffffffff16929092019150600101612611565b5061126160008483612275565b600061267c826126dd565b60200292915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60006126bf60048360ff16901c612711565b60ff161760081b62ffff00166126d482612711565b60ff1617919050565b6000602061270360206126ef85611b98565b6bffffffffffffffffffffffff1690612203565b8161270a57fe5b0492915050565b600060f08083179060ff8216141561272d576030915050610f6a565b8060ff1660f11415612743576031915050610f6a565b8060ff1660f21415612759576032915050610f6a565b8060ff1660f3141561276f576033915050610f6a565b8060ff1660f41415612785576034915050610f6a565b8060ff1660f5141561279b576035915050610f6a565b8060ff1660f614156127b1576036915050610f6a565b8060ff1660f714156127c7576037915050610f6a565b8060ff1660f814156127dd576038915050610f6a565b8060ff1660f914156127f3576039915050610f6a565b8060ff1660fa1415612809576061915050610f6a565b8060ff1660fb141561281f576062915050610f6a565b8060ff1660fc1415612835576063915050610f6a565b8060ff1660fd141561284b576064915050610f6a565b8060ff1660fe1415612861576065915050610f6a565b8060ff1660ff1415612877576066915050610f6a565b5091905056fe2e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122028bc4894fdcc949887070c288b41bb554806ee4958cd125b8b2a11b1b65e356f64736f6c63430007060033"; + +export class TestBridgeMessage__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TestBridgeMessage { + return super.attach(address) as TestBridgeMessage; + } + connect(signer: Signer): TestBridgeMessage__factory { + return super.connect(signer) as TestBridgeMessage__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestBridgeMessageInterface { + return new utils.Interface(_abi) as TestBridgeMessageInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestBridgeMessage { + return new Contract(address, _abi, signerOrProvider) as TestBridgeMessage; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/TestEncoding__factory.ts b/solidity/abacus-xapps/typechain/factories/TestEncoding__factory.ts new file mode 100644 index 000000000..4fc330cc6 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/TestEncoding__factory.ts @@ -0,0 +1,54 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TestEncoding, TestEncodingInterface } from "../TestEncoding"; + +const _abi = [ + { + inputs: [], + name: "test", + outputs: [], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610659806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861003a565b005b6100e76100486104d261018d565b604051602001808269ffffffffffffffffffff1660b01b8152600a019150506040516020818303038152906040526040518060400160405280600a81526020017f30303030303031323334000000000000000000000000000000000000000000008152506040518060400160405280600b81526020017f656e636f646520313233340000000000000000000000000000000000000000008152506101ec565b6000806101137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610489565b604080516020810184905280820183905281518082038301815260c082018352606082018381529496509294506101899391906105e490608001396040518060400160405280600e81526020017f656e636f64652075696e746d61780000000000000000000000000000000000008152506101ec565b5050565b60006030815b600a8160ff1610156101e55760ff600882021682600a63ffffffff87160663ffffffff160169ffffffffffffffffffff16901b83179250600a8463ffffffff16816101da57fe5b049350600101610193565b5050919050565b81805190602001208380519060200120148183856040516020018084805190602001908083835b6020831061025057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610213565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527f2065787065637465642000000000000000000000000000000000000000000000919093019081528551600a90910192860191508083835b602083106102fd57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102c0565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527f20676f7420000000000000000000000000000000000000000000000000000000919093019081528451600590910192850191508083835b602083106103aa57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161036d565b6001836020036101000a038019825116818451168082178552505050505050905001935050505060405160208183030381529060405290610483576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610448578181015183820152602001610430565b50505050905090810190601f1680156104755780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050565b600080601f5b600f8160ff1611156104f15760ff600882021684901c6104ae8161055d565b61ffff16841793508160ff166010146104c957601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161048f565b50600f5b60ff8160ff1610156105575760ff600882021684901c6105148161055d565b61ffff16831792508160ff1660001461052f57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016104f5565b50915091565b600061056f60048360ff16901c61058d565b60ff161760081b62ffff00166105848261058d565b60ff1617919050565b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106105d457fe5b016020015160f81c939250505056fe66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666a264697066735822122050f8a979f4a1485481ab3dd1b1d33002e36ab02353b3d1532b7be4d743e4733064736f6c63430007060033"; + +export class TestEncoding__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TestEncoding { + return super.attach(address) as TestEncoding; + } + connect(signer: Signer): TestEncoding__factory { + return super.connect(signer) as TestEncoding__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestEncodingInterface { + return new utils.Interface(_abi) as TestEncodingInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TestEncoding { + return new Contract(address, _abi, signerOrProvider) as TestEncoding; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/TokenRegistry__factory.ts b/solidity/abacus-xapps/typechain/factories/TokenRegistry__factory.ts new file mode 100644 index 000000000..111cb9ec3 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/TokenRegistry__factory.ts @@ -0,0 +1,176 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { TokenRegistry, TokenRegistryInterface } from "../TokenRegistry"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: true, + internalType: "bytes32", + name: "id", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "representation", + type: "address", + }, + ], + name: "TokenDeployed", + type: "event", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "canonicalToRepresentation", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_local", + type: "address", + }, + ], + name: "getCanonicalAddress", + outputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_id", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_id", + type: "bytes32", + }, + ], + name: "getLocalAddress", + outputs: [ + { + internalType: "address", + name: "_token", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "address", + name: "_id", + type: "address", + }, + ], + name: "getLocalAddress", + outputs: [ + { + internalType: "address", + name: "_token", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "representationToCanonical", + outputs: [ + { + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "id", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tokenBeacon", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class TokenRegistry__factory { + static readonly abi = _abi; + static createInterface(): TokenRegistryInterface { + return new utils.Interface(_abi) as TokenRegistryInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TokenRegistry { + return new Contract(address, _abi, signerOrProvider) as TokenRegistry; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/TypedMemView__factory.ts b/solidity/abacus-xapps/typechain/factories/TypedMemView__factory.ts new file mode 100644 index 000000000..67bc8b69f --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/TypedMemView__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TypedMemView, TypedMemViewInterface } from "../TypedMemView"; + +const _abi = [ + { + inputs: [], + name: "NULL", + outputs: [ + { + internalType: "bytes29", + name: "", + type: "bytes29", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60cd610025600b82828239805160001a60731461001857fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063f26be3fc146038575b600080fd5b603e6073565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092168252519081900360200190f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008156fea2646970667358221220b07daa2cfa732a0712e14f333f7fb26a0736db4a4fce155c515a5dd1fc062de564736f6c63430007060033"; + +export class TypedMemView__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TypedMemView { + return super.attach(address) as TypedMemView; + } + connect(signer: Signer): TypedMemView__factory { + return super.connect(signer) as TypedMemView__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TypedMemViewInterface { + return new utils.Interface(_abi) as TypedMemViewInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TypedMemView { + return new Contract(address, _abi, signerOrProvider) as TypedMemView; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/UpgradeBeaconProxy__factory.ts b/solidity/abacus-xapps/typechain/factories/UpgradeBeaconProxy__factory.ts new file mode 100644 index 000000000..d35efa6a9 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/UpgradeBeaconProxy__factory.ts @@ -0,0 +1,93 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BytesLike, + Contract, + ContractFactory, + PayableOverrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UpgradeBeaconProxy, + UpgradeBeaconProxyInterface, +} from "../UpgradeBeaconProxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_upgradeBeacon", + type: "address", + }, + { + internalType: "bytes", + name: "_initializationCalldata", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + stateMutability: "payable", + type: "fallback", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea2646970667358221220e084da10f1437ab964c16dc80d846859df965188ba4815af7c882864b60df38a64736f6c63430007060033"; + +export class UpgradeBeaconProxy__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _upgradeBeacon: string, + _initializationCalldata: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _upgradeBeacon, + _initializationCalldata, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _upgradeBeacon: string, + _initializationCalldata: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _upgradeBeacon, + _initializationCalldata, + overrides || {} + ); + } + attach(address: string): UpgradeBeaconProxy { + return super.attach(address) as UpgradeBeaconProxy; + } + connect(signer: Signer): UpgradeBeaconProxy__factory { + return super.connect(signer) as UpgradeBeaconProxy__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UpgradeBeaconProxyInterface { + return new utils.Interface(_abi) as UpgradeBeaconProxyInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UpgradeBeaconProxy { + return new Contract(address, _abi, signerOrProvider) as UpgradeBeaconProxy; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/Version0__factory.ts b/solidity/abacus-xapps/typechain/factories/Version0__factory.ts new file mode 100644 index 000000000..e4e9bf6c2 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/Version0__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Version0, Version0Interface } from "../Version0"; + +const _abi = [ + { + inputs: [], + name: "VERSION", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x6080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063ffa1ad7414602d575b600080fd5b60336049565b6040805160ff9092168252519081900360200190f35b60008156fea264697066735822122016859ca78dcf45d7fa77d09deb2caf2dff4893dc7fc4845afe45e6f5d393538f64736f6c63430007060033"; + +export class Version0__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): Version0 { + return super.attach(address) as Version0; + } + connect(signer: Signer): Version0__factory { + return super.connect(signer) as Version0__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): Version0Interface { + return new utils.Interface(_abi) as Version0Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Version0 { + return new Contract(address, _abi, signerOrProvider) as Version0; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/XAppConnectionClient__factory.ts b/solidity/abacus-xapps/typechain/factories/XAppConnectionClient__factory.ts new file mode 100644 index 000000000..94c0ee082 --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/XAppConnectionClient__factory.ts @@ -0,0 +1,108 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + XAppConnectionClient, + XAppConnectionClientInterface, +} from "../XAppConnectionClient"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_xAppConnectionManager", + type: "address", + }, + ], + name: "setXAppConnectionManager", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "xAppConnectionManager", + outputs: [ + { + internalType: "contract XAppConnectionManager", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class XAppConnectionClient__factory { + static readonly abi = _abi; + static createInterface(): XAppConnectionClientInterface { + return new utils.Interface(_abi) as XAppConnectionClientInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): XAppConnectionClient { + return new Contract( + address, + _abi, + signerOrProvider + ) as XAppConnectionClient; + } +} diff --git a/solidity/abacus-xapps/typechain/factories/XAppConnectionManager__factory.ts b/solidity/abacus-xapps/typechain/factories/XAppConnectionManager__factory.ts new file mode 100644 index 000000000..5a946dfee --- /dev/null +++ b/solidity/abacus-xapps/typechain/factories/XAppConnectionManager__factory.ts @@ -0,0 +1,371 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + XAppConnectionManager, + XAppConnectionManagerInterface, +} from "../XAppConnectionManager"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "replica", + type: "address", + }, + ], + name: "ReplicaEnrolled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "replica", + type: "address", + }, + ], + name: "ReplicaUnenrolled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint32", + name: "domain", + type: "uint32", + }, + { + indexed: false, + internalType: "address", + name: "watcher", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "access", + type: "bool", + }, + ], + name: "WatcherPermissionSet", + type: "event", + }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "domainToReplica", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "home", + outputs: [ + { + internalType: "contract Home", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + ], + name: "isReplica", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "localDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "ownerEnrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_replica", + type: "address", + }, + ], + name: "ownerUnenrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "replicaToDomain", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_home", + type: "address", + }, + ], + name: "setHome", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_watcher", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bool", + name: "_access", + type: "bool", + }, + ], + name: "setWatcherPermission", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + { + internalType: "bytes32", + name: "_updater", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes", + }, + ], + name: "unenrollReplica", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_watcher", + type: "address", + }, + { + internalType: "uint32", + name: "_domain", + type: "uint32", + }, + ], + name: "watcherPermission", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212207bbb01114060ab4f4222e70fe5aca161030171f05a97f8c57b0b75e6b403718e64736f6c63430007060033"; + +export class XAppConnectionManager__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): XAppConnectionManager { + return super.attach(address) as XAppConnectionManager; + } + connect(signer: Signer): XAppConnectionManager__factory { + return super.connect(signer) as XAppConnectionManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): XAppConnectionManagerInterface { + return new utils.Interface(_abi) as XAppConnectionManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): XAppConnectionManager { + return new Contract( + address, + _abi, + signerOrProvider + ) as XAppConnectionManager; + } +} diff --git a/solidity/abacus-xapps/typechain/hardhat.d.ts b/solidity/abacus-xapps/typechain/hardhat.d.ts new file mode 100644 index 000000000..605509a58 --- /dev/null +++ b/solidity/abacus-xapps/typechain/hardhat.d.ts @@ -0,0 +1,139 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { ethers } from "ethers"; +import { + FactoryOptions, + HardhatEthersHelpers as HardhatEthersHelpersBase, +} from "@nomiclabs/hardhat-ethers/types"; + +import * as Contracts from "."; + +declare module "hardhat/types/runtime" { + interface HardhatEthersHelpers extends HardhatEthersHelpersBase { + getContractFactory( + name: "Common", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Home", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MerkleTreeManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "QueueManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Replica", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UpgradeBeaconProxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Version0", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "XAppConnectionManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IMessageRecipient", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUpdaterManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "OwnableUpgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Ownable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TypedMemView", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BridgeRouter", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BridgeToken", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ETHHelper", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MockWeth", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestBridgeMessage", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestEncoding", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TokenRegistry", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "PingPongRouter", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Router", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "RouterTemplate", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "XAppConnectionClient", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IBridgeToken", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IWeth", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + + // default types + getContractFactory( + name: string, + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + abi: any[], + bytecode: ethers.utils.BytesLike, + signer?: ethers.Signer + ): Promise; + } +} diff --git a/solidity/abacus-xapps/typechain/index.ts b/solidity/abacus-xapps/typechain/index.ts new file mode 100644 index 000000000..6ca84d25d --- /dev/null +++ b/solidity/abacus-xapps/typechain/index.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Common } from "./Common"; +export type { Home } from "./Home"; +export type { MerkleTreeManager } from "./MerkleTreeManager"; +export type { QueueManager } from "./QueueManager"; +export type { Replica } from "./Replica"; +export type { UpgradeBeaconProxy } from "./UpgradeBeaconProxy"; +export type { Version0 } from "./Version0"; +export type { XAppConnectionManager } from "./XAppConnectionManager"; +export type { IMessageRecipient } from "./IMessageRecipient"; +export type { IUpdaterManager } from "./IUpdaterManager"; +export type { OwnableUpgradeable } from "./OwnableUpgradeable"; +export type { Ownable } from "./Ownable"; +export type { IERC20 } from "./IERC20"; +export type { TypedMemView } from "./TypedMemView"; +export type { BridgeRouter } from "./BridgeRouter"; +export type { BridgeToken } from "./BridgeToken"; +export type { ETHHelper } from "./ETHHelper"; +export type { MockWeth } from "./MockWeth"; +export type { TestBridgeMessage } from "./TestBridgeMessage"; +export type { TestEncoding } from "./TestEncoding"; +export type { TokenRegistry } from "./TokenRegistry"; +export type { ERC20 } from "./ERC20"; +export type { PingPongRouter } from "./PingPongRouter"; +export type { Router } from "./Router"; +export type { RouterTemplate } from "./RouterTemplate"; +export type { XAppConnectionClient } from "./XAppConnectionClient"; +export type { IBridgeToken } from "./IBridgeToken"; +export type { IWeth } from "./IWeth"; + +export { Common__factory } from "./factories/Common__factory"; +export { Home__factory } from "./factories/Home__factory"; +export { MerkleTreeManager__factory } from "./factories/MerkleTreeManager__factory"; +export { QueueManager__factory } from "./factories/QueueManager__factory"; +export { Replica__factory } from "./factories/Replica__factory"; +export { UpgradeBeaconProxy__factory } from "./factories/UpgradeBeaconProxy__factory"; +export { Version0__factory } from "./factories/Version0__factory"; +export { XAppConnectionManager__factory } from "./factories/XAppConnectionManager__factory"; +export { IMessageRecipient__factory } from "./factories/IMessageRecipient__factory"; +export { IUpdaterManager__factory } from "./factories/IUpdaterManager__factory"; +export { OwnableUpgradeable__factory } from "./factories/OwnableUpgradeable__factory"; +export { Ownable__factory } from "./factories/Ownable__factory"; +export { IERC20__factory } from "./factories/IERC20__factory"; +export { TypedMemView__factory } from "./factories/TypedMemView__factory"; +export { BridgeRouter__factory } from "./factories/BridgeRouter__factory"; +export { BridgeToken__factory } from "./factories/BridgeToken__factory"; +export { ETHHelper__factory } from "./factories/ETHHelper__factory"; +export { MockWeth__factory } from "./factories/MockWeth__factory"; +export { TestBridgeMessage__factory } from "./factories/TestBridgeMessage__factory"; +export { TestEncoding__factory } from "./factories/TestEncoding__factory"; +export { TokenRegistry__factory } from "./factories/TokenRegistry__factory"; +export { ERC20__factory } from "./factories/ERC20__factory"; +export { PingPongRouter__factory } from "./factories/PingPongRouter__factory"; +export { Router__factory } from "./factories/Router__factory"; +export { RouterTemplate__factory } from "./factories/RouterTemplate__factory"; +export { XAppConnectionClient__factory } from "./factories/XAppConnectionClient__factory"; +export { IBridgeToken__factory } from "./factories/IBridgeToken__factory"; +export { IWeth__factory } from "./factories/IWeth__factory"; diff --git a/typescript/abacus-deploy/.gitignore b/typescript/abacus-deploy/.gitignore index 8676c6f40..08efef28a 100644 --- a/typescript/abacus-deploy/.gitignore +++ b/typescript/abacus-deploy/.gitignore @@ -1,4 +1,5 @@ node_modules/ tmp.ts dist/ -.env \ No newline at end of file +.env +cache/ diff --git a/typescript/abacus-tests/hardhat.config.ts b/typescript/abacus-deploy/hardhat.config.ts similarity index 59% rename from typescript/abacus-tests/hardhat.config.ts rename to typescript/abacus-deploy/hardhat.config.ts index 386b0297a..62a0610f5 100644 --- a/typescript/abacus-tests/hardhat.config.ts +++ b/typescript/abacus-deploy/hardhat.config.ts @@ -1,13 +1,9 @@ -import './lib/index'; import '@nomiclabs/hardhat-waffle'; -import "hardhat-gas-reporter"; /** * @type import('hardhat/config').HardhatUserConfig */ module.exports = { solidity: '0.7.6', - gasReporter: { - currency: "USD", - }, }; + diff --git a/typescript/abacus-deploy/package.json b/typescript/abacus-deploy/package.json index 4fadad1b2..f0005b8f0 100644 --- a/typescript/abacus-deploy/package.json +++ b/typescript/abacus-deploy/package.json @@ -1,7 +1,13 @@ { "devDependencies": { + "@nomiclabs/hardhat-ethers": "^2.0.5", + "@nomiclabs/hardhat-waffle": "^2.0.2", + "@typechain/ethers-v5": "~7.0.0", + "@typechain/hardhat": "^2.0.1", "@types/chai": "^4.2.21", + "ethereum-waffle": "^3.2.2", "ethers": "^5.4.7", + "hardhat": "^2.8.4", "prettier": "^2.3.1", "ts-node": "^10.1.0", "typechain": "^5.0.0", @@ -15,6 +21,7 @@ "types": "dist/src/index.d.ts", "scripts": { "build": "tsc", + "test": "hardhat test", "check": "tsc --noEmit", "prettier": "prettier --write ./src ./config ./scripts" }, @@ -25,6 +32,7 @@ "@abacus-network/ts-interface": "^0.0.1", "@aws-sdk/client-kms": "3.48.0", "@ethersproject/experimental": "^5.3.0", + "@types/mocha": "^9.1.0", "@types/node": "^16.9.1", "@types/yargs": "^17.0.8", "asn1.js": "5.4.1", diff --git a/typescript/abacus-tests/test/deploy.test.ts b/typescript/abacus-deploy/test/deploy.test.ts similarity index 76% rename from typescript/abacus-tests/test/deploy.test.ts rename to typescript/abacus-deploy/test/deploy.test.ts index e71d6a3e6..caf4bbdaa 100644 --- a/typescript/abacus-tests/test/deploy.test.ts +++ b/typescript/abacus-deploy/test/deploy.test.ts @@ -1,22 +1,22 @@ +import '@nomiclabs/hardhat-waffle'; import { ethers } from 'hardhat'; import { expect } from 'chai'; +import { Signer } from 'ethers'; import { getTestDeploy } from './testChain'; -import { Updater } from '../lib/core'; -import { Signer } from '../lib/types'; -import { CoreContractAddresses } from '@abacus-network/abacus-deploy/dist/src/config/addresses'; -import { deployBridges } from '@abacus-network/abacus-deploy/dist/src/bridge'; -import { BridgeDeploy } from '@abacus-network/abacus-deploy/dist/src/bridge/BridgeDeploy'; +import { CoreContractAddresses } from '../src/config/addresses'; +import { deployBridges } from '../src/bridge'; +import { BridgeDeploy } from '../src/bridge/BridgeDeploy'; import { deployTwoChains, deployNChains, -} from '@abacus-network/abacus-deploy/dist/src/core'; -import { CoreDeploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; +} from '../src/core'; +import { CoreDeploy } from '../src/core/CoreDeploy'; +import { DeployEnvironment } from '../src/deploy'; import { MockWeth, MockWeth__factory, } from '@abacus-network/ts-interface/dist/abacus-xapps'; -import { DeployEnvironment } from '@abacus-network/abacus-deploy/dist/src/deploy'; const domains = [1000, 2000, 3000, 4000]; @@ -24,11 +24,10 @@ const domains = [1000, 2000, 3000, 4000]; * Deploy the full Abacus suite on two chains */ describe('core deploy scripts', async () => { - let signer: Signer, recoveryManager: Signer, updater: Updater; + let signer: Signer, recoveryManager: Signer before(async () => { [signer, recoveryManager] = await ethers.getSigners(); - updater = await Updater.fromSigner(signer, domains[0]); }); describe('deployTwoChains', async () => { @@ -36,8 +35,8 @@ describe('core deploy scripts', async () => { let deploys: CoreDeploy[] = []; for (var i = 0; i < 2; i++) { deploys.push( - await getTestDeploy(domains[i], updater.address, [ - recoveryManager.address, + await getTestDeploy(domains[i], await signer.getAddress(), [ + await recoveryManager.getAddress(), ]), ); } @@ -55,8 +54,8 @@ describe('core deploy scripts', async () => { let deploys: CoreDeploy[] = []; for (let j = 0; j < i; j++) { deploys.push( - await getTestDeploy(domains[j], updater.address, [ - recoveryManager.address, + await getTestDeploy(domains[j], await signer.getAddress(), [ + await recoveryManager.getAddress(), ]), ); } @@ -89,31 +88,29 @@ describe('bridge deploy scripts', async () => { let signer: Signer, recoveryManager: Signer, - updater: Updater, mockWeth: MockWeth, deploys: CoreDeploy[] = [], coreAddresses: CoreContractAddresses[] = []; before(async () => { [signer, recoveryManager] = await ethers.getSigners(); - updater = await Updater.fromSigner(signer, domains[0]); mockWeth = await new MockWeth__factory(signer).deploy(); // deploy core contracts on 2 chains for (let i = 0; i < numChains; i++) { if (i == 0) { deploys.push( - await getTestDeploy(domains[i], updater.address, [ - recoveryManager.address, + await getTestDeploy(domains[i], await signer.getAddress(), [ + await recoveryManager.getAddress(), ]), ); } else { deploys.push( await getTestDeploy( domains[i], - updater.address, - [recoveryManager.address], - recoveryManager.address, + await signer.getAddress(), + [await recoveryManager.getAddress()], + await recoveryManager.getAddress(), mockWeth.address, ), ); diff --git a/typescript/abacus-tests/test/testChain.ts b/typescript/abacus-deploy/test/testChain.ts similarity index 82% rename from typescript/abacus-tests/test/testChain.ts rename to typescript/abacus-deploy/test/testChain.ts index 7e7442734..5c793f049 100644 --- a/typescript/abacus-tests/test/testChain.ts +++ b/typescript/abacus-deploy/test/testChain.ts @@ -1,13 +1,14 @@ +import '@nomiclabs/hardhat-waffle'; import { ethers } from 'hardhat'; -import { CoreDeploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy'; -import { CoreConfig } from '@abacus-network/abacus-deploy/dist/src/config/core'; +import { CoreDeploy } from '../src/core/CoreDeploy'; +import { CoreConfig } from '..//src/config/core'; import { ChainName, ChainConfig, ChainConfigJson, -} from '@abacus-network/abacus-deploy/dist/src/config/chain'; -import { DeployEnvironment } from '@abacus-network/abacus-deploy/dist/src/deploy'; +} from '../src/config/chain'; +import { DeployEnvironment } from '../src/deploy'; const { BigNumber } = ethers; @@ -67,3 +68,4 @@ export async function getTestDeploy( ); return new CoreDeploy(chain, config, true); } + diff --git a/typescript/abacus-deploy/tsconfig.json b/typescript/abacus-deploy/tsconfig.json index bb6c943c6..9612528ed 100644 --- a/typescript/abacus-deploy/tsconfig.json +++ b/typescript/abacus-deploy/tsconfig.json @@ -8,6 +8,7 @@ "include": [ "./config/**/*.ts", "./scripts/**/*.ts", - "./src/**/*.ts" + "./src/**/*.ts", + "./test/**/*.ts" ] } diff --git a/typescript/abacus-tests/.gitignore b/typescript/abacus-tests/.gitignore deleted file mode 100644 index 2ac420c5d..000000000 --- a/typescript/abacus-tests/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -artifacts -cache -dist/ diff --git a/typescript/abacus-tests/.prettierrc b/typescript/abacus-tests/.prettierrc deleted file mode 100644 index 8d6ce6a7e..000000000 --- a/typescript/abacus-tests/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "tabWidth": 2, - "singleQuote": true, - "trailingComma": "all" -} diff --git a/typescript/abacus-tests/package.json b/typescript/abacus-tests/package.json deleted file mode 100644 index b6bb2bf22..000000000 --- a/typescript/abacus-tests/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "devDependencies": { - "@nomiclabs/hardhat-ethers": "^2.0.2", - "@nomiclabs/hardhat-waffle": "^2.0.1", - "@typechain/ethers-v5": "^7.0.0", - "@types/chai": "^4.2.18", - "@types/mocha": "^8.2.2", - "chai": "^4.3.4", - "ethereum-waffle": "^3.3.0", - "ethers": "^5.5.3", - "hardhat": "^2.8.3", - "mkdirp": "^1.0.4", - "prettier": "2.3.0", - "ts-node": "^10.0.0", - "typechain": "^5.0.0", - "typescript": "^4.3.2" - }, - "dependencies": { - "@abacus-network/abacus-deploy": "^0.0.5", - "@abacus-network/sdk": "^0.0.1", - "@abacus-network/ts-interface": "^0.0.1", - "@types/node": "^15.14.7", - "dotenv": "^10.0.0", - "hardhat-gas-reporter": "^1.0.7" - }, - "name": "@abacus-network/test", - "version": "0.0.0", - "description": "Optics typescript tests and tools", - "main": "index.ts", - "scripts": { - "build": "tsc", - "check": "tsc --noEmit", - "prettier": "prettier --write ./test ./lib", - "test": "hardhat test", - "testNoCompile": "hardhat test" - }, - "author": "Celo Labs Inc.", - "license": "MIT OR Apache-2.0" -} diff --git a/typescript/abacus-tests/test/TestBridgeDeploy.ts b/typescript/abacus-tests/test/TestBridgeDeploy.ts deleted file mode 100644 index 53f8993d9..000000000 --- a/typescript/abacus-tests/test/TestBridgeDeploy.ts +++ /dev/null @@ -1,173 +0,0 @@ -import { BytesLike, Signer } from 'ethers'; -import { - UpgradeBeaconController, - UpgradeBeaconController__factory, -} from '@abacus-network/ts-interface/dist/abacus-core'; -import { - BridgeToken, - BridgeToken__factory, - MockCore, - MockCore__factory, - MockWeth, - MockWeth__factory, -} from '@abacus-network/ts-interface/dist/abacus-xapps'; -import { TokenIdentifier } from '@abacus-network/sdk/dist/abacus/tokens'; - -import { BridgeDeploy } from '@abacus-network/abacus-deploy/dist/src/bridge/BridgeDeploy'; -import { BridgeContracts } from '@abacus-network/abacus-deploy/dist/src/bridge/BridgeContracts'; -import * as process from '@abacus-network/abacus-deploy/dist/src/bridge'; -import { ChainConfig } from '@abacus-network/abacus-deploy/dist/src/config/chain'; -import { CoreConfig } from '@abacus-network/abacus-deploy/dist/src/config/core'; -import { DeployEnvironment } from '@abacus-network/abacus-deploy/dist/src/deploy'; - -function toBytes32(address: string): string { - return '0x' + '00'.repeat(12) + address.slice(2); -} - -// A BridgeRouter deployed with a mock Core suite. -// -// Intended usage: instatiate in hardhat tests with `deploy`. Interact with -// the Bridge contracts as normal. Dispatch messages to the bridge using -// router's `handle` function. The test signer is pre-authorized. Messages the -// router dispatches will be logged in the `Enqueue` event on the `MockCore` -// contract. -export default class TestBridgeDeploy extends BridgeDeploy { - ubc: UpgradeBeaconController; - mockCore: MockCore; - mockWeth: MockWeth; - localDomain: number; - - constructor( - ubc: UpgradeBeaconController, - mockCore: MockCore, - mockWeth: MockWeth, - contracts: BridgeContracts, - domain: number, - chain: ChainConfig, - callerKnowsWhatTheyAreDoing: boolean = false, - ) { - if (!callerKnowsWhatTheyAreDoing) { - throw new Error("Don't instantiate via new."); - } - const coreContractAddresses = { - home: { - proxy: mockCore.address, - implementation: mockCore.address, - beacon: mockCore.address, - }, - governanceRouter: { - proxy: mockCore.address, - implementation: mockCore.address, - beacon: mockCore.address, - }, - xAppConnectionManager: mockCore.address, - upgradeBeaconController: mockCore.address, - updaterManager: mockCore.address, - }; - super(chain, DeployEnvironment.test, true, coreContractAddresses); - this.ubc = ubc; - this.mockCore = mockCore; - this.mockWeth = mockWeth; - this.localDomain = domain; - this.config.weth = mockWeth.address; - this.contracts = contracts; - } - - static async deploy( - gtc: ( - domain: number, - updater: string, - watchers: string[], - recoveryManager?: string | undefined, - weth?: string | undefined, - ) => Promise<[ChainConfig, CoreConfig]>, - ethers: any, - signer: Signer, - ): Promise { - const mockCore = await new MockCore__factory(signer).deploy(); - const mockWeth = await new MockWeth__factory(signer).deploy(); - const ubc = await new UpgradeBeaconController__factory(signer).deploy(); - const contracts = new BridgeContracts(); - const domain = await mockCore.localDomain(); - const [chain] = await gtc(domain, '', [], '', mockWeth.address); - chain.signer = signer; - - let deploy = new TestBridgeDeploy( - ubc, - mockCore, - mockWeth, - contracts, - domain, - chain, - true, - ); - - await process.deployTokenUpgradeBeacon(deploy); - await process.deployBridgeRouter(deploy); - await process.deployEthHelper(deploy); - - // enroll the signer as a remote BridgeRouter - // so the test BridgeRouter will accept messages - // directly from the signer - await contracts.bridgeRouter?.proxy.enrollRemoteRouter( - 1, - toBytes32(await signer.getAddress()), - ); - - return deploy; - } - - get ubcAddress(): string { - return this.ubc.address; - } - - get coreDeployPath() { - return ''; - } - get overrides() { - return {}; - } - get config() { - return { weth: this.mockWeth.address }; - } - - get bridgeRouter() { - return this.contracts.bridgeRouter?.proxy; - } - - get remoteDomain(): number { - return 1; - } - - get testToken(): string { - return `0x${'11'.repeat(32)}`; - } - - get testTokenId(): TokenIdentifier { - return { - domain: this.remoteDomain, - id: this.testToken, - }; - } - - writeOutput() {} - - async getTestRepresentation(): Promise { - return await this.getRepresentation(this.remoteDomain, this.testToken); - } - - async getRepresentation( - domain: number, - canonicalTokenAddress: BytesLike, - ): Promise { - const reprAddr = await this.bridgeRouter![ - 'getLocalAddress(uint32,bytes32)' - ](domain, canonicalTokenAddress); - - if (domain === 0) { - return undefined; - } - - return BridgeToken__factory.connect(reprAddr, this.signer); - } -} diff --git a/typescript/abacus-tests/test/bridge/bridge.test.ts b/typescript/abacus-tests/test/bridge/bridge.test.ts deleted file mode 100644 index b01d5b188..000000000 --- a/typescript/abacus-tests/test/bridge/bridge.test.ts +++ /dev/null @@ -1,803 +0,0 @@ -import { expect } from 'chai'; -import { ethers, bridge } from 'hardhat'; -import { BigNumber, BytesLike } from 'ethers'; - -import * as types from '../../lib/types'; -import { toBytes32 } from '../../lib/utils'; -import TestBridgeDeploy from '../TestBridgeDeploy'; -import { - BridgeToken, - BridgeToken__factory, - IERC20, -} from '@abacus-network/ts-interface/dist/abacus-xapps'; -import { stringToBytes32 } from '../utils'; -import { getTestChain } from '../testChain'; - -const { BridgeMessageTypes } = bridge; - -describe('BridgeRouter', async () => { - let deployer: types.Signer; - let deployerAddress: string; - let deployerId: BytesLike; - let deploy: TestBridgeDeploy; - - const PROTOCOL_PROCESS_GAS = 800_000; - - // Numerical token value - const TOKEN_VALUE = 0xffff; - - before(async () => { - // populate deployer signer - [deployer] = await ethers.getSigners(); - deployerAddress = await deployer.getAddress(); - deployerId = toBytes32(await deployer.getAddress()).toLowerCase(); - }); - - describe('invalid messages', async () => { - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - }); - - it('rejects invalid messages', async () => { - const handleTx = deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - '0x', - { gasLimit: PROTOCOL_PROCESS_GAS }, - ); - await expect(handleTx).to.be.reverted; - }); - }); - - describe('transfer message', async () => { - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - }); - - describe('remotely-originating asset roundtrup', async () => { - let transferMessage: BytesLike; - let repr: IERC20; - - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - - // generate transfer action - const transferMessageObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: TOKEN_VALUE, - }, - }; - transferMessage = bridge.serializeMessage(transferMessageObj); - }); - - it('deploys a token on first inbound transfer', async () => { - let handleTx = await deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - transferMessage, - { gasLimit: PROTOCOL_PROCESS_GAS }, - ); - - const representation = await deploy.getTestRepresentation(); - expect(representation).to.not.be.undefined; - repr = representation!; - - const requestDetailsObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.REQUEST_DETAILS, - }, - }; - const requestDetails = bridge.serializeMessage(requestDetailsObj); - - await expect(handleTx).to.emit(deploy.bridgeRouter!, 'TokenDeployed'); - await expect(handleTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, requestDetails); - expect(await repr!.balanceOf(deployer.address)).to.equal( - BigNumber.from(TOKEN_VALUE), - ); - expect(await repr!.totalSupply()).to.equal(BigNumber.from(TOKEN_VALUE)); - }); - - it('errors on send if ERC20 balance is insufficient', async () => { - const stealTx = deploy.bridgeRouter!.send( - repr!.address, - TOKEN_VALUE * 10, - deploy.remoteDomain, - deployerId, - ); - - await expect(stealTx).to.be.revertedWith( - 'ERC20: burn amount exceeds balance', - ); - }); - - it('errors when missing a remote router', async () => { - expect( - deploy.bridgeRouter!.send( - repr!.address, - TOKEN_VALUE * 10, - 121234, - deployerId, - ), - ).to.be.revertedWith('!remote'); - }); - - it('errors on send when recipient is the 0 address', async () => { - expect( - deploy.bridgeRouter!.send( - repr!.address, - TOKEN_VALUE * 10, - deploy.remoteDomain, - `0x${'00'.repeat(32)}`, - ), - ).to.be.revertedWith('!recip'); - }); - - it('errors on send if ERC20 amount is zero', async () => { - const zeroTx = deploy.bridgeRouter!.send( - repr!.address, - 0, - deploy.remoteDomain, - deployerId, - ); - - await expect(zeroTx).to.be.revertedWith('!amnt'); - }); - - it('errors on send if remote router is unknown', async () => { - const unknownRemote = deploy.bridgeRouter!.send( - repr!.address, - 1, - 3000, - deployerId, - ); - - await expect(unknownRemote).to.be.revertedWith('!remote'); - }); - - it('burns tokens on outbound message', async () => { - // OUTBOUND - const sendTx = await deploy.bridgeRouter!.send( - repr!.address, - TOKEN_VALUE, - deploy.remoteDomain, - deployerId, - ); - - await expect(sendTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, transferMessage); - - expect(await repr!.totalSupply()).to.equal(BigNumber.from(0)); - }); - - it('errors on outbound messages with no balance', async () => { - // OUTBOUND, NO Tokens - const badTx = deploy.bridgeRouter!.send( - repr!.address, - TOKEN_VALUE, - deploy.remoteDomain, - deployerId, - ); - await expect(badTx).to.be.revertedWith( - 'ERC20: burn amount exceeds balance', - ); - }); - }); - - describe('locally-originating asset roundtrip', async () => { - let transferMessage: string; - let localToken: BridgeToken; - - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - - localToken = await new BridgeToken__factory(deployer).deploy(); - await localToken.initialize(); - await localToken.mint(deployerAddress, TOKEN_VALUE); - - // generate protocol messages - const transferMessageObj: types.Message = { - tokenId: { - domain: deploy.localDomain, - id: toBytes32(localToken.address), - }, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: TOKEN_VALUE, - }, - }; - transferMessage = bridge.serializeMessage(transferMessageObj); - - expect(await localToken.balanceOf(deployerAddress)).to.equal( - BigNumber.from(TOKEN_VALUE), - ); - expect( - await localToken.balanceOf(deploy.bridgeRouter!.address), - ).to.equal(BigNumber.from(0)); - }); - - it('errors if the token is not approved', async () => { - // TOKEN NOT APPROVED - const unapproved = deploy.bridgeRouter!.send( - localToken.address, - 1, - deploy.remoteDomain, - deployerId, - ); - - expect(unapproved).to.be.revertedWith( - 'ERC20: transfer amount exceeds allowance', - ); - expect( - await localToken.balanceOf(deploy.bridgeRouter!.address), - ).to.equal(BigNumber.from(0)); - }); - - it('errors if insufficient balance', async () => { - await localToken.approve( - deploy.bridgeRouter!.address, - ethers.constants.MaxUint256, - ); - - const badTx = deploy.bridgeRouter!.send( - localToken.address, - TOKEN_VALUE * 5, - deploy.remoteDomain, - deployerId, - ); - - expect(badTx).to.be.revertedWith( - 'ERC20: transfer amount exceeds balance', - ); - expect( - await localToken.balanceOf(deploy.bridgeRouter!.address), - ).to.equal(BigNumber.from(0)); - }); - - it('holds tokens on outbound transfer', async () => { - const sendTx = await deploy.bridgeRouter!.send( - localToken.address, - TOKEN_VALUE, - deploy.remoteDomain, - deployerId, - ); - - await expect(sendTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, transferMessage); - - expect( - await localToken.balanceOf(deploy.bridgeRouter!.address), - ).to.equal(BigNumber.from(TOKEN_VALUE)); - }); - - it('unlocks tokens on inbound transfer', async () => { - let handleTx = await deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - transferMessage, - { gasLimit: PROTOCOL_PROCESS_GAS }, - ); - - expect(handleTx).to.not.emit(deploy.bridgeRouter!, 'TokenDeployed'); - - expect( - await localToken.balanceOf(deploy.bridgeRouter!.address), - ).to.equal(BigNumber.from(0)); - - expect(await localToken.balanceOf(deployerAddress)).to.equal( - BigNumber.from(TOKEN_VALUE), - ); - }); - }); - }); - - describe('prefill', async () => { - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - }); - - it('errors for non-existing assets', async () => { - // generate transfer action - const transferMessageObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: TOKEN_VALUE, - }, - }; - const transferMessage = bridge.serializeMessage(transferMessageObj); - - expect(deploy.bridgeRouter!.preFill(transferMessage)).to.be.revertedWith( - '!token', - ); - }); - - describe('remotely-originating asset', async () => { - let setupMessage: string; - let repr: IERC20; - let recipient: string; - let recipientId: string; - let transferMessage: string; - - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - - // generate actions - recipient = `0x${'00'.repeat(19)}ff`; - recipientId = toBytes32(recipient); - - // transfer message - const transferMessageObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: recipientId, - amount: TOKEN_VALUE, - }, - }; - transferMessage = bridge.serializeMessage(transferMessageObj); - - // setup message - const setupMessageObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: TOKEN_VALUE, - }, - }; - setupMessage = bridge.serializeMessage(setupMessageObj); - - // perform setup - const setupTx = await deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - setupMessage, - { gasLimit: PROTOCOL_PROCESS_GAS }, - ); - - await expect(setupTx).to.emit(deploy.bridgeRouter!, 'TokenDeployed'); - - const representation = await deploy.getTestRepresentation(); - expect(representation).to.not.be.undefined; - - repr = representation!; - expect(await repr.balanceOf(deployerAddress)).to.equal( - BigNumber.from(TOKEN_VALUE), - ); - await repr?.approve( - deploy.bridgeRouter!.address, - ethers.constants.MaxUint256, - ); - }); - - it('transfers tokens on a prefill', async () => { - const prefillTx = await deploy.bridgeRouter!.preFill(transferMessage); - await expect(prefillTx) - .to.emit(repr, 'Transfer') - .withArgs( - deployerAddress, - recipient, - BigNumber.from(TOKEN_VALUE).mul(9995).div(10000), - ); - }); - - it('mints tokens for the liquidity provider on message receipt', async () => { - let deliver = deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - transferMessage, - { gasLimit: PROTOCOL_PROCESS_GAS }, - ); - await expect(deliver) - .to.emit(repr, 'Transfer') - .withArgs(ethers.constants.AddressZero, deployerAddress, TOKEN_VALUE); - }); - }); - - describe('locally-originating asset', async () => { - let localToken: BridgeToken; - let recipient: string; - let recipientId: string; - let transferMessage: string; - - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - localToken = await new BridgeToken__factory(deployer).deploy(); - await localToken.initialize(); - await localToken.mint(deployerAddress, TOKEN_VALUE); - await localToken.mint(deploy.bridgeRouter!.address, TOKEN_VALUE); - await localToken.approve( - deploy.bridgeRouter!.address, - ethers.constants.MaxUint256, - ); - - expect(await localToken.balanceOf(deployerAddress)).to.equal( - BigNumber.from(TOKEN_VALUE), - ); - expect( - await localToken.balanceOf(deploy.bridgeRouter!.address), - ).to.equal(BigNumber.from(TOKEN_VALUE)); - - // generate transfer action - recipient = `0x${'00'.repeat(19)}ff`; - recipientId = toBytes32(recipient); - - const transferMessageObj: types.Message = { - tokenId: { - domain: deploy.localDomain, - id: toBytes32(localToken.address), - }, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: recipientId, - amount: TOKEN_VALUE, - }, - }; - transferMessage = bridge.serializeMessage(transferMessageObj); - }); - - it('transfers tokens on prefill', async () => { - const prefillTx = await deploy.bridgeRouter!.preFill(transferMessage); - await expect(prefillTx) - .to.emit(localToken, 'Transfer') - .withArgs( - deployerAddress, - recipient, - BigNumber.from(TOKEN_VALUE).mul(9995).div(10000), - ); - }); - - it('unlocks tokens on message receipt', async () => { - let deliver = deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - transferMessage, - { gasLimit: PROTOCOL_PROCESS_GAS }, - ); - await expect(deliver) - .to.emit(localToken, 'Transfer') - .withArgs(deploy.bridgeRouter!.address, deployerAddress, TOKEN_VALUE); - }); - }); - }); - - describe('details message', async () => { - let localToken: BridgeToken; - let requestMessage: string; - let outgoingDetails: string; - let incomingDetails: string; - let transferMessage: string; - let repr: BridgeToken; - - const TEST_NAME = 'TEST TOKEN'; - const TEST_SYMBOL = 'TEST'; - const TEST_DECIMALS = 8; - - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - localToken = await new BridgeToken__factory(deployer).deploy(); - await localToken.initialize(); - await localToken.setDetails(TEST_NAME, TEST_SYMBOL, TEST_DECIMALS); - - const requestMessageObj: types.Message = { - tokenId: { - domain: deploy.localDomain, - id: toBytes32(localToken.address), - }, - action: { - type: BridgeMessageTypes.REQUEST_DETAILS, - }, - }; - requestMessage = bridge.serializeMessage(requestMessageObj); - - const outgoingDetailsObj: types.Message = { - tokenId: { - domain: deploy.localDomain, - id: toBytes32(localToken.address), - }, - action: { - type: BridgeMessageTypes.DETAILS, - name: stringToBytes32(TEST_NAME), - symbol: stringToBytes32(TEST_SYMBOL), - decimals: TEST_DECIMALS, - }, - }; - outgoingDetails = bridge.serializeMessage(outgoingDetailsObj); - - // generate transfer action - const transferMessageObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: TOKEN_VALUE, - }, - }; - transferMessage = bridge.serializeMessage(transferMessageObj); - - const incomingDetailsObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.DETAILS, - name: stringToBytes32(TEST_NAME), - symbol: stringToBytes32(TEST_SYMBOL), - decimals: TEST_DECIMALS, - }, - }; - incomingDetails = bridge.serializeMessage(incomingDetailsObj); - - // first send in a transfer to create the repr - await deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - transferMessage, - ); - - const representation = await deploy.getTestRepresentation(); - expect(representation).to.not.be.undefined; - repr = representation!; - }); - - it('allows admins to dispatch requestDetails', async () => { - const requestTx = await deploy.bridgeRouter!.requestDetails( - deploy.remoteDomain, - deploy.testToken, - ); - - const requestDetailsObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.REQUEST_DETAILS, - }, - }; - const requestDetails = bridge.serializeMessage(requestDetailsObj); - - await expect(requestTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, requestDetails); - }); - - it('handles incoming requestDetails by dispatching a details message', async () => { - const handleTx = deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - requestMessage, - ); - - await expect(handleTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, outgoingDetails); - }); - - it('errors if token is a repr', async () => { - const badRequestObj: types.Message = { - tokenId: { - domain: deploy.localDomain, - id: toBytes32(repr.address), - }, - action: { - type: BridgeMessageTypes.REQUEST_DETAILS, - }, - }; - const badRequest = bridge.serializeMessage(badRequestObj); - - let badRequestTx = deploy.bridgeRouter?.handle( - deploy.remoteDomain, - deployerId, - badRequest, - ); - - await expect(badRequestTx).to.be.revertedWith('!local origin'); - }); - - it('errors if no registered router for response', async () => { - const badRequestObj: types.Message = { - tokenId: { - domain: deploy.localDomain, - id: toBytes32(localToken.address), - }, - action: { - type: BridgeMessageTypes.REQUEST_DETAILS, - }, - }; - const badRequest = bridge.serializeMessage(badRequestObj); - - let badRequestTx = deploy.bridgeRouter?.handle( - 3812, - deployerId, - badRequest, - ); - - await expect(badRequestTx).to.be.revertedWith('!remote router'); - }); - - it('sets details during details message handling', async () => { - // repr should not be configured - expect((await repr.name()).length).to.equal(15); - expect((await repr.symbol()).length).to.equal(15); - expect(await repr.decimals()).to.equal(18); - - await deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - incomingDetails, - ); - - expect(await repr.name()).to.equal(TEST_NAME); - expect(await repr.symbol()).to.equal(TEST_SYMBOL); - expect(await repr.decimals()).to.equal(TEST_DECIMALS); - }); - }); - - describe('custom token representations', async () => { - let transferMessage: string; - let defaultRepr: BridgeToken; - let customRepr: BridgeToken; - const VALUE = `0xffffffffffffffff`; - - before(async () => { - deploy = await TestBridgeDeploy.deploy(getTestChain, ethers, deployer); - - // generate transfer action - const transferMessageObj: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: VALUE, - }, - }; - transferMessage = bridge.serializeMessage(transferMessageObj); - - // first send in a transfer to create the repr - await deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - transferMessage, - ); - - const representation = await deploy.getTestRepresentation(); - expect(representation).to.not.be.undefined; - defaultRepr = representation!; - expect(await defaultRepr.balanceOf(deployerAddress)).to.equal( - BigNumber.from(VALUE), - ); - - // setup custom - customRepr = await new BridgeToken__factory(deployer).deploy(); - await customRepr.initialize(); - expect(await customRepr.balanceOf(deployerAddress)).to.equal( - BigNumber.from(0), - ); - }); - - it('migrate errors if old === new', async () => { - const migrate = deploy.bridgeRouter!.migrate(defaultRepr.address); - await expect(migrate).to.be.revertedWith('!different'); - }); - - it('migrate errors if custom token is not enrolled', async () => { - const migrate = deploy.bridgeRouter!.migrate(customRepr.address); - await expect(migrate).to.be.revertedWith('!repr'); - }); - - it('errors if no mint/burn privileges', async () => { - const enrollTx = deploy.bridgeRouter!.enrollCustom( - deploy.remoteDomain, - deploy.testToken, - customRepr.address, - ); - - await expect(enrollTx).to.be.revertedWith( - 'Ownable: caller is not the owner', - ); - }); - - it('registers the custom token', async () => { - await customRepr.transferOwnership(deploy.bridgeRouter!.address); - - const enrollTx = deploy.bridgeRouter!.enrollCustom( - deploy.remoteDomain, - deploy.testToken, - customRepr.address, - ); - - await expect(enrollTx).to.not.be.reverted; - expect( - await deploy.bridgeRouter!['getLocalAddress(uint32,bytes32)']( - deploy.remoteDomain, - deploy.testToken, - ), - ).to.equal(customRepr.address); - - let [domain, token] = await deploy.bridgeRouter!.getCanonicalAddress( - customRepr.address, - ); - expect(domain).to.equal(deploy.remoteDomain); - expect(token).to.equal(deploy.testToken); - - [domain, token] = await deploy.bridgeRouter!.getCanonicalAddress( - defaultRepr.address, - ); - expect(domain).to.equal(deploy.remoteDomain); - expect(token).to.equal(deploy.testToken); - }); - - it('mints incoming tokens in the custom repr', async () => { - const defaultBalance = await defaultRepr.balanceOf(deployerAddress); - - // first send in a transfer to create the repr - await deploy.bridgeRouter!.handle( - deploy.remoteDomain, - deployerId, - transferMessage, - ); - // did not mint default - expect(await defaultRepr.balanceOf(deployerAddress)).to.equal( - defaultBalance, - ); - // did mint custom - expect(await customRepr.balanceOf(deployerAddress)).to.equal( - BigNumber.from(VALUE), - ); - }); - - it('allows outbound transfers of both assets', async () => { - const smallTransfer: types.Message = { - tokenId: deploy.testTokenId, - action: { - type: BridgeMessageTypes.TRANSFER, - recipient: deployerId, - amount: TOKEN_VALUE, - }, - }; - const smallTransferMessage = bridge.serializeMessage(smallTransfer); - - const defaultSendTx = await deploy.bridgeRouter!.send( - defaultRepr.address, - TOKEN_VALUE, - deploy.remoteDomain, - deployerId, - ); - await expect(defaultSendTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, smallTransferMessage); - - const customSendTx = await deploy.bridgeRouter!.send( - customRepr.address, - TOKEN_VALUE, - deploy.remoteDomain, - deployerId, - ); - await expect(customSendTx) - .to.emit(deploy.mockCore, 'Enqueue') - .withArgs(deploy.remoteDomain, deployerId, smallTransferMessage); - }); - - it('allows users to migrate', async () => { - const defaultBalance = await defaultRepr.balanceOf(deployerAddress); - const customBalance = await customRepr.balanceOf(deployerAddress); - - let migrateTx = deploy.bridgeRouter!.migrate(defaultRepr.address); - - await expect(migrateTx).to.not.be.reverted; - - expect(await defaultRepr.balanceOf(deployerAddress)).to.equal( - ethers.constants.Zero, - ); - expect(await customRepr.balanceOf(deployerAddress)).to.equal( - defaultBalance.add(customBalance), - ); - }); - }); -}); diff --git a/typescript/abacus-tests/test/bridge/fastLiquidity.test.ts b/typescript/abacus-tests/test/bridge/fastLiquidity.test.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/typescript/abacus-tests/test/multiProvider.test.ts b/typescript/abacus-tests/test/multiProvider.test.ts deleted file mode 100644 index 8a5958a72..000000000 --- a/typescript/abacus-tests/test/multiProvider.test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { expect } from 'chai'; -import { AbacusContext } from '@abacus-network/sdk'; - -describe('abacus sdk', () => { - it('compiles', () => { - expect(AbacusContext).to.not.be.undefined; - }); -}); diff --git a/typescript/abacus-tests/tsconfig.json b/typescript/abacus-tests/tsconfig.json deleted file mode 100644 index 00f45f45a..000000000 --- a/typescript/abacus-tests/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "outDir": "./dist/", - "rootDir": "./", - "resolveJsonModule": true - }, - "exclude": ["./node_modules/", "./dist/"], - "extends": "../tsconfig.package.json", - "include": [ - "./lib/*.ts", - "./test/*.ts", - "./test/bridge/*.ts", - "./test/cross-chain/*.ts" - ] -} diff --git a/typescript/typechain/abacus-core/MerkleLib.d.ts b/typescript/typechain/abacus-core/MerkleLib.d.ts new file mode 100644 index 000000000..29183bd80 --- /dev/null +++ b/typescript/typechain/abacus-core/MerkleLib.d.ts @@ -0,0 +1,246 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface MerkleLibInterface extends ethers.utils.Interface { + functions: { + "zeroHashes()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "zeroHashes", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "zeroHashes", data: BytesLike): Result; + + events: {}; +} + +export class MerkleLib extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MerkleLibInterface; + + functions: { + zeroHashes( + overrides?: CallOverrides + ): Promise< + [ + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + ] & { + _zeroes: [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ]; + } + >; + }; + + zeroHashes( + overrides?: CallOverrides + ): Promise< + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + >; + + callStatic: { + zeroHashes( + overrides?: CallOverrides + ): Promise< + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + >; + }; + + filters: {}; + + estimateGas: { + zeroHashes(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + zeroHashes(overrides?: CallOverrides): Promise; + }; +} diff --git a/typescript/typechain/abacus-core/TestHome.d.ts b/typescript/typechain/abacus-core/TestHome.d.ts index 7e2a41771..2dab79e58 100644 --- a/typescript/typechain/abacus-core/TestHome.d.ts +++ b/typescript/typechain/abacus-core/TestHome.d.ts @@ -34,6 +34,7 @@ interface TestHomeInterface extends ethers.utils.Interface { "nextLeafIndex()": FunctionFragment; "nonces(uint32)": FunctionFragment; "owner()": FunctionFragment; + "proof()": FunctionFragment; "queueContains(bytes32)": FunctionFragment; "queueEnd()": FunctionFragment; "queueLength()": FunctionFragment; @@ -93,6 +94,7 @@ interface TestHomeInterface extends ethers.utils.Interface { values: [BigNumberish] ): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: "proof", values?: undefined): string; encodeFunctionData( functionFragment: "queueContains", values: [BytesLike] @@ -175,6 +177,7 @@ interface TestHomeInterface extends ethers.utils.Interface { ): Result; decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "proof", data: BytesLike): Result; decodeFunctionResult( functionFragment: "queueContains", data: BytesLike @@ -330,6 +333,47 @@ export class TestHome extends BaseContract { owner(overrides?: CallOverrides): Promise<[string]>; + proof( + overrides?: CallOverrides + ): Promise< + [ + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + ] + >; + queueContains( _item: BytesLike, overrides?: CallOverrides @@ -439,6 +483,45 @@ export class TestHome extends BaseContract { owner(overrides?: CallOverrides): Promise; + proof( + overrides?: CallOverrides + ): Promise< + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + >; + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; queueEnd(overrides?: CallOverrides): Promise; @@ -543,6 +626,45 @@ export class TestHome extends BaseContract { owner(overrides?: CallOverrides): Promise; + proof( + overrides?: CallOverrides + ): Promise< + [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string + ] + >; + queueContains( _item: BytesLike, overrides?: CallOverrides @@ -724,6 +846,8 @@ export class TestHome extends BaseContract { owner(overrides?: CallOverrides): Promise; + proof(overrides?: CallOverrides): Promise; + queueContains( _item: BytesLike, overrides?: CallOverrides @@ -835,6 +959,8 @@ export class TestHome extends BaseContract { owner(overrides?: CallOverrides): Promise; + proof(overrides?: CallOverrides): Promise; + queueContains( _item: BytesLike, overrides?: CallOverrides diff --git a/typescript/typechain/abacus-core/factories/GovernanceRouter__factory.ts b/typescript/typechain/abacus-core/factories/GovernanceRouter__factory.ts index e286d0454..e0cd51d02 100644 --- a/typescript/typechain/abacus-core/factories/GovernanceRouter__factory.ts +++ b/typescript/typechain/abacus-core/factories/GovernanceRouter__factory.ts @@ -488,7 +488,7 @@ const _abi = [ ]; const _bytecode = - "0x60c06040523480156200001157600080fd5b50604051620039b9380380620039b9833981016040819052620000349162000050565b60e09190911b6001600160e01b03191660805260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a0516138f7620000c2600039806104c45280610f8352508061083d52806108ae5280610fa75280611afd52506138f76000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806363706be3116100d8578063de314b191161008c578063e8c6f83a11610066578063e8c6f83a146102bf578063f05151df146102d2578063ffa1ad74146102e757610182565b8063de314b191461029c578063e5429298146102a4578063e6b3d949146102ac57610182565b8063670a43c4116100bd578063670a43c4146102795780638d3638f414610281578063db2021ae1461028957610182565b806363706be31461025e57806366cf8fab1461026657610182565b806341bdc8b51161013a5780634fedbbb5116101145780634fedbbb5146102235780635585416c1461023657806356d5d4751461024b57610182565b806341bdc8b5146101ea5780634626abee146101fd578063485cc9551461021057610182565b80632ead72f61161016b5780632ead72f6146101ba578063316c92b6146101da5780633339df96146101e257610182565b80630c340a24146101875780630ce21995146101a5575b600080fd5b61018f6102fc565b60405161019c9190613354565b60405180910390f35b6101b86101b33660046131ec565b610318565b005b6101cd6101c8366004613144565b6103e2565b60405161019c9190613380565b6101b86103f4565b61018f610542565b6101b86101f836600461305c565b61055e565b6101b861020b3660046130b0565b610658565b6101b861021e366004613078565b610753565b6101b8610231366004613199565b6109e5565b61023e610bad565b60405161019c91906135f2565b6101b8610259366004613217565b610bd1565b6101b8610e64565b61023e61027436600461312c565b610f47565b6101cd610f81565b61023e610fa5565b6101b861029736600461317c565b610fc9565b61018f6110a2565b6101cd6110be565b6101b86102ba36600461305c565b6110c4565b6101b86102cd3660046131ec565b6111a3565b6102da611254565b60405161019c9190613375565b6102ef611275565b60405161019c919061367f565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610320611254565b6103835760035473ffffffffffffffffffffffffffffffffffffffff16331461037e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b60405180910390fd5b6103d4565b60025473ffffffffffffffffffffffffffffffffffffffff1633146103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b6103de828261127a565b5050565b60056020526000908152604090205481565b6103fc611254565b15610433576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b60025473ffffffffffffffffffffffffffffffffffffffff163314610484576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600154156104be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134df565b6104e8427f000000000000000000000000000000000000000000000000000000000000000061130b565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae225916105389190613380565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610566611254565b6105c05760035473ffffffffffffffffffffffffffffffffffffffff1633146105bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b610611565b60025473ffffffffffffffffffffffffffffffffffffffff163314610611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610660611254565b6106ba5760035473ffffffffffffffffffffffffffffffffffffffff1633146106b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b61070b565b60025473ffffffffffffffffffffffffffffffffffffffff16331461070b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b60005b8181101561074e5761074583838381811061072557fe5b9050602002810190610737919061368d565b61074090613744565b611388565b5060010161070e565b505050565b600054610100900460ff168061076c575061076c61144b565b8061077a575060005460ff16155b6107cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806137d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561083557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b3360016108637f0000000000000000000000000000000000000000000000000000000000000000838361145c565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556108ac8561055e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561093b57600080fd5b505afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190613160565b63ffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061343c565b5050801561074e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b610a3e611254565b15610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b6000610a8084611586565b90506000610a96610a9184866136e4565b6115d8565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190613110565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610b7493929190613603565b600060405180830381600087803b158015610b8e57600080fd5b505af1158015610ba2573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c2691339101613354565b60206040518083038186803b158015610c3e57600080fd5b505afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906130f0565b610cac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613471565b8282610cb882826117ad565b610cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613405565b6000610cfa84826117fa565b9050610d277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821661181e565b15610d6457610d5f610d5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611879565b6118c7565b610e5c565b610d8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611960565b15610dc757610d5f610dc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166119be565b6119d8565b610df27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a63565b15610e2a57610d5f610e257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a6c565b611a86565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906135bb565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610eb5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600154610eee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613397565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610f3d9173ffffffffffffffffffffffffffffffffffffffff90911690613354565b60405180910390a1565b60068181548110610f5757600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035473ffffffffffffffffffffffffffffffffffffffff16331461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b611022611254565b15611059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b600061106483611afb565b905061107183838361145c565b801561107d57506103de565b60006110918461108c85611b2a565b611b43565b905061109c81611b70565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff163314611115576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146111f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b6111fc611254565b15611233576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b61123d828261127a565b60006112498383611d68565b905061074e81611b70565b60015460009080158015904283111590829061126d5750805b935050505090565b600081565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe546906112c69084908690613389565b60405180910390a2816112e2576112dc83611d90565b506103de565b806112f0576112f083611e37565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561137f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b606060006113998360000151611e97565b905060008173ffffffffffffffffffffffffffffffffffffffff1684602001516040516113c691906132ac565b6000604051808303816000865af19150503d8060008114611403576040519150601f19603f3d011682016040523d82523d6000602084013e611408565b606091505b509350905080611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613516565b5050919050565b600061145630611e9a565b15905090565b8061146c5761146a83611586565b505b60008161147a57600061147c565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa916114ee9174010000000000000000000000000000000000000000900463ffffffff16908990613668565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff8116600090815260056020526040902054806115d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613584565b919050565b805160609060006002820167ffffffffffffffff811180156115f957600080fd5b50604051908082528060200260200182016040528015611623578160200160208202803683370190505b5090506116716000600160405160200161163d91906132c8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906117fa565b8160008151811061167e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091018201526040516116c49160009161163d91869101613324565b816001815181106116d157fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b8281101561179b57600085828151811061171b57fe5b60200260200101519050600061174e60008360000151846020015151856020015160405160200161163d9392919061327f565b90508084600285018151811061176057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101909101525050600101611705565b506117a581611ea0565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561137f57505063ffffffff919091166000908152600560205260409020541490565b81516000906020840161181564ffffffffff85168284611ef0565b95945050505050565b6000600161182b83611f51565b60ff16148015611382575060406118637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f81565b6bffffffffffffffffffffffff16101592915050565b60006118848261181e565b156118bf576118b860015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611f95565b90506115d3565b611382611fbb565b8060016118f8815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611fdf565b5060006119267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661215f565b905060005b81518110156119595761195082828151811061194357fe5b6020026020010151611388565b5060010161192b565b5050505050565b600060025b60ff1661197183611f51565b60ff16148015611382575060256119a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f81565b6bffffffffffffffffffffffff161492915050565b60006119c982611960565b156118bf576118b8600261188f565b8060026119e4816118cf565b506000611a127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612302565b90506000611a49611a447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612333565b611e97565b90506000611a5683611afb565b9050610e5c83838361145c565b60006003611965565b6000611a7782611a63565b156118bf576118b8600361188f565b806003611a92816118cf565b506000611ac07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612302565b90506000611aef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612333565b9050611959828261127a565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b73ffffffffffffffffffffffffffffffffffffffff1690565b606061137f611b6b611b6660006002878760405160200161163d939291906132dd565b612364565b612399565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bda57600080fd5b505afa158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190613110565b905060005b60065481101561074e57600063ffffffff1660068281548110611c3657fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611d60578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611c8857fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611cbf57fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611d2d9392899101613603565b600060405180830381600087803b158015611d4757600080fd5b505af1158015611d5b573d6000803e3d6000fd5b505050505b600101611c17565b606061137f611b6b611d8b60006003878760405160200161163d939291906132dd565b6123dd565b63ffffffff811660009081526005602052604081208190555b6006548110156103de578163ffffffff1660068281548110611dc757fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611e2c5760068181548110611dfe57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611e34565b600101611da9565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611eb584602084016123eb565b90506000611ec282611f81565b6bffffffffffffffffffffffff1690506000611edd83612463565b9184525082016020016040525092915050565b600080611efd8484612477565b9050604051811115611f0d575060005b80611f3b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611f4a565b611f468585856124e9565b9150505b9392505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016124fc565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b6000611feb838361251d565b612158576000612009611ffd8561253f565b64ffffffffff16612545565b915050600061201e8464ffffffffff16612545565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b8381101561211d578181015183820152602001612105565b50505050905090810190601f16801561214a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006121917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806124fc565b905060006122026002806121c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611f81565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816929190612619565b905060008260ff1667ffffffffffffffff8111801561222057600080fd5b5060405190808252806020026020018201604052801561225a57816020015b612247612f10565b81526020019060019003908161223f5790505b50905060005b600061228d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611f81565b6bffffffffffffffffffffffff1611156122f9576122aa836126a9565b8282815181106122b657fe5b6020908102919091010151526122cb836126d9565b8282815181106122d757fe5b6020026020010151602001819052506122ef83612718565b9250600101612260565b50949350505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046124fc565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600560206127a3565b6000611382612372836119be565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016612911565b60606000806123a784611f81565b6bffffffffffffffffffffffff16905060405191508192506123cc848360200161298b565b508181016020016040529052919050565b600061138261237283611a6c565b6000604051828111156123fe5760206060fd5b506000805b845181101561245657600085828151811061241a57fe5b602002602001015190506124308184870161298b565b5061243a81611f81565b6bffffffffffffffffffffffff16929092019150600101612403565b506117a5600084836124e9565b600061246e82612ab7565b60200292915050565b8181018281101561138257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166125138585856127a3565b901c949350505050565b60008164ffffffffff166125308461253f565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156125ad5760ff600882021684901c61256a81612aeb565b61ffff16841793508160ff1660101461258557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161254b565b50600f5b60ff8160ff1610156126135760ff600882021684901c6125d081612aeb565b61ffff16831792508160ff166000146125eb57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016125b1565b50915091565b60008061262586612b1b565b6bffffffffffffffffffffffff16905061263e86612b2f565b6126528561264c8489612477565b90612477565b1115612681577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506117a5565b61268b8186612477565b905061269f8364ffffffffff168286611ef0565b9695505050505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260206127a3565b6060611382611b6b60406126ec85612b59565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861691906004612619565b6000816001612726816118cf565b50600061273285612b59565b604001905061181581806127677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611f81565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916929190612619565b600060ff82166127b557506000611f4a565b6127be84611f81565b6bffffffffffffffffffffffff166127d98460ff8516612477565b111561287b5761281a6127eb85612b1b565b6bffffffffffffffffffffffff1661280286611f81565b6bffffffffffffffffffffffff16858560ff16612b89565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561211d578181015183820152602001612105565b60208260ff1611156128d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613800603a913960400191505060405180910390fd5b6008820260006128e786612b1b565b6bffffffffffffffffffffffff169050600061290283612ce4565b91909501511695945050505050565b600061291c82612d2d565b61298757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b600061299683612d6a565b6129eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061383a6028913960400191505060405180910390fd5b6129f483612d2d565b612a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613862602b913960400191505060405180910390fd5b6000612a5484611f81565b6bffffffffffffffffffffffff1690506000612a6f85612b1b565b6bffffffffffffffffffffffff1690506000604051905084811115612a945760206060fd5b8285848460045afa5061269f612aa98761253f565b64ffffffffff1686856124e9565b60006020612add6020612ac985611f81565b6bffffffffffffffffffffffff1690612477565b81612ae457fe5b0492915050565b6000612afd60048360ff16901c612d7c565b60ff161760081b62ffff0016612b1282612d7c565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612b3a82611f81565b612b4383612b1b565b016bffffffffffffffffffffffff169050919050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166020806127a3565b60606000612b9686612545565b9150506000612ba486612545565b9150506000612bb286612545565b9150506000612bc086612545565b91505083838383604051602001808061388d603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216137b182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612d388261253f565b64ffffffffff1664ffffffffff1415612d53575060006115d3565b6000612d5e83612b2f565b60405110199392505050565b6000612d7582612ee8565b1592915050565b600060f08083179060ff82161415612d985760309150506115d3565b8060ff1660f11415612dae5760319150506115d3565b8060ff1660f21415612dc45760329150506115d3565b8060ff1660f31415612dda5760339150506115d3565b8060ff1660f41415612df05760349150506115d3565b8060ff1660f51415612e065760359150506115d3565b8060ff1660f61415612e1c5760369150506115d3565b8060ff1660f71415612e325760379150506115d3565b8060ff1660f81415612e485760389150506115d3565b8060ff1660f91415612e5e5760399150506115d3565b8060ff1660fa1415612e745760619150506115d3565b8060ff1660fb1415612e8a5760629150506115d3565b8060ff1660fc1415612ea05760639150506115d3565b8060ff1660fd1415612eb65760649150506115d3565b8060ff1660fe1415612ecc5760659150506115d3565b8060ff1660ff1415612ee25760669150506115d3565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612f39578182fd5b50813567ffffffffffffffff811115612f50578182fd5b6020830191508360208083028501011115612f6a57600080fd5b9250929050565b600082601f830112612f81578081fd5b813567ffffffffffffffff811115612f9557fe5b612fc660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016136c0565b818152846020838601011115612fda578283fd5b816020850160208301379081016020019190915292915050565b600060408284031215613005578081fd5b6040516040810167ffffffffffffffff828210818311171561302357fe5b8160405282935084358352602085013591508082111561304257600080fd5b5061304f85828601612f71565b6020830152505092915050565b60006020828403121561306d578081fd5b813561137f8161377c565b6000806040838503121561308a578081fd5b82356130958161377c565b915060208301356130a58161377c565b809150509250929050565b600080602083850312156130c2578182fd5b823567ffffffffffffffff8111156130d8578283fd5b6130e485828601612f28565b90969095509350505050565b600060208284031215613101578081fd5b8151801515811461137f578182fd5b600060208284031215613121578081fd5b815161137f8161377c565b60006020828403121561313d578081fd5b5035919050565b600060208284031215613155578081fd5b813561137f8161379e565b600060208284031215613171578081fd5b815161137f8161379e565b6000806040838503121561318e578182fd5b82356130958161379e565b6000806000604084860312156131ad578081fd5b83356131b88161379e565b9250602084013567ffffffffffffffff8111156131d3578182fd5b6131df86828701612f28565b9497909650939450505050565b600080604083850312156131fe578182fd5b82356132098161379e565b946020939093013593505050565b60008060006060848603121561322b578283fd5b83356132368161379e565b925060208401359150604084013567ffffffffffffffff811115613258578182fd5b61326486828701612f71565b9150509250925092565b6005811061327857fe5b60f81b9052565b6000848252836020830152825161329d816040850160208701613750565b91909101604001949350505050565b600082516132be818460208701613750565b9190910192915050565b60006132d4828461326e565b50600101919050565b60006132e9828661326e565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff85168252836020830152606060408301528251806060840152613634816080850160208701613750565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126132be578182fd5b60405181810167ffffffffffffffff811182821017156136dc57fe5b604052919050565b600067ffffffffffffffff8311156136f857fe5b602061370781828602016136c0565b8481528181019084845b87811015613738576137263683358901612ff4565b84529284019290840190600101613711565b50909695505050505050565b60006113823683612ff4565b60005b8381101561376b578181015183820152602001613753565b8381111561109c5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611e3457600080fd5b63ffffffff81168114611e3457600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212202fec75ad6eadeed23a6cccde68084104deb0b5b147bf3510b1a03185f360916764736f6c63430007060033"; + "0x60c06040523480156200001157600080fd5b50604051620039b9380380620039b9833981016040819052620000349162000050565b60e09190911b6001600160e01b03191660805260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a0516138f7620000c2600039806104c45280610f8352508061083d52806108ae5280610fa75280611afd52506138f76000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806363706be3116100d8578063de314b191161008c578063e8c6f83a11610066578063e8c6f83a146102bf578063f05151df146102d2578063ffa1ad74146102e757610182565b8063de314b191461029c578063e5429298146102a4578063e6b3d949146102ac57610182565b8063670a43c4116100bd578063670a43c4146102795780638d3638f414610281578063db2021ae1461028957610182565b806363706be31461025e57806366cf8fab1461026657610182565b806341bdc8b51161013a5780634fedbbb5116101145780634fedbbb5146102235780635585416c1461023657806356d5d4751461024b57610182565b806341bdc8b5146101ea5780634626abee146101fd578063485cc9551461021057610182565b80632ead72f61161016b5780632ead72f6146101ba578063316c92b6146101da5780633339df96146101e257610182565b80630c340a24146101875780630ce21995146101a5575b600080fd5b61018f6102fc565b60405161019c9190613354565b60405180910390f35b6101b86101b33660046131ec565b610318565b005b6101cd6101c8366004613144565b6103e2565b60405161019c9190613380565b6101b86103f4565b61018f610542565b6101b86101f836600461305c565b61055e565b6101b861020b3660046130b0565b610658565b6101b861021e366004613078565b610753565b6101b8610231366004613199565b6109e5565b61023e610bad565b60405161019c91906135f2565b6101b8610259366004613217565b610bd1565b6101b8610e64565b61023e61027436600461312c565b610f47565b6101cd610f81565b61023e610fa5565b6101b861029736600461317c565b610fc9565b61018f6110a2565b6101cd6110be565b6101b86102ba36600461305c565b6110c4565b6101b86102cd3660046131ec565b6111a3565b6102da611254565b60405161019c9190613375565b6102ef611275565b60405161019c919061367f565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610320611254565b6103835760035473ffffffffffffffffffffffffffffffffffffffff16331461037e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b60405180910390fd5b6103d4565b60025473ffffffffffffffffffffffffffffffffffffffff1633146103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b6103de828261127a565b5050565b60056020526000908152604090205481565b6103fc611254565b15610433576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b60025473ffffffffffffffffffffffffffffffffffffffff163314610484576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600154156104be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134df565b6104e8427f000000000000000000000000000000000000000000000000000000000000000061130b565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae225916105389190613380565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610566611254565b6105c05760035473ffffffffffffffffffffffffffffffffffffffff1633146105bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b610611565b60025473ffffffffffffffffffffffffffffffffffffffff163314610611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610660611254565b6106ba5760035473ffffffffffffffffffffffffffffffffffffffff1633146106b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b61070b565b60025473ffffffffffffffffffffffffffffffffffffffff16331461070b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b60005b8181101561074e5761074583838381811061072557fe5b9050602002810190610737919061368d565b61074090613744565b611388565b5060010161070e565b505050565b600054610100900460ff168061076c575061076c61144b565b8061077a575060005460ff16155b6107cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806137d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561083557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b3360016108637f0000000000000000000000000000000000000000000000000000000000000000838361145c565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556108ac8561055e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561093b57600080fd5b505afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190613160565b63ffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061343c565b5050801561074e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b610a3e611254565b15610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b6000610a8084611586565b90506000610a96610a9184866136e4565b6115d8565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190613110565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610b7493929190613603565b600060405180830381600087803b158015610b8e57600080fd5b505af1158015610ba2573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c2691339101613354565b60206040518083038186803b158015610c3e57600080fd5b505afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906130f0565b610cac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613471565b8282610cb882826117ad565b610cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613405565b6000610cfa84826117fa565b9050610d277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821661181e565b15610d6457610d5f610d5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611879565b6118c7565b610e5c565b610d8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611960565b15610dc757610d5f610dc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166119be565b6119d8565b610df27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a63565b15610e2a57610d5f610e257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a6c565b611a86565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906135bb565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610eb5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b600154610eee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613397565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610f3d9173ffffffffffffffffffffffffffffffffffffffff90911690613354565b60405180910390a1565b60068181548110610f5757600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035473ffffffffffffffffffffffffffffffffffffffff16331461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b611022611254565b15611059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b600061106483611afb565b905061107183838361145c565b801561107d57506103de565b60006110918461108c85611b2a565b611b43565b905061109c81611b70565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff163314611115576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103759061354d565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146111f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906133ce565b6111fc611254565b15611233576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610375906134a8565b61123d828261127a565b60006112498383611d68565b905061074e81611b70565b60015460009080158015904283111590829061126d5750805b935050505090565b600081565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe546906112c69084908690613389565b60405180910390a2816112e2576112dc83611d90565b506103de565b806112f0576112f083611e37565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561137f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b606060006113998360000151611e97565b905060008173ffffffffffffffffffffffffffffffffffffffff1684602001516040516113c691906132ac565b6000604051808303816000865af19150503d8060008114611403576040519150601f19603f3d011682016040523d82523d6000602084013e611408565b606091505b509350905080611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613516565b5050919050565b600061145630611e9a565b15905090565b8061146c5761146a83611586565b505b60008161147a57600061147c565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa916114ee9174010000000000000000000000000000000000000000900463ffffffff16908990613668565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff8116600090815260056020526040902054806115d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590613584565b919050565b805160609060006002820167ffffffffffffffff811180156115f957600080fd5b50604051908082528060200260200182016040528015611623578160200160208202803683370190505b5090506116716000600160405160200161163d91906132c8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906117fa565b8160008151811061167e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091018201526040516116c49160009161163d91869101613324565b816001815181106116d157fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b8281101561179b57600085828151811061171b57fe5b60200260200101519050600061174e60008360000151846020015151856020015160405160200161163d9392919061327f565b90508084600285018151811061176057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101909101525050600101611705565b506117a581611ea0565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561137f57505063ffffffff919091166000908152600560205260409020541490565b81516000906020840161181564ffffffffff85168284611ef0565b95945050505050565b6000600161182b83611f51565b60ff16148015611382575060406118637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f81565b6bffffffffffffffffffffffff16101592915050565b60006118848261181e565b156118bf576118b860015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611f95565b90506115d3565b611382611fbb565b8060016118f8815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611fdf565b5060006119267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661215f565b905060005b81518110156119595761195082828151811061194357fe5b6020026020010151611388565b5060010161192b565b5050505050565b600060025b60ff1661197183611f51565b60ff16148015611382575060256119a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f81565b6bffffffffffffffffffffffff161492915050565b60006119c982611960565b156118bf576118b8600261188f565b8060026119e4816118cf565b506000611a127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612302565b90506000611a49611a447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612333565b611e97565b90506000611a5683611afb565b9050610e5c83838361145c565b60006003611965565b6000611a7782611a63565b156118bf576118b8600361188f565b806003611a92816118cf565b506000611ac07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612302565b90506000611aef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612333565b9050611959828261127a565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b73ffffffffffffffffffffffffffffffffffffffff1690565b606061137f611b6b611b6660006002878760405160200161163d939291906132dd565b612364565b612399565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bda57600080fd5b505afa158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190613110565b905060005b60065481101561074e57600063ffffffff1660068281548110611c3657fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611d60578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611c8857fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611cbf57fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611d2d9392899101613603565b600060405180830381600087803b158015611d4757600080fd5b505af1158015611d5b573d6000803e3d6000fd5b505050505b600101611c17565b606061137f611b6b611d8b60006003878760405160200161163d939291906132dd565b6123dd565b63ffffffff811660009081526005602052604081208190555b6006548110156103de578163ffffffff1660068281548110611dc757fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611e2c5760068181548110611dfe57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611e34565b600101611da9565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611eb584602084016123eb565b90506000611ec282611f81565b6bffffffffffffffffffffffff1690506000611edd83612463565b9184525082016020016040525092915050565b600080611efd8484612477565b9050604051811115611f0d575060005b80611f3b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611f4a565b611f468585856124e9565b9150505b9392505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016124fc565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b6000611feb838361251d565b612158576000612009611ffd8561253f565b64ffffffffff16612545565b915050600061201e8464ffffffffff16612545565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b8381101561211d578181015183820152602001612105565b50505050905090810190601f16801561214a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006121917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806124fc565b905060006122026002806121c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611f81565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816929190612619565b905060008260ff1667ffffffffffffffff8111801561222057600080fd5b5060405190808252806020026020018201604052801561225a57816020015b612247612f10565b81526020019060019003908161223f5790505b50905060005b600061228d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611f81565b6bffffffffffffffffffffffff1611156122f9576122aa836126a9565b8282815181106122b657fe5b6020908102919091010151526122cb836126d9565b8282815181106122d757fe5b6020026020010151602001819052506122ef83612718565b9250600101612260565b50949350505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046124fc565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600560206127a3565b6000611382612372836119be565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016612911565b60606000806123a784611f81565b6bffffffffffffffffffffffff16905060405191508192506123cc848360200161298b565b508181016020016040529052919050565b600061138261237283611a6c565b6000604051828111156123fe5760206060fd5b506000805b845181101561245657600085828151811061241a57fe5b602002602001015190506124308184870161298b565b5061243a81611f81565b6bffffffffffffffffffffffff16929092019150600101612403565b506117a5600084836124e9565b600061246e82612ab7565b60200292915050565b8181018281101561138257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166125138585856127a3565b901c949350505050565b60008164ffffffffff166125308461253f565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156125ad5760ff600882021684901c61256a81612aeb565b61ffff16841793508160ff1660101461258557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161254b565b50600f5b60ff8160ff1610156126135760ff600882021684901c6125d081612aeb565b61ffff16831792508160ff166000146125eb57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016125b1565b50915091565b60008061262586612b1b565b6bffffffffffffffffffffffff16905061263e86612b2f565b6126528561264c8489612477565b90612477565b1115612681577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506117a5565b61268b8186612477565b905061269f8364ffffffffff168286611ef0565b9695505050505050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260206127a3565b6060611382611b6b60406126ec85612b59565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861691906004612619565b6000816001612726816118cf565b50600061273285612b59565b604001905061181581806127677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611f81565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916929190612619565b600060ff82166127b557506000611f4a565b6127be84611f81565b6bffffffffffffffffffffffff166127d98460ff8516612477565b111561287b5761281a6127eb85612b1b565b6bffffffffffffffffffffffff1661280286611f81565b6bffffffffffffffffffffffff16858560ff16612b89565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561211d578181015183820152602001612105565b60208260ff1611156128d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613800603a913960400191505060405180910390fd5b6008820260006128e786612b1b565b6bffffffffffffffffffffffff169050600061290283612ce4565b91909501511695945050505050565b600061291c82612d2d565b61298757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b600061299683612d6a565b6129eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061383a6028913960400191505060405180910390fd5b6129f483612d2d565b612a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613862602b913960400191505060405180910390fd5b6000612a5484611f81565b6bffffffffffffffffffffffff1690506000612a6f85612b1b565b6bffffffffffffffffffffffff1690506000604051905084811115612a945760206060fd5b8285848460045afa5061269f612aa98761253f565b64ffffffffff1686856124e9565b60006020612add6020612ac985611f81565b6bffffffffffffffffffffffff1690612477565b81612ae457fe5b0492915050565b6000612afd60048360ff16901c612d7c565b60ff161760081b62ffff0016612b1282612d7c565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612b3a82611f81565b612b4383612b1b565b016bffffffffffffffffffffffff169050919050565b60006113827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166020806127a3565b60606000612b9686612545565b9150506000612ba486612545565b9150506000612bb286612545565b9150506000612bc086612545565b91505083838383604051602001808061388d603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216137b182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612d388261253f565b64ffffffffff1664ffffffffff1415612d53575060006115d3565b6000612d5e83612b2f565b60405110199392505050565b6000612d7582612ee8565b1592915050565b600060f08083179060ff82161415612d985760309150506115d3565b8060ff1660f11415612dae5760319150506115d3565b8060ff1660f21415612dc45760329150506115d3565b8060ff1660f31415612dda5760339150506115d3565b8060ff1660f41415612df05760349150506115d3565b8060ff1660f51415612e065760359150506115d3565b8060ff1660f61415612e1c5760369150506115d3565b8060ff1660f71415612e325760379150506115d3565b8060ff1660f81415612e485760389150506115d3565b8060ff1660f91415612e5e5760399150506115d3565b8060ff1660fa1415612e745760619150506115d3565b8060ff1660fb1415612e8a5760629150506115d3565b8060ff1660fc1415612ea05760639150506115d3565b8060ff1660fd1415612eb65760649150506115d3565b8060ff1660fe1415612ecc5760659150506115d3565b8060ff1660ff1415612ee25760669150506115d3565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612f39578182fd5b50813567ffffffffffffffff811115612f50578182fd5b6020830191508360208083028501011115612f6a57600080fd5b9250929050565b600082601f830112612f81578081fd5b813567ffffffffffffffff811115612f9557fe5b612fc660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016136c0565b818152846020838601011115612fda578283fd5b816020850160208301379081016020019190915292915050565b600060408284031215613005578081fd5b6040516040810167ffffffffffffffff828210818311171561302357fe5b8160405282935084358352602085013591508082111561304257600080fd5b5061304f85828601612f71565b6020830152505092915050565b60006020828403121561306d578081fd5b813561137f8161377c565b6000806040838503121561308a578081fd5b82356130958161377c565b915060208301356130a58161377c565b809150509250929050565b600080602083850312156130c2578182fd5b823567ffffffffffffffff8111156130d8578283fd5b6130e485828601612f28565b90969095509350505050565b600060208284031215613101578081fd5b8151801515811461137f578182fd5b600060208284031215613121578081fd5b815161137f8161377c565b60006020828403121561313d578081fd5b5035919050565b600060208284031215613155578081fd5b813561137f8161379e565b600060208284031215613171578081fd5b815161137f8161379e565b6000806040838503121561318e578182fd5b82356130958161379e565b6000806000604084860312156131ad578081fd5b83356131b88161379e565b9250602084013567ffffffffffffffff8111156131d3578182fd5b6131df86828701612f28565b9497909650939450505050565b600080604083850312156131fe578182fd5b82356132098161379e565b946020939093013593505050565b60008060006060848603121561322b578283fd5b83356132368161379e565b925060208401359150604084013567ffffffffffffffff811115613258578182fd5b61326486828701612f71565b9150509250925092565b6005811061327857fe5b60f81b9052565b6000848252836020830152825161329d816040850160208701613750565b91909101604001949350505050565b600082516132be818460208701613750565b9190910192915050565b60006132d4828461326e565b50600101919050565b60006132e9828661326e565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff85168252836020830152606060408301528251806060840152613634816080850160208701613750565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126132be578182fd5b60405181810167ffffffffffffffff811182821017156136dc57fe5b604052919050565b600067ffffffffffffffff8311156136f857fe5b602061370781828602016136c0565b8481528181019084845b87811015613738576137263683358901612ff4565b84529284019290840190600101613711565b50909695505050505050565b60006113823683612ff4565b60005b8381101561376b578181015183820152602001613753565b8381111561109c5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611e3457600080fd5b63ffffffff81168114611e3457600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122076c8e4c7234f740bbcaf41a41badf76b1713a66e9abf0138e37112c8e7fe733a64736f6c63430007060033"; export class GovernanceRouter__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/Home__factory.ts b/typescript/typechain/abacus-core/factories/Home__factory.ts index 6cc6e7411..28a756068 100644 --- a/typescript/typechain/abacus-core/factories/Home__factory.ts +++ b/typescript/typechain/abacus-core/factories/Home__factory.ts @@ -616,7 +616,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b50604051612cd5380380612cd58339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612c6761006e600039806109875280610ad55280610fad5250612c676000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639df6c8e1116100ee578063df034cd011610097578063f6d1610211610071578063f6d16102146105fc578063fa31de0114610604578063fd54b228146106bc578063ffa1ad74146106c4576101ae565b8063df034cd0146105b9578063ebf0c717146105c1578063f2fde38b146105c9576101ae565b8063b95a2001116100c8578063b95a20011461053a578063c19d93fb1461055d578063c4d66de814610586576101ae565b80639df6c8e114610478578063ab91c7b014610480578063b31c01fb14610488576101ae565b806367a6771d1161015b5780638da5cb5b116101355780638da5cb5b1461032f5780638e4e30e0146103605780639776120e146104125780639d54f41914610445576101ae565b806367a6771d146102fe578063715018a6146103065780638d3638f41461030e576101ae565b806336e104de1161018c57806336e104de146102cd57806345630b1a146102ee578063522ae002146102f6576101ae565b806306661abd146101b357806319d9d21a146101cd5780632bef28921461029c575b600080fd5b6101bb6106e2565b60408051918252519081900360200190f35b61029a600480360360a08110156101e357600080fd5b813591602081019181019060808101606082013564010000000081111561020957600080fd5b82018360208201111561021b57600080fd5b8035906020019184600183028401116401000000008311171561023d57600080fd5b91939092909160208101903564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b5090925090506106e8565b005b6102b9600480360360208110156102b257600080fd5b5035610945565b604080519115158252519081900360200190f35b6102d5610958565b6040805192835260208301919091528051918290030190f35b6101bb610980565b6101bb6109b0565b6101bb6109b6565b61029a6109bc565b610316610ad3565b6040805163ffffffff9092168252519081900360200190f35b610337610af7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102b96004803603606081101561037657600080fd5b81359160208101359181019060608101604082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460018302840111640100000000831117156103d157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b13945050505050565b61029a6004803603602081101561042857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d66565b61029a6004803603602081101561045b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e1a565b610337610eaa565b6101bb610ec7565b61029a6004803603606081101561049e57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ed3945050505050565b6103166004803603602081101561055057600080fd5b503563ffffffff16611071565b61056561108a565b6040518082600281111561057557fe5b815260200191505060405180910390f35b61029a6004803603602081101561059c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110ab565b6103376112c6565b6101bb6112e2565b61029a600480360360208110156105df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112ee565b6101bb611490565b61029a6004803603606081101561061a57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561064757600080fd5b82018360208201111561065957600080fd5b8035906020019184600183028401116401000000008311171561067b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149c945050505050565b6101bb61158f565b6106cc611595565b6040805160ff9092168252519081900360200190f35b60545490565b600260865474010000000000000000000000000000000000000000900460ff16600281111561071357fe5b141561078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107c2918891883591889088908190840183828082843760009201919091525061159a92505050565b8015610811575061081186866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061159a92505050565b801561082257508435602086013514155b1561093d5761082f61162c565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b6000610952600183611708565b92915050565b6000806109656001611778565b1561097c57608754915061097960016117b8565b90505b9091565b60006109ab7f00000000000000000000000000000000000000000000000000000000000000006117f5565b905090565b61080081565b60875481565b6109c461186a565b73ffffffffffffffffffffffffffffffffffffffff166109e2610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610a6457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b4057fe5b1415610bad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610bb884848461159a565b610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c9357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c9e600184611708565b610d5b57610caa61162c565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d17578181015183820152602001610cff565b50505050905090810190601f168015610d445780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d5f565b5060005b9392505050565b610d6e61186a565b73ffffffffffffffffffffffffffffffffffffffff16610d8c610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e178161186e565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610ea157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e178161195c565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab6001611778565b600260865474010000000000000000000000000000000000000000900460ff166002811115610efe57fe5b1415610f6b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f76838383610b13565b15610f805761106c565b6000610f8c60016119d5565b905082811415610f9c5750610fa2565b50610f80565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611031578181015183820152602001611019565b50505050905090810190601f16801561105e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806110c457506110c4611b0e565b806110d2575060005460ff16155b611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff1615801561118d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611195611b1f565b61119d611c42565b6111a68261186e565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b5051905061124981611d2e565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a15080156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab6034611ebb565b6112f661186a565b73ffffffffffffffffffffffffffffffffffffffff16611314610af7565b73ffffffffffffffffffffffffffffffffffffffff161461139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611402576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b9a6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109ab60016117b8565b600260865474010000000000000000000000000000000000000000900460ff1660028111156114c757fe5b14156101ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b8381101561154c578181015183820152602001611534565b50505050905090810190601f1680156115795780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b6000806115a5610980565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506115e681611fd2565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661160c8285612023565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b6116346120bd565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d5b576000818152600185016020526040902054831415611770576001915050610952565b600101611720565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166117b082826120fe565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b61187781612118565b6118e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611a0d82826120fe565b611a7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611ac9576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611b1930612118565b15905090565b600054610100900460ff1680611b385750611b38611b0e565b80611b46575060005460ff16155b611b9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611c0157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611c0961211e565b611c11612230565b8015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611c5b5750611c5b611b0e565b80611c69575060005460ff16155b611cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611d2457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611c1160016123c0565b600054610100900460ff1680611d475750611d47611b0e565b80611d55575060005460ff16155b611daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611e1057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b600061095282611ec9612404565b6128c5565b60208310611f0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611ece565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b6020811015611fcf578160011660011415611f7c5782848260208110611f7257fe5b0155506112c29050565b838160208110611f8857fe5b015483604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120925060028281611fc457fe5b049150600101611f50565b50fe5b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461209557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6120b386828585612983565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff16806121375750612137611b0e565b80612145575060005460ff16155b61219a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611c1157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806122495750612249611b0e565b80612257575060005460ff16155b6122ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff1615801561231257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600061231c61186a565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610e175780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b61240c612b7a565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b602081101561297b57600182821c1660008683602081106128ec57fe5b01549050816001141561292f5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612971565b8486846020811061293c57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b50506001016128cf565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156129fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612bc06022913960400191505060405180910390fd5b8360ff16601b1480612a1357508360ff16601c145b612a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612c106022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612ac4573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612b7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220e63beb80f645affe210aae0ffdd833f5c3b3a5386c6135b67b0b00151d4281d564736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b50604051612fbe380380612fbe8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f4b610073600039806109875280610ad55280610fad52806115f55250612f4b6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639df6c8e1116100ee578063df034cd011610097578063f6d1610211610071578063f6d16102146105fc578063fa31de0114610604578063fd54b228146106bc578063ffa1ad74146106c4576101ae565b8063df034cd0146105b9578063ebf0c717146105c1578063f2fde38b146105c9576101ae565b8063b95a2001116100c8578063b95a20011461053a578063c19d93fb1461055d578063c4d66de814610586576101ae565b80639df6c8e114610478578063ab91c7b014610480578063b31c01fb14610488576101ae565b806367a6771d1161015b5780638da5cb5b116101355780638da5cb5b1461032f5780638e4e30e0146103605780639776120e146104125780639d54f41914610445576101ae565b806367a6771d146102fe578063715018a6146103065780638d3638f41461030e576101ae565b806336e104de1161018c57806336e104de146102cd57806345630b1a146102ee578063522ae002146102f6576101ae565b806306661abd146101b357806319d9d21a146101cd5780632bef28921461029c575b600080fd5b6101bb6106e2565b60408051918252519081900360200190f35b61029a600480360360a08110156101e357600080fd5b813591602081019181019060808101606082013564010000000081111561020957600080fd5b82018360208201111561021b57600080fd5b8035906020019184600183028401116401000000008311171561023d57600080fd5b91939092909160208101903564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b5090925090506106e8565b005b6102b9600480360360208110156102b257600080fd5b5035610945565b604080519115158252519081900360200190f35b6102d5610958565b6040805192835260208301919091528051918290030190f35b6101bb610980565b6101bb6109b0565b6101bb6109b6565b61029a6109bc565b610316610ad3565b6040805163ffffffff9092168252519081900360200190f35b610337610af7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102b96004803603606081101561037657600080fd5b81359160208101359181019060608101604082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460018302840111640100000000831117156103d157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b13945050505050565b61029a6004803603602081101561042857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d66565b61029a6004803603602081101561045b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e1a565b610337610eaa565b6101bb610ec7565b61029a6004803603606081101561049e57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ed3945050505050565b6103166004803603602081101561055057600080fd5b503563ffffffff16611071565b61056561108a565b6040518082600281111561057557fe5b815260200191505060405180910390f35b61029a6004803603602081101561059c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110ab565b6103376112c6565b6101bb6112e2565b61029a600480360360208110156105df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112ee565b6101bb611490565b61029a6004803603606081101561061a57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561064757600080fd5b82018360208201111561065957600080fd5b8035906020019184600183028401116401000000008311171561067b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149c945050505050565b6101bb611712565b6106cc611718565b6040805160ff9092168252519081900360200190f35b60545490565b600260865474010000000000000000000000000000000000000000900460ff16600281111561071357fe5b141561078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107c2918891883591889088908190840183828082843760009201919091525061171d92505050565b8015610811575061081186866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061171d92505050565b801561082257508435602086013514155b1561093d5761082f6117af565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b600061095260018361188b565b92915050565b60008061096560016118fb565b1561097c576087549150610979600161193b565b90505b9091565b60006109ab7f0000000000000000000000000000000000000000000000000000000000000000611978565b905090565b61080081565b60875481565b6109c46119ed565b73ffffffffffffffffffffffffffffffffffffffff166109e2610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610a6457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b4057fe5b1415610bad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610bb884848461171d565b610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c9357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c9e60018461188b565b610d5b57610caa6117af565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d17578181015183820152602001610cff565b50505050905090810190601f168015610d445780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d5f565b5060005b9392505050565b610d6e6119ed565b73ffffffffffffffffffffffffffffffffffffffff16610d8c610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e17816119f1565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610ea157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e1781611adf565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab60016118fb565b600260865474010000000000000000000000000000000000000000900460ff166002811115610efe57fe5b1415610f6b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f76838383610b13565b15610f805761106c565b6000610f8c6001611b58565b905082811415610f9c5750610fa2565b50610f80565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611031578181015183820152602001611019565b50505050905090810190601f16801561105e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806110c457506110c4611c91565b806110d2575060005460ff16155b611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff1615801561118d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611195611ca2565b61119d611dc5565b6111a6826119f1565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b5051905061124981611eb1565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a15080156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab603461203e565b6112f66119ed565b73ffffffffffffffffffffffffffffffffffffffff16611314610af7565b73ffffffffffffffffffffffffffffffffffffffff161461139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611402576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e7e6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109ab600161193b565b600260865474010000000000000000000000000000000000000000900460ff1660028111156114c757fe5b141561153457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610800815111156115a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905561161e7f00000000000000000000000000000000000000000000000000000000000000003384888888612051565b80516020820120909150611633603482612127565b61164661163e6112e2565b60019061222f565b50611651868461229c565b67ffffffffffffffff1660016116656106e2565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156116cf5781810151838201526020016116b7565b50505050905090810190601f1680156116fc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b600080611728610980565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611769816122b6565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661178f8285612307565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b6117b76123a1565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b15801561182a57600080fd5b505af115801561183e573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d5b5760008181526001850160205260409020548314156118f3576001915050610952565b6001016118a3565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661193382826123e2565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119fa816123fc565b611a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b9082826123e2565b611bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c4c576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c9c306123fc565b15905090565b600054610100900460ff1680611cbb5750611cbb611c91565b80611cc9575060005460ff16155b611d1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d8457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d8c612402565b611d94612514565b8015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611dde5750611dde611c91565b80611dec575060005460ff16155b611e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611ea757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d9460016126a4565b600054610100900460ff1680611eca5750611eca611c91565b80611ed8575060005460ff16155b611f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611f9357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b60006109528261204c6126e8565b612ba9565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106120e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a5565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161219d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b602081101561222c5781600116600114156121d957828482602081106121cf57fe5b0155506112c29050565b8381602081106121e557fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161222157fe5b0491506001016121ad565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610952576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461237957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61239786828585612c67565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168061241b575061241b611c91565b80612429575060005460ff16155b61247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d9457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff168061252d575061252d611c91565b8061253b575060005460ff16155b612590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff161580156125f657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006126006119ed565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610e175780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b6126f0612e5e565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612c5f57600182821c166000868360208110612bd057fe5b015490508160011415612c135780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612c55565b84868460208110612c2057fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612bb3565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ea46022913960400191505060405180910390fd5b8360ff16601b1480612cf757508360ff16601c145b612d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ef46022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612da8573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612e5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220260a0dc70dec366abfa16a5da9aab733bdb1146c27c1b1ae80222b5b5e89238a64736f6c63430007060033"; export class Home__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/MerkleLib__factory.ts b/typescript/typechain/abacus-core/factories/MerkleLib__factory.ts new file mode 100644 index 000000000..5053d980a --- /dev/null +++ b/typescript/typechain/abacus-core/factories/MerkleLib__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { MerkleLib, MerkleLibInterface } from "../MerkleLib"; + +const _abi = [ + { + inputs: [], + name: "zeroHashes", + outputs: [ + { + internalType: "bytes32[32]", + name: "_zeroes", + type: "bytes32[32]", + }, + ], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x610591610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063b35658081461003a575b600080fd5b61004261007b565b604051808261040080838360005b83811015610068578181015183820152602001610050565b5050505090500191505060405180910390f35b61008361053c565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220ad3bfe4cefe5c51f17b8c40895bafc1076c16176a71ee813684032f85042016e64736f6c63430007060033"; + +export class MerkleLib__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): MerkleLib { + return super.attach(address) as MerkleLib; + } + connect(signer: Signer): MerkleLib__factory { + return super.connect(signer) as MerkleLib__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MerkleLibInterface { + return new utils.Interface(_abi) as MerkleLibInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MerkleLib { + return new Contract(address, _abi, signerOrProvider) as MerkleLib; + } +} diff --git a/typescript/typechain/abacus-core/factories/Replica__factory.ts b/typescript/typechain/abacus-core/factories/Replica__factory.ts index 55060ec4c..756f8d6c9 100644 --- a/typescript/typechain/abacus-core/factories/Replica__factory.ts +++ b/typescript/typechain/abacus-core/factories/Replica__factory.ts @@ -533,7 +533,7 @@ const _abi = [ ]; const _bytecode = - "0x60e060405234801561001057600080fd5b5060405162002dd938038062002dd98339818101604052606081101561003557600080fd5b50805160208201516040909201516001600160e01b031960e083901b16608052909190620cf85082101561009f576040805162461bcd60e51b815260206004820152600c60248201526b2170726f636573732067617360a01b604482015290519081900360640190fd5b613a988110156100e5576040805162461bcd60e51b815260206004820152600c60248201526b21726573657276652067617360a01b604482015290519081900360640190fd5b60a082905260c081905260805160e01c9250612caa6200012f600039806108e65280610da8525080610d875280610e7f5280611509525080610b035280610b575250612caa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063928bc4b2116100d8578063c19d93fb1161008c578063e7e7a7b711610066578063e7e7a7b7146105e9578063f2fde38b14610634578063ffa1ad741461066757610182565b8063c19d93fb146105d1578063d88beda2146105d9578063df034cd0146105e157610182565b80639d54f419116100bd5780639d54f419146104cf578063a3f81d6814610502578063b31c01fb1461051f57610182565b8063928bc4b214610421578063961681dc146104c757610182565b806345630b1a1161013a57806371bfb7b81161011457806371bfb7b8146103b25780638d3638f4146103cf5780638da5cb5b146103f057610182565b806345630b1a146102f45780636188af0e146102fc57806367a6771d146103aa57610182565b80632bbd59ca1161016b5780632bbd59ca14610270578063371d3071146102ae57806339992668146102ec57610182565b806319d9d21a1461018757806325e3beda14610256575b600080fd5b610254600480360360a081101561019d57600080fd5b81359160208101918101906080810160608201356401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91939092909160208101903564010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b509092509050610685565b005b61025e6108e4565b60408051918252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610908565b6040518082600281111561029d57fe5b815260200191505060405180910390f35b6102d860048036036104408110156102c557600080fd5b508035906020810190610420013561091d565b604080519115158252519081900360200190f35b61025e610a3d565b61025e610a43565b610254600480360361044081101561031357600080fd5b81019060208101813564010000000081111561032e57600080fd5b82018360208201111561034057600080fd5b8035906020019184600183028401116401000000008311171561036257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a5d565b61025e610ae9565b61025e600480360360208110156103c857600080fd5b5035610aef565b6103d7610b01565b6040805163ffffffff9092168252519081900360200190f35b6103f8610b25565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102d86004803603602081101561043757600080fd5b81019060208101813564010000000081111561045257600080fd5b82018360208201111561046457600080fd5b8035906020019184600183028401116401000000008311171561048657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b41945050505050565b6103d7611184565b610254600480360360208110156104e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611190565b6102d86004803603602081101561051857600080fd5b503561126b565b6102546004803603606081101561053557600080fd5b81359160208101359181019060608101604082013564010000000081111561055c57600080fd5b82018360208201111561056e57600080fd5b8035906020019184600183028401116401000000008311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b61028d6114e4565b61025e611507565b6103f861152b565b610254600480360360808110156105ff57600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561154d565b6102546004803603602081101561064a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ed565b61066f6118cc565b6040805160ff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156106b257fe5b141561071f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261076191889188359188908890819084018382808284376000920191909152506118d192505050565b80156107b057506107b086866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d192505050565b80156107c157508435602086013514155b156108dc576107ce611969565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff16600281111561093d57fe5b146109a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109df8585602080602002604051908101604052809291908260208002808284376000920191909152508791506119739050565b90506109ea8161126b565b15610a30575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a36565b60009150505b9392505050565b60325481565b603154600090610a589063ffffffff16611a1e565b905090565b610a6f8380519060200120838361091d565b610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae383610b41565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610b4e8382611a93565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610ba27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611ab9565b63ffffffff1614610c1457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610c417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611aea565b9050600160008281526035602052604090205460ff166002811115610c6257fe5b14610cce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610d4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a1015610e3857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b29565b6040805161010080825261012082019092529192506000917f0000000000000000000000000000000000000000000000000000000000000000908390836020820181803683370190505090506000610ede7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611b3c565b610f097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611b6c565b610f5e610f377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611b9d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611c0e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610fb0578181015183820152602001610f98565b50505050905090810190601f168015610fdd5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d94508385111561107c578394505b848252846000602084013e816040518082805190602001908083835b602083106110d557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611098565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061119a610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111f0575060006111d8610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061125e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61126782611c52565b5050565b6000818152603460205260408120548061128957600091505061128f565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156112c157fe5b141561132e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461139e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6113a98383836118d1565b61141457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61141c611971565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806115665750611566611cd3565b80611574575060005460ff16155b6115c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff1615801561162f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61163884611ce4565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905583815560008481526034602052604090205560328290556116b7336116ed565b80156116e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006116f7610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061174d57506000611735610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b9050806117bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661183d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b6000806118dc610a43565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061191d81611e78565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff166119498285611ec9565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611971611f63565b565b8260005b6020811015611a1657600183821c16600085836020811061199457fe5b6020020151905081600114156119da5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611a0c565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611977565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611aae64ffffffffff85168284611fa6565b925050505b92915050565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612005565b600080611af683612026565b6bffffffffffffffffffffffff1690506000611b118461203a565b6bffffffffffffffffffffffff169091209392505050565b6000611ab3611b378361204e565b61207f565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612005565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612082565b6000611ab3604c80611bd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661203a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061222d565b6060600080611c1c8461203a565b6bffffffffffffffffffffffff1690506040519150819250611c4184836020016122bf565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b6000611cde306123eb565b15905090565b600054610100900460ff1680611cfd5750611cfd611cd3565b80611d0b575060005460ff16155b611d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff16158015611dc657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561126757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611f3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a611f59868285856123f1565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611fb384846125df565b9050604051811115611fc3575060005b80611ff1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a36565b611ffc858585612651565b95945050505050565b60008160200360080260ff1661201c858585612082565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020612082565b90565b600060ff821661209457506000610a36565b61209d8461203a565b6bffffffffffffffffffffffff166120b88460ff85166125df565b1115612197576120f96120ca85612026565b6bffffffffffffffffffffffff166120e18661203a565b6bffffffffffffffffffffffff16858560ff16612664565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215c578181015183820152602001612144565b50505050905090810190601f1680156121895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612bb3603a913960400191505060405180910390fd5b60088202600061220386612026565b6bffffffffffffffffffffffff169050600061221e836127bf565b91909501511695945050505050565b60008061223986612026565b6bffffffffffffffffffffffff16905061225286612808565b6122668561226084896125df565b906125df565b1115612295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506122b7565b61229f81866125df565b90506122b38364ffffffffff168286611fa6565b9150505b949350505050565b60006122ca83612832565b61231f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bed6028913960400191505060405180910390fd5b61232883612844565b61237d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c15602b913960400191505060405180910390fd5b60006123888461203a565b6bffffffffffffffffffffffff16905060006123a385612026565b6bffffffffffffffffffffffff16905060006040519050848111156123c85760206060fd5b8285848460045afa50611f596123dd87612881565b64ffffffffff168685612651565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b206022913960400191505060405180910390fd5b8360ff16601b148061248157508360ff16601c145b6124d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b916022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612532573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ffc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b6060600061267186612887565b915050600061267f86612887565b915050600061268d86612887565b915050600061269b86612887565b915050838383836040516020018080612c40603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612b4282397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b60006128138261203a565b61281c83612026565b016bffffffffffffffffffffffff169050919050565b600061283d8261295b565b1592915050565b600061284f82612881565b64ffffffffff1664ffffffffff141561286a5750600061128f565b600061287583612808565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff1611156128ef5760ff600882021684901c6128ac81612983565b61ffff16841793508160ff166010146128c757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161288d565b50600f5b60ff8160ff1610156129555760ff600882021684901c61291281612983565b61ffff16831792508160ff1660001461292d57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016128f3565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061299560048360ff16901c6129b3565b60ff161760081b62ffff00166129aa826129b3565b60ff1617919050565b600060f08083179060ff821614156129cf57603091505061128f565b8060ff1660f114156129e557603191505061128f565b8060ff1660f214156129fb57603291505061128f565b8060ff1660f31415612a1157603391505061128f565b8060ff1660f41415612a2757603491505061128f565b8060ff1660f51415612a3d57603591505061128f565b8060ff1660f61415612a5357603691505061128f565b8060ff1660f71415612a6957603791505061128f565b8060ff1660f81415612a7f57603891505061128f565b8060ff1660f91415612a9557603991505061128f565b8060ff1660fa1415612aab57606191505061128f565b8060ff1660fb1415612ac157606291505061128f565b8060ff1660fc1415612ad757606391505061128f565b8060ff1660fd1415612aed57606491505061128f565b8060ff1660fe1415612b0357606591505061128f565b8060ff1660ff1415612b1957606691505061128f565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212207663231537b3eb7c6df0847380b1241d47227b5b00d12ab78f6d36dbd9994c0464736f6c63430007060033"; + "0x60e060405234801561001057600080fd5b5060405162002dd938038062002dd98339818101604052606081101561003557600080fd5b50805160208201516040909201516001600160e01b031960e083901b16608052909190620cf85082101561009f576040805162461bcd60e51b815260206004820152600c60248201526b2170726f636573732067617360a01b604482015290519081900360640190fd5b613a988110156100e5576040805162461bcd60e51b815260206004820152600c60248201526b21726573657276652067617360a01b604482015290519081900360640190fd5b60a082905260c081905260805160e01c9250612caa6200012f600039806108e65280610da8525080610d875280610e7f5280611509525080610b035280610b575250612caa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063928bc4b2116100d8578063c19d93fb1161008c578063e7e7a7b711610066578063e7e7a7b7146105e9578063f2fde38b14610634578063ffa1ad741461066757610182565b8063c19d93fb146105d1578063d88beda2146105d9578063df034cd0146105e157610182565b80639d54f419116100bd5780639d54f419146104cf578063a3f81d6814610502578063b31c01fb1461051f57610182565b8063928bc4b214610421578063961681dc146104c757610182565b806345630b1a1161013a57806371bfb7b81161011457806371bfb7b8146103b25780638d3638f4146103cf5780638da5cb5b146103f057610182565b806345630b1a146102f45780636188af0e146102fc57806367a6771d146103aa57610182565b80632bbd59ca1161016b5780632bbd59ca14610270578063371d3071146102ae57806339992668146102ec57610182565b806319d9d21a1461018757806325e3beda14610256575b600080fd5b610254600480360360a081101561019d57600080fd5b81359160208101918101906080810160608201356401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91939092909160208101903564010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b509092509050610685565b005b61025e6108e4565b60408051918252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610908565b6040518082600281111561029d57fe5b815260200191505060405180910390f35b6102d860048036036104408110156102c557600080fd5b508035906020810190610420013561091d565b604080519115158252519081900360200190f35b61025e610a3d565b61025e610a43565b610254600480360361044081101561031357600080fd5b81019060208101813564010000000081111561032e57600080fd5b82018360208201111561034057600080fd5b8035906020019184600183028401116401000000008311171561036257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a5d565b61025e610ae9565b61025e600480360360208110156103c857600080fd5b5035610aef565b6103d7610b01565b6040805163ffffffff9092168252519081900360200190f35b6103f8610b25565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102d86004803603602081101561043757600080fd5b81019060208101813564010000000081111561045257600080fd5b82018360208201111561046457600080fd5b8035906020019184600183028401116401000000008311171561048657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b41945050505050565b6103d7611184565b610254600480360360208110156104e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611190565b6102d86004803603602081101561051857600080fd5b503561126b565b6102546004803603606081101561053557600080fd5b81359160208101359181019060608101604082013564010000000081111561055c57600080fd5b82018360208201111561056e57600080fd5b8035906020019184600183028401116401000000008311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b61028d6114e4565b61025e611507565b6103f861152b565b610254600480360360808110156105ff57600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561154d565b6102546004803603602081101561064a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ed565b61066f6118cc565b6040805160ff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156106b257fe5b141561071f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261076191889188359188908890819084018382808284376000920191909152506118d192505050565b80156107b057506107b086866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d192505050565b80156107c157508435602086013514155b156108dc576107ce611969565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff16600281111561093d57fe5b146109a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109df8585602080602002604051908101604052809291908260208002808284376000920191909152508791506119739050565b90506109ea8161126b565b15610a30575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a36565b60009150505b9392505050565b60325481565b603154600090610a589063ffffffff16611a1e565b905090565b610a6f8380519060200120838361091d565b610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae383610b41565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610b4e8382611a93565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610ba27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611ab9565b63ffffffff1614610c1457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610c417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611aea565b9050600160008281526035602052604090205460ff166002811115610c6257fe5b14610cce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610d4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a1015610e3857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b29565b6040805161010080825261012082019092529192506000917f0000000000000000000000000000000000000000000000000000000000000000908390836020820181803683370190505090506000610ede7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611b3c565b610f097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611b6c565b610f5e610f377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611b9d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611c0e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610fb0578181015183820152602001610f98565b50505050905090810190601f168015610fdd5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d94508385111561107c578394505b848252846000602084013e816040518082805190602001908083835b602083106110d557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611098565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061119a610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111f0575060006111d8610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061125e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61126782611c52565b5050565b6000818152603460205260408120548061128957600091505061128f565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156112c157fe5b141561132e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461139e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6113a98383836118d1565b61141457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61141c611971565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806115665750611566611cd3565b80611574575060005460ff16155b6115c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff1615801561162f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61163884611ce4565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905583815560008481526034602052604090205560328290556116b7336116ed565b80156116e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006116f7610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061174d57506000611735610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b9050806117bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661183d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b6000806118dc610a43565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061191d81611e78565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff166119498285611ec9565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611971611f63565b565b8260005b6020811015611a1657600183821c16600085836020811061199457fe5b6020020151905081600114156119da5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611a0c565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611977565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611aae64ffffffffff85168284611fa6565b925050505b92915050565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612005565b600080611af683612026565b6bffffffffffffffffffffffff1690506000611b118461203a565b6bffffffffffffffffffffffff169091209392505050565b6000611ab3611b378361204e565b61207f565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612005565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612082565b6000611ab3604c80611bd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661203a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061222d565b6060600080611c1c8461203a565b6bffffffffffffffffffffffff1690506040519150819250611c4184836020016122bf565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b6000611cde306123eb565b15905090565b600054610100900460ff1680611cfd5750611cfd611cd3565b80611d0b575060005460ff16155b611d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff16158015611dc657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561126757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611f3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a611f59868285856123f1565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611fb384846125df565b9050604051811115611fc3575060005b80611ff1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a36565b611ffc858585612651565b95945050505050565b60008160200360080260ff1661201c858585612082565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020612082565b90565b600060ff821661209457506000610a36565b61209d8461203a565b6bffffffffffffffffffffffff166120b88460ff85166125df565b1115612197576120f96120ca85612026565b6bffffffffffffffffffffffff166120e18661203a565b6bffffffffffffffffffffffff16858560ff16612664565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215c578181015183820152602001612144565b50505050905090810190601f1680156121895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612bb3603a913960400191505060405180910390fd5b60088202600061220386612026565b6bffffffffffffffffffffffff169050600061221e836127bf565b91909501511695945050505050565b60008061223986612026565b6bffffffffffffffffffffffff16905061225286612808565b6122668561226084896125df565b906125df565b1115612295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506122b7565b61229f81866125df565b90506122b38364ffffffffff168286611fa6565b9150505b949350505050565b60006122ca83612832565b61231f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bed6028913960400191505060405180910390fd5b61232883612844565b61237d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c15602b913960400191505060405180910390fd5b60006123888461203a565b6bffffffffffffffffffffffff16905060006123a385612026565b6bffffffffffffffffffffffff16905060006040519050848111156123c85760206060fd5b8285848460045afa50611f596123dd87612881565b64ffffffffff168685612651565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b206022913960400191505060405180910390fd5b8360ff16601b148061248157508360ff16601c145b6124d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b916022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612532573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ffc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b6060600061267186612887565b915050600061267f86612887565b915050600061268d86612887565b915050600061269b86612887565b915050838383836040516020018080612c40603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612b4282397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b60006128138261203a565b61281c83612026565b016bffffffffffffffffffffffff169050919050565b600061283d8261295b565b1592915050565b600061284f82612881565b64ffffffffff1664ffffffffff141561286a5750600061128f565b600061287583612808565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff1611156128ef5760ff600882021684901c6128ac81612983565b61ffff16841793508160ff166010146128c757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161288d565b50600f5b60ff8160ff1610156129555760ff600882021684901c61291281612983565b61ffff16831792508160ff1660001461292d57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016128f3565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061299560048360ff16901c6129b3565b60ff161760081b62ffff00166129aa826129b3565b60ff1617919050565b600060f08083179060ff821614156129cf57603091505061128f565b8060ff1660f114156129e557603191505061128f565b8060ff1660f214156129fb57603291505061128f565b8060ff1660f31415612a1157603391505061128f565b8060ff1660f41415612a2757603491505061128f565b8060ff1660f51415612a3d57603591505061128f565b8060ff1660f61415612a5357603691505061128f565b8060ff1660f71415612a6957603791505061128f565b8060ff1660f81415612a7f57603891505061128f565b8060ff1660f91415612a9557603991505061128f565b8060ff1660fa1415612aab57606191505061128f565b8060ff1660fb1415612ac157606291505061128f565b8060ff1660fc1415612ad757606391505061128f565b8060ff1660fd1415612aed57606491505061128f565b8060ff1660fe1415612b0357606591505061128f565b8060ff1660ff1415612b1957606691505061128f565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212205e1af9237dc7c9ae151f0284c5313e4f0d6d6e9db45e638d5a5034f53566ccb164736f6c63430007060033"; export class Replica__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/TestCommon__factory.ts b/typescript/typechain/abacus-core/factories/TestCommon__factory.ts index c4a728a47..52995fac6 100644 --- a/typescript/typechain/abacus-core/factories/TestCommon__factory.ts +++ b/typescript/typechain/abacus-core/factories/TestCommon__factory.ts @@ -243,7 +243,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b50604051610c9d380380610c9d8339818101604052604081101561003357600080fd5b5080516020909101516001600160e01b031960e083901b166080526100578161005e565b5050610151565b600054610100900460ff16806100775750610077610130565b80610085575060005460ff16155b6100c05760405162461bcd60e51b815260040180806020018281038252602e815260200180610c6f602e913960400191505060405180910390fd5b600054610100900460ff161580156100eb576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038516021760ff60b01b1916600160b01b179055801561012c576000805461ff00191690555b5050565b60006101453061014b60201b6106b51760201c565b15905090565b3b151590565b60805160e01c610afc6101736000398061058d52806106015250610afc6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638d3638f41161005b5780638d3638f4146102445780639d54f41914610265578063c19d93fb14610298578063df034cd0146102c157610088565b806319d9d21a1461008d57806325605c021461015c57806345630b1a1461022257806367a6771d1461023c575b600080fd5b61015a600480360360a08110156100a357600080fd5b81359160208101918101906080810160608201356401000000008111156100c957600080fd5b8201836020820111156100db57600080fd5b803590602001918460018302840111640100000000831117156100fd57600080fd5b91939092909160208101903564010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b5090925090506102f2565b005b61020e6004803603606081101561017257600080fd5b81359160208101359181019060608101604082013564010000000081111561019957600080fd5b8201836020820111156101ab57600080fd5b803590602001918460018302840111640100000000831117156101cd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610551945050505050565b604080519115158252519081900360200190f35b61022a610566565b60408051918252519081900360200190f35b61022a6105f9565b61024c6105ff565b6040805163ffffffff9092168252519081900360200190f35b61015a6004803603602081101561027b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610623565b6102a0610670565b604051808260028111156102b057fe5b815260200191505060405180910390f35b6102c9610693565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff16600281111561031f57fe5b141561038c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526103ce91889188359188908890819084018382808284376000920191909152506106bb92505050565b801561041d575061041d86866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106bb92505050565b801561042e57508435602086013514155b156105495761043b610753565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b600061055e8484846106bb565b949350505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b166020808301919091527f4f5054494353000000000000000000000000000000000000000000000000000060248301528251600a818403018152602a909201909252805191012090565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b600054760100000000000000000000000000000000000000000000900460ff1681565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b3b151590565b6000806106c6610566565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506107078161075d565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff1661073382856107ae565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b61075b610848565b565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461082057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61083e8682858561088b565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610906576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610a836022913960400191505060405180910390fd5b8360ff16601b148061091b57508360ff16601c145b610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610aa56022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156109cc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610a7957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212206a1f96aed10a2caae15483df09e5715f6d1749c7627840a5933b51a7646e702364736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; + "0x60a060405234801561001057600080fd5b50604051610c9d380380610c9d8339818101604052604081101561003357600080fd5b5080516020909101516001600160e01b031960e083901b166080526100578161005e565b5050610151565b600054610100900460ff16806100775750610077610130565b80610085575060005460ff16155b6100c05760405162461bcd60e51b815260040180806020018281038252602e815260200180610c6f602e913960400191505060405180910390fd5b600054610100900460ff161580156100eb576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038516021760ff60b01b1916600160b01b179055801561012c576000805461ff00191690555b5050565b60006101453061014b60201b6106b51760201c565b15905090565b3b151590565b60805160e01c610afc6101736000398061058d52806106015250610afc6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638d3638f41161005b5780638d3638f4146102445780639d54f41914610265578063c19d93fb14610298578063df034cd0146102c157610088565b806319d9d21a1461008d57806325605c021461015c57806345630b1a1461022257806367a6771d1461023c575b600080fd5b61015a600480360360a08110156100a357600080fd5b81359160208101918101906080810160608201356401000000008111156100c957600080fd5b8201836020820111156100db57600080fd5b803590602001918460018302840111640100000000831117156100fd57600080fd5b91939092909160208101903564010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b5090925090506102f2565b005b61020e6004803603606081101561017257600080fd5b81359160208101359181019060608101604082013564010000000081111561019957600080fd5b8201836020820111156101ab57600080fd5b803590602001918460018302840111640100000000831117156101cd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610551945050505050565b604080519115158252519081900360200190f35b61022a610566565b60408051918252519081900360200190f35b61022a6105f9565b61024c6105ff565b6040805163ffffffff9092168252519081900360200190f35b61015a6004803603602081101561027b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610623565b6102a0610670565b604051808260028111156102b057fe5b815260200191505060405180910390f35b6102c9610693565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff16600281111561031f57fe5b141561038c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526103ce91889188359188908890819084018382808284376000920191909152506106bb92505050565b801561041d575061041d86866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106bb92505050565b801561042e57508435602086013514155b156105495761043b610753565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b600061055e8484846106bb565b949350505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b166020808301919091527f4f5054494353000000000000000000000000000000000000000000000000000060248301528251600a818403018152602a909201909252805191012090565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b600054760100000000000000000000000000000000000000000000900460ff1681565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b3b151590565b6000806106c6610566565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506107078161075d565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff1661073382856107ae565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b61075b610848565b565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461082057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61083e8682858561088b565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610906576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610a836022913960400191505060405180910390fd5b8360ff16601b148061091b57508360ff16601c145b610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610aa56022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156109cc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610a7957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a264697066735822122070bf8632bcd2b08d11be665dbceb5fda186844c6fc1408886f66552f60ebe8cd64736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; export class TestCommon__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/TestGovernanceRouter__factory.ts b/typescript/typechain/abacus-core/factories/TestGovernanceRouter__factory.ts index 3c68a8e48..d2b35d043 100644 --- a/typescript/typechain/abacus-core/factories/TestGovernanceRouter__factory.ts +++ b/typescript/typechain/abacus-core/factories/TestGovernanceRouter__factory.ts @@ -543,7 +543,7 @@ const _abi = [ ]; const _bytecode = - "0x60c06040523480156200001157600080fd5b5060405162003a8938038062003a89833981016040819052620000349162000050565b5060e01b6001600160e01b031916608052603260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a0516139c7620000c26000398061051e52806110465250806108975280610908528061108b5280611e0b52506139c76000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806363706be3116100ee578063db2021ae11610097578063e6b3d94911610071578063e6b3d94914610313578063e8c6f83a14610326578063f05151df14610339578063ffa1ad7414610341576101a3565b8063db2021ae146102f0578063de314b1914610303578063e54292981461030b576101a3565b806368b967dc116100c857806368b967dc146102c25780638d3638f4146102d5578063c3ef2134146102dd576101a3565b806363706be31461029f57806366cf8fab146102a7578063670a43c4146102ba576101a3565b80634626abee116101505780635585416c1161012a5780635585416c1461025757806356d5d4751461026c57806356f7e2981461027f576101a3565b80634626abee1461021e578063485cc955146102315780634fedbbb514610244576101a3565b8063316c92b611610181578063316c92b6146101fb5780633339df961461020357806341bdc8b51461020b576101a3565b80630c340a24146101a85780630ce21995146101c65780632ead72f6146101db575b600080fd5b6101b0610356565b6040516101bd9190613424565b60405180910390f35b6101d96101d43660046132bc565b610372565b005b6101ee6101e9366004613214565b61043c565b6040516101bd9190613450565b6101d961044e565b6101b061059c565b6101d961021936600461312c565b6105b8565b6101d961022c366004613180565b6106b2565b6101d961023f366004613148565b6107ad565b6101d9610252366004613269565b610a3f565b61025f610c07565b6040516101bd91906136c2565b6101d961027a3660046132e7565b610c2b565b61029261028d366004613214565b610ebe565b6040516101bd9190613445565b6101d9610f27565b61025f6102b53660046131fc565b61100a565b6101ee611044565b6101d96102d03660046132bc565b611068565b61025f611089565b6101d96102eb36600461324c565b6110ad565b6101d96102fe36600461324c565b6110bf565b6101b0611198565b6101ee6111b4565b6101d961032136600461312c565b6111ba565b6101d96103343660046132bc565b611299565b610292611329565b61034961134a565b6040516101bd919061374f565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b61037a611329565b6103dd5760035473ffffffffffffffffffffffffffffffffffffffff1633146103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b60405180910390fd5b61042e565b60025473ffffffffffffffffffffffffffffffffffffffff16331461042e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b610438828261134f565b5050565b60056020526000908152604090205481565b610456611329565b1561048d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b60025473ffffffffffffffffffffffffffffffffffffffff1633146104de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b60015415610518576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf906135af565b610542427f00000000000000000000000000000000000000000000000000000000000000006113e0565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae225916105929190613450565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6105c0611329565b61061a5760035473ffffffffffffffffffffffffffffffffffffffff163314610615576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b61066b565b60025473ffffffffffffffffffffffffffffffffffffffff16331461066b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6106ba611329565b6107145760035473ffffffffffffffffffffffffffffffffffffffff16331461070f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b610765565b60025473ffffffffffffffffffffffffffffffffffffffff163314610765576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b60005b818110156107a85761079f83838381811061077f57fe5b9050602002810190610791919061375d565b61079a90613814565b61145d565b50600101610768565b505050565b600054610100900460ff16806107c657506107c6611520565b806107d4575060005460ff16155b610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806138a2602e913960400191505060405180910390fd5b600054610100900460ff1615801561088f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b3360016108bd7f00000000000000000000000000000000000000000000000000000000000000008383611531565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055610906856105b8565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561099557600080fd5b505afa1580156109a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cd9190613230565b63ffffffff1614610a0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061350c565b505080156107a857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b610a98611329565b15610acf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b6000610ada8461165b565b90506000610af0610aeb84866137b4565b6116a8565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5a57600080fd5b505afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9291906131e0565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610bce939291906136d3565b600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c8091339101613424565b60206040518083038186803b158015610c9857600080fd5b505afa158015610cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd091906131c0565b610d06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613541565b8282610d12828261187d565b610d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf906134d5565b6000610d5484826118ca565b9050610d817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166118ee565b15610dbe57610db9610db47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611949565b611997565b610eb6565b610de97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a30565b15610e2157610db9610e1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a8e565b611aa8565b610e4c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611b33565b15610e8457610db9610e7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611b3c565b611b56565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061368b565b505050505050565b6000805b600654811015610f1c578263ffffffff1660068281548110610ee057fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415610f14576001915050610f22565b600101610ec2565b50600090505b919050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b600154610fb1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613467565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e261916110009173ffffffffffffffffffffffffffffffffffffffff90911690613424565b60405180910390a1565b6006818154811061101a57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b611072828261134f565b600061107e8383611bcb565b90506107a881611bf8565b7f000000000000000000000000000000000000000000000000000000000000000081565b610438826110ba83611df0565b61134f565b60035473ffffffffffffffffffffffffffffffffffffffff163314611110576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b611118611329565b1561114f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b600061115a83611e09565b9050611167838383611531565b80156111735750610438565b60006111878461118285611df0565b611e38565b905061119281611bf8565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff16331461120b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b6112f2611329565b15611068576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b6001546000908015801590428311159082906113425750805b935050505090565b600081565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe5469061139b9084908690613459565b60405180910390a2816113b7576113b183611e60565b50610438565b806113c5576113c583611f07565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561145457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6060600061146e8360000151611f67565b905060008173ffffffffffffffffffffffffffffffffffffffff16846020015160405161149b919061337c565b6000604051808303816000865af19150503d80600081146114d8576040519150601f19603f3d011682016040523d82523d6000602084013e6114dd565b606091505b509350905080611519576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf906135e6565b5050919050565b600061152b30611f6a565b15905090565b806115415761153f8361165b565b505b60008161154f576000611551565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa916115c39174010000000000000000000000000000000000000000900463ffffffff16908990613738565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff811660009081526005602052604090205480610f22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613654565b805160609060006002820167ffffffffffffffff811180156116c957600080fd5b506040519080825280602002602001820160405280156116f3578160200160208202803683370190505b5090506117416000600160405160200161170d9190613398565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906118ca565b8160008151811061174e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091018201526040516117949160009161170d918691016133f4565b816001815181106117a157fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b8281101561186b5760008582815181106117eb57fe5b60200260200101519050600061181e60008360000151846020015151856020015160405160200161170d9392919061334f565b90508084600285018151811061183057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015250506001016117d5565b5061187581611f70565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561145457505063ffffffff919091166000908152600560205260409020541490565b8151600090602084016118e564ffffffffff85168284611fc0565b95945050505050565b600060016118fb83612021565b60ff16148015611457575060406119337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612051565b6bffffffffffffffffffffffff16101592915050565b6000611954826118ee565b1561198f5761198860015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690612065565b9050610f22565b61145761208b565b8060016119c8815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416906120af565b5060006119f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661222f565b905060005b8151811015611a2957611a20828281518110611a1357fe5b602002602001015161145d565b506001016119fb565b5050505050565b600060025b60ff16611a4183612021565b60ff1614801561145757506025611a797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612051565b6bffffffffffffffffffffffff161492915050565b6000611a9982611a30565b1561198f57611988600261195f565b806002611ab48161199f565b506000611ae27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123d2565b90506000611b19611b147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612403565b611f67565b90506000611b2683611e09565b9050610eb6838383611531565b60006003611a35565b6000611b4782611b33565b1561198f57611988600361195f565b806003611b628161199f565b506000611b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123d2565b90506000611bbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612403565b9050611a29828261134f565b6060611454611bf3611bee60006003878760405160200161170d939291906133ad565b612434565b612469565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6257600080fd5b505afa158015611c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9a91906131e0565b905060005b6006548110156107a857600063ffffffff1660068281548110611cbe57fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611de8578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611d1057fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611d4757fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611db593928991016136d3565b600060405180830381600087803b158015611dcf57600080fd5b505af1158015611de3573d6000803e3d6000fd5b505050505b600101611c9f565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b6060611454611bf3611e5b60006002878760405160200161170d939291906133ad565b6124ad565b63ffffffff811660009081526005602052604081208190555b600654811015610438578163ffffffff1660068281548110611e9757fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611efc5760068181548110611ece57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611f04565b600101611e79565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611f8584602084016124bb565b90506000611f9282612051565b6bffffffffffffffffffffffff1690506000611fad83612533565b9184525082016020016040525092915050565b600080611fcd8484612547565b9050604051811115611fdd575060005b8061200b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061201a565b6120168585856125b9565b9150505b9392505050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016125cc565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b60006120bb83836125ed565b6122285760006120d96120cd8561260f565b64ffffffffff16612615565b91505060006120ee8464ffffffffff16612615565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b838110156121ed5781810151838201526020016121d5565b50505050905090810190601f16801561221a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006122617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806125cc565b905060006122d26002806122967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612051565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088169291906126e9565b905060008260ff1667ffffffffffffffff811180156122f057600080fd5b5060405190808252806020026020018201604052801561232a57816020015b612317612fe0565b81526020019060019003908161230f5790505b50905060005b600061235d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612051565b6bffffffffffffffffffffffff1611156123c95761237a83612779565b82828151811061238657fe5b60209081029190910101515261239b836127a9565b8282815181106123a757fe5b6020026020010151602001819052506123bf836127e8565b9250600101612330565b50949350505050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046125cc565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660056020612873565b600061145761244283611b3c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166129e1565b606060008061247784612051565b6bffffffffffffffffffffffff169050604051915081925061249c8483602001612a5b565b508181016020016040529052919050565b600061145761244283611a8e565b6000604051828111156124ce5760206060fd5b506000805b84518110156125265760008582815181106124ea57fe5b6020026020010151905061250081848701612a5b565b5061250a81612051565b6bffffffffffffffffffffffff169290920191506001016124d3565b50611875600084836125b9565b600061253e82612b87565b60200292915050565b8181018281101561145757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166125e3858585612873565b901c949350505050565b60008164ffffffffff166126008461260f565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff16111561267d5760ff600882021684901c61263a81612bbb565b61ffff16841793508160ff1660101461265557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161261b565b50600f5b60ff8160ff1610156126e35760ff600882021684901c6126a081612bbb565b61ffff16831792508160ff166000146126bb57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612681565b50915091565b6000806126f586612beb565b6bffffffffffffffffffffffff16905061270e86612bff565b6127228561271c8489612547565b90612547565b1115612751577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611875565b61275b8186612547565b905061276f8364ffffffffff168286611fc0565b9695505050505050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826020612873565b6060611457611bf360406127bc85612c29565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616919060046126e9565b60008160016127f68161199f565b50600061280285612c29565b60400190506118e581806128377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916612051565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089169291906126e9565b600060ff82166128855750600061201a565b61288e84612051565b6bffffffffffffffffffffffff166128a98460ff8516612547565b111561294b576128ea6128bb85612beb565b6bffffffffffffffffffffffff166128d286612051565b6bffffffffffffffffffffffff16858560ff16612c59565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156121ed5781810151838201526020016121d5565b60208260ff1611156129a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806138d0603a913960400191505060405180910390fd5b6008820260006129b786612beb565b6bffffffffffffffffffffffff16905060006129d283612db4565b91909501511695945050505050565b60006129ec82612dfd565b612a5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b6000612a6683612e3a565b612abb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061390a6028913960400191505060405180910390fd5b612ac483612dfd565b612b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613932602b913960400191505060405180910390fd5b6000612b2484612051565b6bffffffffffffffffffffffff1690506000612b3f85612beb565b6bffffffffffffffffffffffff1690506000604051905084811115612b645760206060fd5b8285848460045afa5061276f612b798761260f565b64ffffffffff1686856125b9565b60006020612bad6020612b9985612051565b6bffffffffffffffffffffffff1690612547565b81612bb457fe5b0492915050565b6000612bcd60048360ff16901c612e4c565b60ff161760081b62ffff0016612be282612e4c565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612c0a82612051565b612c1383612beb565b016bffffffffffffffffffffffff169050919050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602080612873565b60606000612c6686612615565b9150506000612c7486612615565b9150506000612c8286612615565b9150506000612c9086612615565b91505083838383604051602001808061395d603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161388182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612e088261260f565b64ffffffffff1664ffffffffff1415612e2357506000610f22565b6000612e2e83612bff565b60405110199392505050565b6000612e4582612fb8565b1592915050565b600060f08083179060ff82161415612e68576030915050610f22565b8060ff1660f11415612e7e576031915050610f22565b8060ff1660f21415612e94576032915050610f22565b8060ff1660f31415612eaa576033915050610f22565b8060ff1660f41415612ec0576034915050610f22565b8060ff1660f51415612ed6576035915050610f22565b8060ff1660f61415612eec576036915050610f22565b8060ff1660f71415612f02576037915050610f22565b8060ff1660f81415612f18576038915050610f22565b8060ff1660f91415612f2e576039915050610f22565b8060ff1660fa1415612f44576061915050610f22565b8060ff1660fb1415612f5a576062915050610f22565b8060ff1660fc1415612f70576063915050610f22565b8060ff1660fd1415612f86576064915050610f22565b8060ff1660fe1415612f9c576065915050610f22565b8060ff1660ff1415612fb2576066915050610f22565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112613009578182fd5b50813567ffffffffffffffff811115613020578182fd5b602083019150836020808302850101111561303a57600080fd5b9250929050565b600082601f830112613051578081fd5b813567ffffffffffffffff81111561306557fe5b61309660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613790565b8181528460208386010111156130aa578283fd5b816020850160208301379081016020019190915292915050565b6000604082840312156130d5578081fd5b6040516040810167ffffffffffffffff82821081831117156130f357fe5b8160405282935084358352602085013591508082111561311257600080fd5b5061311f85828601613041565b6020830152505092915050565b60006020828403121561313d578081fd5b81356114548161384c565b6000806040838503121561315a578081fd5b82356131658161384c565b915060208301356131758161384c565b809150509250929050565b60008060208385031215613192578182fd5b823567ffffffffffffffff8111156131a8578283fd5b6131b485828601612ff8565b90969095509350505050565b6000602082840312156131d1578081fd5b81518015158114611454578182fd5b6000602082840312156131f1578081fd5b81516114548161384c565b60006020828403121561320d578081fd5b5035919050565b600060208284031215613225578081fd5b81356114548161386e565b600060208284031215613241578081fd5b81516114548161386e565b6000806040838503121561325e578182fd5b82356131658161386e565b60008060006040848603121561327d578081fd5b83356132888161386e565b9250602084013567ffffffffffffffff8111156132a3578182fd5b6132af86828701612ff8565b9497909650939450505050565b600080604083850312156132ce578182fd5b82356132d98161386e565b946020939093013593505050565b6000806000606084860312156132fb578283fd5b83356133068161386e565b925060208401359150604084013567ffffffffffffffff811115613328578182fd5b61333486828701613041565b9150509250925092565b6005811061334857fe5b60f81b9052565b6000848252836020830152825161336d816040850160208701613820565b91909101604001949350505050565b6000825161338e818460208701613820565b9190910192915050565b60006133a4828461333e565b50600101919050565b60006133b9828661333e565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff85168252836020830152606060408301528251806060840152613704816080850160208701613820565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261338e578182fd5b60405181810167ffffffffffffffff811182821017156137ac57fe5b604052919050565b600067ffffffffffffffff8311156137c857fe5b60206137d78182860201613790565b8481528181019084845b87811015613808576137f636833589016130c4565b845292840192908401906001016137e1565b50909695505050505050565b600061145736836130c4565b60005b8381101561383b578181015183820152602001613823565b838111156111925750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611f0457600080fd5b63ffffffff81168114611f0457600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220bdd5e5c6827dd11f79128cd089b00490674b218c556757fe72819e6875666e4764736f6c63430007060033"; + "0x60c06040523480156200001157600080fd5b5060405162003a8938038062003a89833981016040819052620000349162000050565b5060e01b6001600160e01b031916608052603260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a0516139c7620000c26000398061051e52806110465250806108975280610908528061108b5280611e0b52506139c76000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806363706be3116100ee578063db2021ae11610097578063e6b3d94911610071578063e6b3d94914610313578063e8c6f83a14610326578063f05151df14610339578063ffa1ad7414610341576101a3565b8063db2021ae146102f0578063de314b1914610303578063e54292981461030b576101a3565b806368b967dc116100c857806368b967dc146102c25780638d3638f4146102d5578063c3ef2134146102dd576101a3565b806363706be31461029f57806366cf8fab146102a7578063670a43c4146102ba576101a3565b80634626abee116101505780635585416c1161012a5780635585416c1461025757806356d5d4751461026c57806356f7e2981461027f576101a3565b80634626abee1461021e578063485cc955146102315780634fedbbb514610244576101a3565b8063316c92b611610181578063316c92b6146101fb5780633339df961461020357806341bdc8b51461020b576101a3565b80630c340a24146101a85780630ce21995146101c65780632ead72f6146101db575b600080fd5b6101b0610356565b6040516101bd9190613424565b60405180910390f35b6101d96101d43660046132bc565b610372565b005b6101ee6101e9366004613214565b61043c565b6040516101bd9190613450565b6101d961044e565b6101b061059c565b6101d961021936600461312c565b6105b8565b6101d961022c366004613180565b6106b2565b6101d961023f366004613148565b6107ad565b6101d9610252366004613269565b610a3f565b61025f610c07565b6040516101bd91906136c2565b6101d961027a3660046132e7565b610c2b565b61029261028d366004613214565b610ebe565b6040516101bd9190613445565b6101d9610f27565b61025f6102b53660046131fc565b61100a565b6101ee611044565b6101d96102d03660046132bc565b611068565b61025f611089565b6101d96102eb36600461324c565b6110ad565b6101d96102fe36600461324c565b6110bf565b6101b0611198565b6101ee6111b4565b6101d961032136600461312c565b6111ba565b6101d96103343660046132bc565b611299565b610292611329565b61034961134a565b6040516101bd919061374f565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b61037a611329565b6103dd5760035473ffffffffffffffffffffffffffffffffffffffff1633146103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b60405180910390fd5b61042e565b60025473ffffffffffffffffffffffffffffffffffffffff16331461042e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b610438828261134f565b5050565b60056020526000908152604090205481565b610456611329565b1561048d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b60025473ffffffffffffffffffffffffffffffffffffffff1633146104de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b60015415610518576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf906135af565b610542427f00000000000000000000000000000000000000000000000000000000000000006113e0565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae225916105929190613450565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6105c0611329565b61061a5760035473ffffffffffffffffffffffffffffffffffffffff163314610615576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b61066b565b60025473ffffffffffffffffffffffffffffffffffffffff16331461066b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6106ba611329565b6107145760035473ffffffffffffffffffffffffffffffffffffffff16331461070f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b610765565b60025473ffffffffffffffffffffffffffffffffffffffff163314610765576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b60005b818110156107a85761079f83838381811061077f57fe5b9050602002810190610791919061375d565b61079a90613814565b61145d565b50600101610768565b505050565b600054610100900460ff16806107c657506107c6611520565b806107d4575060005460ff16155b610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806138a2602e913960400191505060405180910390fd5b600054610100900460ff1615801561088f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b3360016108bd7f00000000000000000000000000000000000000000000000000000000000000008383611531565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055610906856105b8565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561099557600080fd5b505afa1580156109a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cd9190613230565b63ffffffff1614610a0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061350c565b505080156107a857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b610a98611329565b15610acf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b6000610ada8461165b565b90506000610af0610aeb84866137b4565b6116a8565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5a57600080fd5b505afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9291906131e0565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610bce939291906136d3565b600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c8091339101613424565b60206040518083038186803b158015610c9857600080fd5b505afa158015610cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd091906131c0565b610d06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613541565b8282610d12828261187d565b610d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf906134d5565b6000610d5484826118ca565b9050610d817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166118ee565b15610dbe57610db9610db47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611949565b611997565b610eb6565b610de97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a30565b15610e2157610db9610e1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a8e565b611aa8565b610e4c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611b33565b15610e8457610db9610e7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611b3c565b611b56565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061368b565b505050505050565b6000805b600654811015610f1c578263ffffffff1660068281548110610ee057fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415610f14576001915050610f22565b600101610ec2565b50600090505b919050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b600154610fb1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613467565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e261916110009173ffffffffffffffffffffffffffffffffffffffff90911690613424565b60405180910390a1565b6006818154811061101a57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b611072828261134f565b600061107e8383611bcb565b90506107a881611bf8565b7f000000000000000000000000000000000000000000000000000000000000000081565b610438826110ba83611df0565b61134f565b60035473ffffffffffffffffffffffffffffffffffffffff163314611110576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b611118611329565b1561114f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b600061115a83611e09565b9050611167838383611531565b80156111735750610438565b60006111878461118285611df0565b611e38565b905061119281611bf8565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff16331461120b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061361d565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061349e565b6112f2611329565b15611068576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613578565b6001546000908015801590428311159082906113425750805b935050505090565b600081565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe5469061139b9084908690613459565b60405180910390a2816113b7576113b183611e60565b50610438565b806113c5576113c583611f07565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561145457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6060600061146e8360000151611f67565b905060008173ffffffffffffffffffffffffffffffffffffffff16846020015160405161149b919061337c565b6000604051808303816000865af19150503d80600081146114d8576040519150601f19603f3d011682016040523d82523d6000602084013e6114dd565b606091505b509350905080611519576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf906135e6565b5050919050565b600061152b30611f6a565b15905090565b806115415761153f8361165b565b505b60008161154f576000611551565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa916115c39174010000000000000000000000000000000000000000900463ffffffff16908990613738565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff811660009081526005602052604090205480610f22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90613654565b805160609060006002820167ffffffffffffffff811180156116c957600080fd5b506040519080825280602002602001820160405280156116f3578160200160208202803683370190505b5090506117416000600160405160200161170d9190613398565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906118ca565b8160008151811061174e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091018201526040516117949160009161170d918691016133f4565b816001815181106117a157fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b8281101561186b5760008582815181106117eb57fe5b60200260200101519050600061181e60008360000151846020015151856020015160405160200161170d9392919061334f565b90508084600285018151811061183057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015250506001016117d5565b5061187581611f70565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561145457505063ffffffff919091166000908152600560205260409020541490565b8151600090602084016118e564ffffffffff85168284611fc0565b95945050505050565b600060016118fb83612021565b60ff16148015611457575060406119337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612051565b6bffffffffffffffffffffffff16101592915050565b6000611954826118ee565b1561198f5761198860015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690612065565b9050610f22565b61145761208b565b8060016119c8815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416906120af565b5060006119f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661222f565b905060005b8151811015611a2957611a20828281518110611a1357fe5b602002602001015161145d565b506001016119fb565b5050505050565b600060025b60ff16611a4183612021565b60ff1614801561145757506025611a797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612051565b6bffffffffffffffffffffffff161492915050565b6000611a9982611a30565b1561198f57611988600261195f565b806002611ab48161199f565b506000611ae27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123d2565b90506000611b19611b147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612403565b611f67565b90506000611b2683611e09565b9050610eb6838383611531565b60006003611a35565b6000611b4782611b33565b1561198f57611988600361195f565b806003611b628161199f565b506000611b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123d2565b90506000611bbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612403565b9050611a29828261134f565b6060611454611bf3611bee60006003878760405160200161170d939291906133ad565b612434565b612469565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6257600080fd5b505afa158015611c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9a91906131e0565b905060005b6006548110156107a857600063ffffffff1660068281548110611cbe57fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611de8578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611d1057fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611d4757fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611db593928991016136d3565b600060405180830381600087803b158015611dcf57600080fd5b505af1158015611de3573d6000803e3d6000fd5b505050505b600101611c9f565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b6060611454611bf3611e5b60006002878760405160200161170d939291906133ad565b6124ad565b63ffffffff811660009081526005602052604081208190555b600654811015610438578163ffffffff1660068281548110611e9757fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611efc5760068181548110611ece57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611f04565b600101611e79565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611f8584602084016124bb565b90506000611f9282612051565b6bffffffffffffffffffffffff1690506000611fad83612533565b9184525082016020016040525092915050565b600080611fcd8484612547565b9050604051811115611fdd575060005b8061200b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061201a565b6120168585856125b9565b9150505b9392505050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016125cc565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b60006120bb83836125ed565b6122285760006120d96120cd8561260f565b64ffffffffff16612615565b91505060006120ee8464ffffffffff16612615565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b838110156121ed5781810151838201526020016121d5565b50505050905090810190601f16801561221a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006122617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806125cc565b905060006122d26002806122967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612051565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088169291906126e9565b905060008260ff1667ffffffffffffffff811180156122f057600080fd5b5060405190808252806020026020018201604052801561232a57816020015b612317612fe0565b81526020019060019003908161230f5790505b50905060005b600061235d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612051565b6bffffffffffffffffffffffff1611156123c95761237a83612779565b82828151811061238657fe5b60209081029190910101515261239b836127a9565b8282815181106123a757fe5b6020026020010151602001819052506123bf836127e8565b9250600101612330565b50949350505050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046125cc565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660056020612873565b600061145761244283611b3c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166129e1565b606060008061247784612051565b6bffffffffffffffffffffffff169050604051915081925061249c8483602001612a5b565b508181016020016040529052919050565b600061145761244283611a8e565b6000604051828111156124ce5760206060fd5b506000805b84518110156125265760008582815181106124ea57fe5b6020026020010151905061250081848701612a5b565b5061250a81612051565b6bffffffffffffffffffffffff169290920191506001016124d3565b50611875600084836125b9565b600061253e82612b87565b60200292915050565b8181018281101561145757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166125e3858585612873565b901c949350505050565b60008164ffffffffff166126008461260f565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff16111561267d5760ff600882021684901c61263a81612bbb565b61ffff16841793508160ff1660101461265557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161261b565b50600f5b60ff8160ff1610156126e35760ff600882021684901c6126a081612bbb565b61ffff16831792508160ff166000146126bb57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612681565b50915091565b6000806126f586612beb565b6bffffffffffffffffffffffff16905061270e86612bff565b6127228561271c8489612547565b90612547565b1115612751577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611875565b61275b8186612547565b905061276f8364ffffffffff168286611fc0565b9695505050505050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826020612873565b6060611457611bf360406127bc85612c29565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616919060046126e9565b60008160016127f68161199f565b50600061280285612c29565b60400190506118e581806128377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916612051565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089169291906126e9565b600060ff82166128855750600061201a565b61288e84612051565b6bffffffffffffffffffffffff166128a98460ff8516612547565b111561294b576128ea6128bb85612beb565b6bffffffffffffffffffffffff166128d286612051565b6bffffffffffffffffffffffff16858560ff16612c59565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156121ed5781810151838201526020016121d5565b60208260ff1611156129a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806138d0603a913960400191505060405180910390fd5b6008820260006129b786612beb565b6bffffffffffffffffffffffff16905060006129d283612db4565b91909501511695945050505050565b60006129ec82612dfd565b612a5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b6000612a6683612e3a565b612abb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061390a6028913960400191505060405180910390fd5b612ac483612dfd565b612b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613932602b913960400191505060405180910390fd5b6000612b2484612051565b6bffffffffffffffffffffffff1690506000612b3f85612beb565b6bffffffffffffffffffffffff1690506000604051905084811115612b645760206060fd5b8285848460045afa5061276f612b798761260f565b64ffffffffff1686856125b9565b60006020612bad6020612b9985612051565b6bffffffffffffffffffffffff1690612547565b81612bb457fe5b0492915050565b6000612bcd60048360ff16901c612e4c565b60ff161760081b62ffff0016612be282612e4c565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612c0a82612051565b612c1383612beb565b016bffffffffffffffffffffffff169050919050565b60006114577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602080612873565b60606000612c6686612615565b9150506000612c7486612615565b9150506000612c8286612615565b9150506000612c9086612615565b91505083838383604051602001808061395d603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161388182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612e088261260f565b64ffffffffff1664ffffffffff1415612e2357506000610f22565b6000612e2e83612bff565b60405110199392505050565b6000612e4582612fb8565b1592915050565b600060f08083179060ff82161415612e68576030915050610f22565b8060ff1660f11415612e7e576031915050610f22565b8060ff1660f21415612e94576032915050610f22565b8060ff1660f31415612eaa576033915050610f22565b8060ff1660f41415612ec0576034915050610f22565b8060ff1660f51415612ed6576035915050610f22565b8060ff1660f61415612eec576036915050610f22565b8060ff1660f71415612f02576037915050610f22565b8060ff1660f81415612f18576038915050610f22565b8060ff1660f91415612f2e576039915050610f22565b8060ff1660fa1415612f44576061915050610f22565b8060ff1660fb1415612f5a576062915050610f22565b8060ff1660fc1415612f70576063915050610f22565b8060ff1660fd1415612f86576064915050610f22565b8060ff1660fe1415612f9c576065915050610f22565b8060ff1660ff1415612fb2576066915050610f22565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112613009578182fd5b50813567ffffffffffffffff811115613020578182fd5b602083019150836020808302850101111561303a57600080fd5b9250929050565b600082601f830112613051578081fd5b813567ffffffffffffffff81111561306557fe5b61309660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613790565b8181528460208386010111156130aa578283fd5b816020850160208301379081016020019190915292915050565b6000604082840312156130d5578081fd5b6040516040810167ffffffffffffffff82821081831117156130f357fe5b8160405282935084358352602085013591508082111561311257600080fd5b5061311f85828601613041565b6020830152505092915050565b60006020828403121561313d578081fd5b81356114548161384c565b6000806040838503121561315a578081fd5b82356131658161384c565b915060208301356131758161384c565b809150509250929050565b60008060208385031215613192578182fd5b823567ffffffffffffffff8111156131a8578283fd5b6131b485828601612ff8565b90969095509350505050565b6000602082840312156131d1578081fd5b81518015158114611454578182fd5b6000602082840312156131f1578081fd5b81516114548161384c565b60006020828403121561320d578081fd5b5035919050565b600060208284031215613225578081fd5b81356114548161386e565b600060208284031215613241578081fd5b81516114548161386e565b6000806040838503121561325e578182fd5b82356131658161386e565b60008060006040848603121561327d578081fd5b83356132888161386e565b9250602084013567ffffffffffffffff8111156132a3578182fd5b6132af86828701612ff8565b9497909650939450505050565b600080604083850312156132ce578182fd5b82356132d98161386e565b946020939093013593505050565b6000806000606084860312156132fb578283fd5b83356133068161386e565b925060208401359150604084013567ffffffffffffffff811115613328578182fd5b61333486828701613041565b9150509250925092565b6005811061334857fe5b60f81b9052565b6000848252836020830152825161336d816040850160208701613820565b91909101604001949350505050565b6000825161338e818460208701613820565b9190910192915050565b60006133a4828461333e565b50600101919050565b60006133b9828661333e565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff85168252836020830152606060408301528251806060840152613704816080850160208701613820565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261338e578182fd5b60405181810167ffffffffffffffff811182821017156137ac57fe5b604052919050565b600067ffffffffffffffff8311156137c857fe5b60206137d78182860201613790565b8481528181019084845b87811015613808576137f636833589016130c4565b845292840192908401906001016137e1565b50909695505050505050565b600061145736836130c4565b60005b8381101561383b578181015183820152602001613823565b838111156111925750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611f0457600080fd5b63ffffffff81168114611f0457600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212203a0f65ab8bee02ef13e8a0738e811d610e584e47ef590d667f303aa7d296caf164736f6c63430007060033"; export class TestGovernanceRouter__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/TestHome__factory.ts b/typescript/typechain/abacus-core/factories/TestHome__factory.ts index 33007739b..368961e22 100644 --- a/typescript/typechain/abacus-core/factories/TestHome__factory.ts +++ b/typescript/typechain/abacus-core/factories/TestHome__factory.ts @@ -429,6 +429,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "proof", + outputs: [ + { + internalType: "bytes32[32]", + name: "", + type: "bytes32[32]", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -673,7 +686,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b50604051612dab380380612dab8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612d3d61006e60003980610a2c5280610b9252806110695250612d3d6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80639776120e11610104578063c4d66de8116100a2578063f6d1610211610071578063f6d1610214610688578063fa31de0114610690578063fd54b22814610748578063ffa1ad7414610750576101da565b8063c4d66de814610612578063df034cd014610645578063ebf0c7171461064d578063f2fde38b14610655576101da565b8063ab91c7b0116100de578063ab91c7b01461050c578063b31c01fb14610514578063b95a2001146105c6578063c19d93fb146105e9576101da565b80639776120e1461049e5780639d54f419146104d15780639df6c8e114610504576101da565b80635146366e1161017c578063715018a61161014b578063715018a6146103925780638d3638f41461039a5780638da5cb5b146103bb5780638e4e30e0146103ec576101da565b80635146366e146103325780635221c8181461033a578063522ae0021461038257806367a6771d1461038a576101da565b806319d9d21a116101b857806319d9d21a1461020b5780632bef2892146102d857806336e104de1461030957806345630b1a1461032a576101da565b806306661abd146101df5780630be4f422146101f9578063146901db14610201575b600080fd5b6101e761076e565b60408051918252519081900360200190f35b6101e7610774565b610209610783565b005b610209600480360360a081101561022157600080fd5b813591602081019181019060808101606082013564010000000081111561024757600080fd5b82018360208201111561025957600080fd5b8035906020019184600183028401116401000000008311171561027b57600080fd5b91939092909160208101903564010000000081111561029957600080fd5b8201836020820111156102ab57600080fd5b803590602001918460018302840111640100000000831117156102cd57600080fd5b50909250905061078d565b6102f5600480360360208110156102ee57600080fd5b50356109ea565b604080519115158252519081900360200190f35b6103116109fd565b6040805192835260208301919091528051918290030190f35b6101e7610a25565b6101e7610a50565b6103656004803603604081101561035057600080fd5b5063ffffffff81358116916020013516610a5a565b6040805167ffffffffffffffff9092168252519081900360200190f35b6101e7610a6d565b6101e7610a73565b610209610a79565b6103a2610b90565b6040805163ffffffff9092168252519081900360200190f35b6103c3610bb4565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102f56004803603606081101561040257600080fd5b81359160208101359181019060608101604082013564010000000081111561042957600080fd5b82018360208201111561043b57600080fd5b8035906020019184600183028401116401000000008311171561045d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bd0945050505050565b610209600480360360208110156104b457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e22565b610209600480360360208110156104e757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ed6565b6103c3610f66565b6101e7610f83565b6102096004803603606081101561052a57600080fd5b81359160208101359181019060608101604082013564010000000081111561055157600080fd5b82018360208201111561056357600080fd5b8035906020019184600183028401116401000000008311171561058557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f8f945050505050565b6103a2600480360360208110156105dc57600080fd5b503563ffffffff1661112d565b6105f1611146565b6040518082600281111561060157fe5b815260200191505060405180910390f35b6102096004803603602081101561062857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611167565b6103c3611382565b6101e761139e565b6102096004803603602081101561066b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113aa565b6101e761154c565b610209600480360360608110156106a657600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156106d357600080fd5b8201836020820111156106e557600080fd5b8035906020019184600183028401116401000000008311171561070757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611558945050505050565b6101e761164b565b610758611651565b6040805160ff9092168252519081900360200190f35b60545490565b600061077e61076e565b905090565b61078b611656565b565b600260865474010000000000000000000000000000000000000000900460ff1660028111156107b857fe5b141561082557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f8601819004810282018101909252848152610867918891883591889088908190840183828082843760009201919091525061169792505050565b80156108b657506108b686866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169792505050565b80156108c757508435602086013514155b156109e2576108d4611729565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b60006109f7600183611805565b92915050565b600080610a0a6001611875565b15610a21576087549150610a1e60016118b5565b90505b9091565b600061077e7f00000000000000000000000000000000000000000000000000000000000000006118f2565b600061077e610a25565b6000610a668383611967565b9392505050565b61080081565b60875481565b610a81611981565b73ffffffffffffffffffffffffffffffffffffffff16610a9f610bb4565b73ffffffffffffffffffffffffffffffffffffffff1614610b2157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610bfd57fe5b1415610c6a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610c75848484611697565b610ce057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610d5057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610d5b600184611805565b610e1857610d67611729565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610dd4578181015183820152602001610dbc565b50505050905090810190601f168015610e015780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610a66565b5060009392505050565b610e2a611981565b73ffffffffffffffffffffffffffffffffffffffff16610e48610bb4565b73ffffffffffffffffffffffffffffffffffffffff1614610eca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610ed381611985565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610f5d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610ed381611a73565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b600061077e6001611875565b600260865474010000000000000000000000000000000000000000900460ff166002811115610fba57fe5b141561102757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b611032838383610bd0565b1561103c57611128565b60006110486001611aec565b905082811415611058575061105e565b5061103c565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b838110156110ed5781810151838201526020016110d5565b50505050905090810190601f16801561111a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806111805750611180611c25565b8061118e575060005460ff16155b6111e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612cb8602e913960400191505060405180910390fd5b600054610100900460ff1615801561124957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611251611c36565b611259611d59565b61126282611985565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b1580156112ce57600080fd5b505afa1580156112e2573d6000803e3d6000fd5b505050506040513d60208110156112f857600080fd5b5051905061130581611e45565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561137e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b600061077e6034611fd2565b6113b2611981565b73ffffffffffffffffffffffffffffffffffffffff166113d0610bb4565b73ffffffffffffffffffffffffffffffffffffffff161461145257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166114be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612c706026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600061077e60016118b5565b600260865474010000000000000000000000000000000000000000900460ff16600281111561158357fe5b14156101da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b838110156116085781810151838201526020016115f0565b50505050905090810190601f1680156116355780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b6000806116a2610a25565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506116e3816120e9565b60865490915073ffffffffffffffffffffffffffffffffffffffff16611709828561213a565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611731611656565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156117a457600080fd5b505af11580156117b8573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610e1857600081815260018501602052604090205483141561186d5760019150506109f7565b60010161181d565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166118ad82826121d4565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b63ffffffff1660209190911b67ffffffff00000000161790565b3390565b61198e816121ee565b6119f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b2482826121d4565b611b8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611be0576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c30306121ee565b15905090565b600054610100900460ff1680611c4f5750611c4f611c25565b80611c5d575060005460ff16155b611cb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612cb8602e913960400191505060405180910390fd5b600054610100900460ff16158015611d1857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d206121f4565b611d28612306565b8015610ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611d725750611d72611c25565b80611d80575060005460ff16155b611dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612cb8602e913960400191505060405180910390fd5b600054610100900460ff16158015611e3b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d286001612496565b600054610100900460ff1680611e5e5750611e5e611c25565b80611e6c575060005460ff16155b611ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612cb8602e913960400191505060405180910390fd5b600054610100900460ff16158015611f2757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561137e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b60006109f782611fe06124da565b61299b565b6020831061202257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611fe5565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b60208110156120e6578160011660011415612093578284826020811061208957fe5b01555061137e9050565b83816020811061209f57fe5b0154836040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250600282816120db57fe5b049150600101612067565b50fe5b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146121ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6121ca86828585612a59565b9695505050505050565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168061220d575061220d611c25565b8061221b575060005460ff16155b612270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612cb8602e913960400191505060405180910390fd5b600054610100900460ff16158015611d2857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff168061231f575061231f611c25565b8061232d575060005460ff16155b612382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612cb8602e913960400191505060405180910390fd5b600054610100900460ff161580156123e857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006123f2611981565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610ed35780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b6124e2612c50565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612a5157600182821c1660008683602081106129c257fe5b015490508160011415612a055780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612a47565b84868460208110612a1257fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b50506001016129a5565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612c966022913960400191505060405180910390fd5b8360ff16601b1480612ae957508360ff16601c145b612b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ce66022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612b9a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612c4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220d99a5a935705394fd323c2641def8fa9a37c910efdde28b1552307b08b56783964736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b506040516131d93803806131d98339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff1661316661007360003980610a785280610bde52806110b552806116fd52506131666000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639776120e1161010f578063df034cd0116100a2578063fa31de0111610071578063fa31de011461069b578063faf924cf14610753578063fd54b22814610794578063ffa1ad741461079c576101e5565b8063df034cd014610650578063ebf0c71714610658578063f2fde38b14610660578063f6d1610214610693576101e5565b8063b31c01fb116100de578063b31c01fb1461051f578063b95a2001146105d1578063c19d93fb146105f4578063c4d66de81461061d576101e5565b80639776120e146104a95780639d54f419146104dc5780639df6c8e11461050f578063ab91c7b014610517576101e5565b80635146366e11610187578063715018a611610156578063715018a61461039d5780638d3638f4146103a55780638da5cb5b146103c65780638e4e30e0146103f7576101e5565b80635146366e1461033d5780635221c81814610345578063522ae0021461038d57806367a6771d14610395576101e5565b806319d9d21a116101c357806319d9d21a146102165780632bef2892146102e357806336e104de1461031457806345630b1a14610335576101e5565b806306661abd146101ea5780630be4f42214610204578063146901db1461020c575b600080fd5b6101f26107ba565b60408051918252519081900360200190f35b6101f26107c0565b6102146107cf565b005b610214600480360360a081101561022c57600080fd5b813591602081019181019060808101606082013564010000000081111561025257600080fd5b82018360208201111561026457600080fd5b8035906020019184600183028401116401000000008311171561028657600080fd5b9193909290916020810190356401000000008111156102a457600080fd5b8201836020820111156102b657600080fd5b803590602001918460018302840111640100000000831117156102d857600080fd5b5090925090506107d9565b610300600480360360208110156102f957600080fd5b5035610a36565b604080519115158252519081900360200190f35b61031c610a49565b6040805192835260208301919091528051918290030190f35b6101f2610a71565b6101f2610a9c565b6103706004803603604081101561035b57600080fd5b5063ffffffff81358116916020013516610aa6565b6040805167ffffffffffffffff9092168252519081900360200190f35b6101f2610ab9565b6101f2610abf565b610214610ac5565b6103ad610bdc565b6040805163ffffffff9092168252519081900360200190f35b6103ce610c00565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103006004803603606081101561040d57600080fd5b81359160208101359181019060608101604082013564010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c1c945050505050565b610214600480360360208110156104bf57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e6e565b610214600480360360208110156104f257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f22565b6103ce610fb2565b6101f2610fcf565b6102146004803603606081101561053557600080fd5b81359160208101359181019060608101604082013564010000000081111561055c57600080fd5b82018360208201111561056e57600080fd5b8035906020019184600183028401116401000000008311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fdb945050505050565b6103ad600480360360208110156105e757600080fd5b503563ffffffff16611179565b6105fc611192565b6040518082600281111561060c57fe5b815260200191505060405180910390f35b6102146004803603602081101561063357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111b3565b6103ce6113ce565b6101f26113ea565b6102146004803603602081101561067657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f6565b6101f2611598565b610214600480360360608110156106b157600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156106de57600080fd5b8201836020820111156106f057600080fd5b8035906020019184600183028401116401000000008311171561071257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a4945050505050565b61075b61181a565b604051808261040080838360005b83811015610781578181015183820152602001610769565b5050505090500191505060405180910390f35b6101f261192d565b6107a4611933565b6040805160ff9092168252519081900360200190f35b60545490565b60006107ca6107ba565b905090565b6107d7611938565b565b600260865474010000000000000000000000000000000000000000900460ff16600281111561080457fe5b141561087157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526108b3918891883591889088908190840183828082843760009201919091525061197992505050565b8015610902575061090286866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061197992505050565b801561091357508435602086013514155b15610a2e57610920611a0b565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b6000610a43600183611ae7565b92915050565b600080610a566001611b57565b15610a6d576087549150610a6a6001611b97565b90505b9091565b60006107ca7f0000000000000000000000000000000000000000000000000000000000000000611bd4565b60006107ca610a71565b6000610ab28383611c49565b9392505050565b61080081565b60875481565b610acd611c63565b73ffffffffffffffffffffffffffffffffffffffff16610aeb610c00565b73ffffffffffffffffffffffffffffffffffffffff1614610b6d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610c4957fe5b1415610cb657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610cc1848484611979565b610d2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610d9c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610da7600184611ae7565b610e6457610db3611a0b565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e20578181015183820152602001610e08565b50505050905090810190601f168015610e4d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610ab2565b5060009392505050565b610e76611c63565b73ffffffffffffffffffffffffffffffffffffffff16610e94610c00565b73ffffffffffffffffffffffffffffffffffffffff1614610f1657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f1f81611c67565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610fa957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610f1f81611d55565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60006107ca6001611b57565b600260865474010000000000000000000000000000000000000000900460ff16600281111561100657fe5b141561107357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b61107e838383610c1c565b1561108857611174565b60006110946001611dce565b9050828114156110a457506110aa565b50611088565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611139578181015183820152602001611121565b50505050905090810190601f1680156111665780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806111cc57506111cc611f07565b806111da575060005460ff16155b61122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806130e1602e913960400191505060405180910390fd5b600054610100900460ff1615801561129557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61129d611f18565b6112a561203b565b6112ae82611c67565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561131a57600080fd5b505afa15801561132e573d6000803e3d6000fd5b505050506040513d602081101561134457600080fd5b5051905061135181612127565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a15080156113ca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006107ca60346122b4565b6113fe611c63565b73ffffffffffffffffffffffffffffffffffffffff1661141c610c00565b73ffffffffffffffffffffffffffffffffffffffff161461149e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661150a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130996026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006107ca6001611b97565b600260865474010000000000000000000000000000000000000000900460ff1660028111156115cf57fe5b141561163c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610800815111156116ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790556117267f000000000000000000000000000000000000000000000000000000000000000033848888886122c7565b8051602082012090915061173b60348261239d565b61174e6117466113ea565b6001906124a5565b506117598684611c49565b67ffffffffffffffff16600161176d6107ba565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117d75781810151838201526020016117bf565b50505050905090810190601f1680156118045780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b611822613079565b61182a613079565b6000611834612512565b6054549091506000805b602081101561192357600183821c1660006034836020811061185c57fe5b0154905081600114156118b5578387846020811061187657fe5b60200201818152505080846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611919565b838684602081106118c257fe5b6020020151604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120935085836020811061190257fe5b602002015187846020811061191357fe5b60200201525b505060010161183e565b5092935050505090565b60545481565b600081565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b600080611984610a71565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506119c5816129d3565b60865490915073ffffffffffffffffffffffffffffffffffffffff166119eb8285612a24565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611a13611938565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b158015611a8657600080fd5b505af1158015611a9a573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610e64576000818152600185016020526040902054831415611b4f576001915050610a43565b600101611aff565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b8f8282612abe565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b63ffffffff1660209190911b67ffffffff00000000161790565b3390565b611c7081612ad8565b611cdb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611e068282612abe565b611e7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611ec2576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611f1230612ad8565b15905090565b600054610100900460ff1680611f315750611f31611f07565b80611f3f575060005460ff16155b611f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806130e1602e913960400191505060405180910390fd5b600054610100900460ff16158015611ffa57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b612002612ade565b61200a612bf0565b8015610f1f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806120545750612054611f07565b80612062575060005460ff16155b6120b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806130e1602e913960400191505060405180910390fd5b600054610100900460ff1615801561211d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61200a6001612d80565b600054610100900460ff16806121405750612140611f07565b8061214e575060005460ff16155b6121a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806130e1602e913960400191505060405180910390fd5b600054610100900460ff1615801561220957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156113ca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b6000610a43826122c2612512565b612dc4565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061235857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161231b565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161241357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156124a257816001166001141561244f578284826020811061244557fe5b0155506113ca9050565b83816020811061245b57fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161249757fe5b049150600101612423565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610a43576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b61251a613079565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114612a9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a612ab486828585612e82565b9695505050505050565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff1680612af75750612af7611f07565b80612b05575060005460ff16155b612b5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806130e1602e913960400191505060405180910390fd5b600054610100900460ff1615801561200a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610f1f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680612c095750612c09611f07565b80612c17575060005460ff16155b612c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806130e1602e913960400191505060405180910390fd5b600054610100900460ff16158015612cd257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000612cdc611c63565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610f1f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610f1f5780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b6020820154600090815b6020811015612e7a57600182821c166000868360208110612deb57fe5b015490508160011415612e2e5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612e70565b84868460208110612e3b57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612dce565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612efd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130bf6022913960400191505060405180910390fd5b8360ff16601b1480612f1257508360ff16601c145b612f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061310f6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612fc3573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661307057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220a083406538d0dba4738d42ff9651ea0703c9f1b5a1f108515cf9002bdfc6139c64736f6c63430007060033"; export class TestHome__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/TestMessage__factory.ts b/typescript/typechain/abacus-core/factories/TestMessage__factory.ts index 95e311d2b..c7de569ef 100644 --- a/typescript/typechain/abacus-core/factories/TestMessage__factory.ts +++ b/typescript/typechain/abacus-core/factories/TestMessage__factory.ts @@ -162,7 +162,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50611605806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c97c703a1161005b578063c97c703a14610350578063cb3eb0e11461046b578063d7a7a72c14610511578063f45387ba146105b757610088565b80634e7650041461008d5780636dc3c4f71461014c578063985a5c3114610204578063c81aa9c8146102aa575b600080fd5b610133600480360360208110156100a357600080fd5b8101906020810181356401000000008111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460018302840111640100000000831117156100f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610686945050505050565b6040805163ffffffff9092168252519081900360200190f35b6101f26004803603602081101561016257600080fd5b81019060208101813564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106c4945050505050565b60408051918252519081900360200190f35b6101f26004803603602081101561021a57600080fd5b81019060208101813564010000000081111561023557600080fd5b82018360208201111561024757600080fd5b8035906020019184600183028401116401000000008311171561026957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106fa945050505050565b610133600480360360208110156102c057600080fd5b8101906020810181356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610730945050505050565b6103f66004803603602081101561036657600080fd5b81019060208101813564010000000081111561038157600080fd5b82018360208201111561039357600080fd5b803590602001918460018302840111640100000000831117156103b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610766945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610430578181015183820152602001610418565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101336004803603602081101561048157600080fd5b81019060208101813564010000000081111561049c57600080fd5b8201836020820111156104ae57600080fd5b803590602001918460018302840111640100000000831117156104d057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107c7945050505050565b6101f26004803603602081101561052757600080fd5b81019060208101813564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107fd945050505050565b61065d600480360360208110156105cd57600080fd5b8101906020810181356401000000008111156105e857600080fd5b8201836020820111156105fa57600080fd5b8035906020019184600183028401116401000000008311171561061c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610833945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60006106bc6106958383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001661088f565b90505b919050565b60006106bc6106d38383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108c0565b60006106bc6107098383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108f1565b60006106bc61073f8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610922565b60606106bc6107a0610779846000610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166109c4565b60006106bc6107d68383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a08565b60006106bc61080c8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a38565b60006106bc6108428383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a80565b81516000906020840161088464ffffffffff85168284610a93565b925050505b92915050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246004610af4565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004610af4565b60006106bc604c806109867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616610cc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff91909116036000610cd4565b60606000806109d284610cc0565b6bffffffffffffffffffffffff16905060405191508192506109f78483602001610d66565b508181016020016040529052919050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004610af4565b60006106bc610a4683610a08565b610a4f846108c0565b610a588561088f565b610a6186610922565b610a6a876108f1565b610a7b610a7689610953565b6109c4565b610e9c565b60006106bc610a8e836108f1565b610ebf565b600080610aa08484610ec2565b9050604051811115610ab0575060005b80610ade577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610aed565b610ae9858585610f34565b9150505b9392505050565b60008160200360080260ff16610b0b858585610b15565b901c949350505050565b600060ff8216610b2757506000610aed565b610b3084610cc0565b6bffffffffffffffffffffffff16610b4b8460ff8516610ec2565b1115610c2a57610b8c610b5d85610f47565b6bffffffffffffffffffffffff16610b7486610cc0565b6bffffffffffffffffffffffff16858560ff16610f5b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bef578181015183820152602001610bd7565b50505050905090810190601f168015610c1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610c87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061150e603a913960400191505060405180910390fd5b600882026000610c9686610f47565b6bffffffffffffffffffffffff1690506000610cb1836110b6565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b600080610ce086610f47565b6bffffffffffffffffffffffff169050610cf9866110ff565b610d0d85610d078489610ec2565b90610ec2565b1115610d3c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d5e565b610d468186610ec2565b9050610d5a8364ffffffffff168286610a93565b9150505b949350505050565b6000610d7183611129565b610dc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806115486028913960400191505060405180910390fd5b610dcf8361113b565b610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611570602b913960400191505060405180910390fd5b6000610e2f84610cc0565b6bffffffffffffffffffffffff1690506000610e4a85610f47565b6bffffffffffffffffffffffff1690506000604051905084811115610e6f5760206060fd5b8285848460045afa50610e92610e8487611178565b64ffffffffff168685610f34565b9695505050505050565b6000610eac87878787878761117e565b8051906020012090509695505050505050565b90565b8181018281101561088957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60781c6bffffffffffffffffffffffff1690565b60606000610f6886611254565b9150506000610f7686611254565b9150506000610f8486611254565b9150506000610f9286611254565b91505083838383604051602001808061159b603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114ed82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600061110a82610cc0565b61111383610f47565b016bffffffffffffffffffffffff169050919050565b600061113482611328565b1592915050565b600061114682611178565b64ffffffffff1664ffffffffff1415611161575060006106bf565b600061116c836110ff565b60405110199392505050565b60d81c90565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061120f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111d2565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b600080601f5b600f8160ff1611156112bc5760ff600882021684901c61127981611350565b61ffff16841793508160ff1660101461129457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161125a565b50600f5b60ff8160ff1610156113225760ff600882021684901c6112df81611350565b61ffff16831792508160ff166000146112fa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016112c0565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061136260048360ff16901c611380565b60ff161760081b62ffff001661137782611380565b60ff1617919050565b600060f08083179060ff8216141561139c5760309150506106bf565b8060ff1660f114156113b25760319150506106bf565b8060ff1660f214156113c85760329150506106bf565b8060ff1660f314156113de5760339150506106bf565b8060ff1660f414156113f45760349150506106bf565b8060ff1660f5141561140a5760359150506106bf565b8060ff1660f614156114205760369150506106bf565b8060ff1660f714156114365760379150506106bf565b8060ff1660f8141561144c5760389150506106bf565b8060ff1660f914156114625760399150506106bf565b8060ff1660fa14156114785760619150506106bf565b8060ff1660fb141561148e5760629150506106bf565b8060ff1660fc14156114a45760639150506106bf565b8060ff1660fd14156114ba5760649150506106bf565b8060ff1660fe14156114d05760659150506106bf565b8060ff1660ff14156114e65760669150506106bf565b5091905056fe2e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212201f4bdeee6bfd1109c5e1f86a690f77a080658f8fb68718dba6d37d9f09082fd464736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50611605806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c97c703a1161005b578063c97c703a14610350578063cb3eb0e11461046b578063d7a7a72c14610511578063f45387ba146105b757610088565b80634e7650041461008d5780636dc3c4f71461014c578063985a5c3114610204578063c81aa9c8146102aa575b600080fd5b610133600480360360208110156100a357600080fd5b8101906020810181356401000000008111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460018302840111640100000000831117156100f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610686945050505050565b6040805163ffffffff9092168252519081900360200190f35b6101f26004803603602081101561016257600080fd5b81019060208101813564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106c4945050505050565b60408051918252519081900360200190f35b6101f26004803603602081101561021a57600080fd5b81019060208101813564010000000081111561023557600080fd5b82018360208201111561024757600080fd5b8035906020019184600183028401116401000000008311171561026957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106fa945050505050565b610133600480360360208110156102c057600080fd5b8101906020810181356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610730945050505050565b6103f66004803603602081101561036657600080fd5b81019060208101813564010000000081111561038157600080fd5b82018360208201111561039357600080fd5b803590602001918460018302840111640100000000831117156103b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610766945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610430578181015183820152602001610418565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101336004803603602081101561048157600080fd5b81019060208101813564010000000081111561049c57600080fd5b8201836020820111156104ae57600080fd5b803590602001918460018302840111640100000000831117156104d057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107c7945050505050565b6101f26004803603602081101561052757600080fd5b81019060208101813564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107fd945050505050565b61065d600480360360208110156105cd57600080fd5b8101906020810181356401000000008111156105e857600080fd5b8201836020820111156105fa57600080fd5b8035906020019184600183028401116401000000008311171561061c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610833945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60006106bc6106958383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001661088f565b90505b919050565b60006106bc6106d38383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108c0565b60006106bc6107098383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108f1565b60006106bc61073f8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610922565b60606106bc6107a0610779846000610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166109c4565b60006106bc6107d68383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a08565b60006106bc61080c8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a38565b60006106bc6108428383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a80565b81516000906020840161088464ffffffffff85168284610a93565b925050505b92915050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246004610af4565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004610af4565b60006106bc604c806109867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616610cc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff91909116036000610cd4565b60606000806109d284610cc0565b6bffffffffffffffffffffffff16905060405191508192506109f78483602001610d66565b508181016020016040529052919050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004610af4565b60006106bc610a4683610a08565b610a4f846108c0565b610a588561088f565b610a6186610922565b610a6a876108f1565b610a7b610a7689610953565b6109c4565b610e9c565b60006106bc610a8e836108f1565b610ebf565b600080610aa08484610ec2565b9050604051811115610ab0575060005b80610ade577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610aed565b610ae9858585610f34565b9150505b9392505050565b60008160200360080260ff16610b0b858585610b15565b901c949350505050565b600060ff8216610b2757506000610aed565b610b3084610cc0565b6bffffffffffffffffffffffff16610b4b8460ff8516610ec2565b1115610c2a57610b8c610b5d85610f47565b6bffffffffffffffffffffffff16610b7486610cc0565b6bffffffffffffffffffffffff16858560ff16610f5b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bef578181015183820152602001610bd7565b50505050905090810190601f168015610c1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610c87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061150e603a913960400191505060405180910390fd5b600882026000610c9686610f47565b6bffffffffffffffffffffffff1690506000610cb1836110b6565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b600080610ce086610f47565b6bffffffffffffffffffffffff169050610cf9866110ff565b610d0d85610d078489610ec2565b90610ec2565b1115610d3c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d5e565b610d468186610ec2565b9050610d5a8364ffffffffff168286610a93565b9150505b949350505050565b6000610d7183611129565b610dc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806115486028913960400191505060405180910390fd5b610dcf8361113b565b610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611570602b913960400191505060405180910390fd5b6000610e2f84610cc0565b6bffffffffffffffffffffffff1690506000610e4a85610f47565b6bffffffffffffffffffffffff1690506000604051905084811115610e6f5760206060fd5b8285848460045afa50610e92610e8487611178565b64ffffffffff168685610f34565b9695505050505050565b6000610eac87878787878761117e565b8051906020012090509695505050505050565b90565b8181018281101561088957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60781c6bffffffffffffffffffffffff1690565b60606000610f6886611254565b9150506000610f7686611254565b9150506000610f8486611254565b9150506000610f9286611254565b91505083838383604051602001808061159b603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114ed82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600061110a82610cc0565b61111383610f47565b016bffffffffffffffffffffffff169050919050565b600061113482611328565b1592915050565b600061114682611178565b64ffffffffff1664ffffffffff1415611161575060006106bf565b600061116c836110ff565b60405110199392505050565b60d81c90565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061120f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111d2565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b600080601f5b600f8160ff1611156112bc5760ff600882021684901c61127981611350565b61ffff16841793508160ff1660101461129457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161125a565b50600f5b60ff8160ff1610156113225760ff600882021684901c6112df81611350565b61ffff16831792508160ff166000146112fa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016112c0565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061136260048360ff16901c611380565b60ff161760081b62ffff001661137782611380565b60ff1617919050565b600060f08083179060ff8216141561139c5760309150506106bf565b8060ff1660f114156113b25760319150506106bf565b8060ff1660f214156113c85760329150506106bf565b8060ff1660f314156113de5760339150506106bf565b8060ff1660f414156113f45760349150506106bf565b8060ff1660f5141561140a5760359150506106bf565b8060ff1660f614156114205760369150506106bf565b8060ff1660f714156114365760379150506106bf565b8060ff1660f8141561144c5760389150506106bf565b8060ff1660f914156114625760399150506106bf565b8060ff1660fa14156114785760619150506106bf565b8060ff1660fb141561148e5760629150506106bf565b8060ff1660fc14156114a45760639150506106bf565b8060ff1660fd14156114ba5760649150506106bf565b8060ff1660fe14156114d05760659150506106bf565b8060ff1660ff14156114e65760669150506106bf565b5091905056fe2e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212208cc38ae70db486afe92e596c7f8ad9a9df32a51d9bf1df9052b2c68f9cb7d20764736f6c63430007060033"; export class TestMessage__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/TestReplica__factory.ts b/typescript/typechain/abacus-core/factories/TestReplica__factory.ts index b3541ca2a..e46c7dfa4 100644 --- a/typescript/typechain/abacus-core/factories/TestReplica__factory.ts +++ b/typescript/typechain/abacus-core/factories/TestReplica__factory.ts @@ -653,7 +653,7 @@ const _abi = [ ]; const _bytecode = - "0x60e060405234801561001057600080fd5b506040516130863803806130868339818101604052606081101561003357600080fd5b50516001600160e01b031960e082901b16608052620cf85060a0819052613a9860c081905263ffffffff90921691612fee61009860003980610b165280611019525080610ff852806110f0528061186e525080610d745280610dc85250612fee6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063961681dc11610104578063b61c19e8116100a2578063df034cd011610071578063df034cd014610807578063e7e7a7b71461080f578063f2fde38b1461085a578063ffa1ad741461088d576101da565b8063b61c19e814610749578063b80777ea146107ef578063c19d93fb146107f7578063d88beda2146107ff576101da565b80639d54f419116100de5780639d54f4191461062a578063a33a31131461065d578063a3f81d681461067a578063b31c01fb14610697576101da565b8063961681dc1461055257806396ae1a891461055a5780639868a27314610600576101da565b80635146366e1161017c57806371bfb7b81161014b57806371bfb7b81461043d5780638d3638f41461045a5780638da5cb5b1461047b578063928bc4b2146104ac576101da565b80635146366e1461035c57806351d7bcd7146103645780636188af0e1461038757806367a6771d14610435576101da565b80632bbd59ca116101b85780632bbd59ca146102d0578063371d30711461030e578063399926681461034c57806345630b1a14610354576101da565b8063146901db146101df57806319d9d21a146101e957806325e3beda146102b6575b600080fd5b6101e76108ab565b005b6101e7600480360360a08110156101ff57600080fd5b813591602081019181019060808101606082013564010000000081111561022557600080fd5b82018360208201111561023757600080fd5b8035906020019184600183028401116401000000008311171561025957600080fd5b91939092909160208101903564010000000081111561027757600080fd5b82018360208201111561028957600080fd5b803590602001918460018302840111640100000000831117156102ab57600080fd5b5090925090506108b5565b6102be610b14565b60408051918252519081900360200190f35b6102ed600480360360208110156102e657600080fd5b5035610b38565b604051808260028111156102fd57fe5b815260200191505060405180910390f35b610338600480360361044081101561032557600080fd5b5080359060208101906104200135610b4d565b604080519115158252519081900360200190f35b6102be610c6d565b6102be610c73565b6102be610c8d565b6101e76004803603602081101561037a57600080fd5b503563ffffffff16610c97565b6101e7600480360361044081101561039e57600080fd5b8101906020810181356401000000008111156103b957600080fd5b8201836020820111156103cb57600080fd5b803590602001918460018302840111640100000000831117156103ed57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610cce565b6102be610d5a565b6102be6004803603602081101561045357600080fd5b5035610d60565b610462610d72565b6040805163ffffffff9092168252519081900360200190f35b610483610d96565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610338600480360360208110156104c257600080fd5b8101906020810181356401000000008111156104dd57600080fd5b8201836020820111156104ef57600080fd5b8035906020019184600183028401116401000000008311171561051157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610db2945050505050565b6104626113f5565b6103386004803603602081101561057057600080fd5b81019060208101813564010000000081111561058b57600080fd5b82018360208201111561059d57600080fd5b803590602001918460018302840111640100000000831117156105bf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611401945050505050565b6102be600480360361044081101561061757600080fd5b5080359060208101906104200135611412565b6101e76004803603602081101561064057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611450565b6101e76004803603602081101561067357600080fd5b503561152b565b6103386004803603602081101561069057600080fd5b5035611542565b6101e7600480360360608110156106ad57600080fd5b8135916020810135918101906060810160408201356401000000008111156106d457600080fd5b8201836020820111156106e657600080fd5b8035906020019184600183028401116401000000008311171561070857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061156b945050505050565b6101e76004803603602081101561075f57600080fd5b81019060208101813564010000000081111561077a57600080fd5b82018360208201111561078c57600080fd5b803590602001918460018302840111640100000000831117156107ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117bb945050505050565b6102be611845565b6102ed611849565b6102be61186c565b610483611890565b6101e76004803603608081101561082557600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff60208201351690604081013590606001356118b2565b6101e76004803603602081101561087057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611a52565b610895611c31565b6040805160ff9092168252519081900360200190f35b6108b3611c36565b565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156108e257fe5b141561094f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526109919188918835918890889081908401838280828437600092019190915250611c7992505050565b80156109e057506109e086866001602002013584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7992505050565b80156109f157508435602086013514155b15610b0c576109fe6108ab565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff166002811115610b6d57fe5b14610bd957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b6000610c0f858560208060200260405190810160405280929190826020800280828437600092019190915250879150611d119050565b9050610c1a81611542565b15610c60575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610c66565b60009150505b9392505050565b60325481565b603154600090610c889063ffffffff16611dbc565b905090565b6000610c88610c73565b603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff92909216919091179055565b610ce083805190602001208383610b4d565b610d4b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610d5483610db2565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610dbf8382611e31565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610e137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611e55565b63ffffffff1614610e8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610eb27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611e86565b9050600160008281526035602052604090205460ff166002811115610ed357fe5b14610f3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610fb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a10156110a957604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006110d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611ec5565b6040805161010080825261012082019092529192506000917f000000000000000000000000000000000000000000000000000000000000000090839083602082018180368337019050509050600061114f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611ed8565b61117a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611f08565b6111cf6111a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611f39565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611faa565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611221578181015183820152602001611209565b50505050905090810190601f16801561124e5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d9450838511156112ed578394505b848252846000602084013e816040518082805190602001908083835b6020831061134657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611309565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061140c82610db2565b92915050565b6000611448848460208060200260405190810160405280929190826020800280828437600092019190915250869150611d119050565b949350505050565b600061145a610d96565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114b057506000611498610d96565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061151e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61152782611fee565b5050565b600181815560009182526034602052604090912055565b60008181526034602052604081205480611560576000915050611566565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff16600281111561159857fe5b141561160557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461167557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b611680838383611c79565b6116eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6116f36108b3565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b8381101561177c578181015183820152602001611764565b50505050905090810190601f1680156117a95780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b60006117c78282611e31565b90506001603560006117fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611e86565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600281111561183c57fe5b02179055505050565b4290565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806118cb57506118cb61206f565b806118d9575060005460ff16155b61192e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ea7602e913960400191505060405180910390fd5b600054610100900460ff1615801561199457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61199d84612080565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff88161790558381556000848152603460205260409020556032829055611a1c33611a52565b8015611a4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b6000611a5c610d96565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ab257506000611a9a610d96565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611b2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216611ba257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611c84610c73565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611cc581612214565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff16611cf18285612265565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b8260005b6020811015611db457600183821c166000858360208110611d3257fe5b602002015190508160011415611d785780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611daa565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611d15565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611e4c64ffffffffff851682846122ff565b95945050505050565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612355565b600080611e9283612376565b6bffffffffffffffffffffffff1690506000611ead8461238a565b6bffffffffffffffffffffffff169091209392505050565b600061140c611ed38361239e565b6123cf565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612355565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206123d2565b600061140c604c80611f6c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661238a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061257d565b6060600080611fb88461238a565b6bffffffffffffffffffffffff1690506040519150819250611fdd8483602001612603565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b600061207a3061272f565b15905090565b600054610100900460ff1680612099575061209961206f565b806120a7575060005460ff16155b6120fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ea7602e913960400191505060405180910390fd5b600054610100900460ff1615801561216257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561152757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6122f586828585612735565b9695505050505050565b60008061230c8484612923565b905060405181111561231c575060005b8061234a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610c66565b611e4c858585612995565b60008160200360080260ff1661236c8585856123d2565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206123d2565b90565b600060ff82166123e457506000610c66565b6123ed8461238a565b6bffffffffffffffffffffffff166124088460ff8516612923565b11156124e75761244961241a85612376565b6bffffffffffffffffffffffff166124318661238a565b6bffffffffffffffffffffffff16858560ff166129a8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124ac578181015183820152602001612494565b50505050905090810190601f1680156124d95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612ef7603a913960400191505060405180910390fd5b60088202600061255386612376565b6bffffffffffffffffffffffff169050600061256e83612b03565b91909501511695945050505050565b60008061258986612376565b6bffffffffffffffffffffffff1690506125a286612b4c565b6125b6856125b08489612923565b90612923565b11156125e5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611448565b6125ef8186612923565b90506122f58364ffffffffff1682866122ff565b600061260e83612b76565b612663576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612f316028913960400191505060405180910390fd5b61266c83612b88565b6126c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612f59602b913960400191505060405180910390fd5b60006126cc8461238a565b6bffffffffffffffffffffffff16905060006126e785612376565b6bffffffffffffffffffffffff169050600060405190508481111561270c5760206060fd5b8285848460045afa506122f561272187612bc5565b64ffffffffff168685612995565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156127b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e646022913960400191505060405180910390fd5b8360ff16601b14806127c557508360ff16601c145b61281a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ed56022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612876573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611e4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b8181018281101561140c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b606060006129b586612bcb565b91505060006129c386612bcb565b91505060006129d186612bcb565b91505060006129df86612bcb565b915050838383836040516020018080612f84603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612e8682397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612b578261238a565b612b6083612376565b016bffffffffffffffffffffffff169050919050565b6000612b8182612c9f565b1592915050565b6000612b9382612bc5565b64ffffffffff1664ffffffffff1415612bae57506000611566565b6000612bb983612b4c565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff161115612c335760ff600882021684901c612bf081612cc7565b61ffff16841793508160ff16601014612c0b57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612bd1565b50600f5b60ff8160ff161015612c995760ff600882021684901c612c5681612cc7565b61ffff16831792508160ff16600014612c7157601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612c37565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000612cd960048360ff16901c612cf7565b60ff161760081b62ffff0016612cee82612cf7565b60ff1617919050565b600060f08083179060ff82161415612d13576030915050611566565b8060ff1660f11415612d29576031915050611566565b8060ff1660f21415612d3f576032915050611566565b8060ff1660f31415612d55576033915050611566565b8060ff1660f41415612d6b576034915050611566565b8060ff1660f51415612d81576035915050611566565b8060ff1660f61415612d97576036915050611566565b8060ff1660f71415612dad576037915050611566565b8060ff1660f81415612dc3576038915050611566565b8060ff1660f91415612dd9576039915050611566565b8060ff1660fa1415612def576061915050611566565b8060ff1660fb1415612e05576062915050611566565b8060ff1660fc1415612e1b576063915050611566565b8060ff1660fd1415612e31576064915050611566565b8060ff1660fe1415612e47576065915050611566565b8060ff1660ff1415612e5d576066915050611566565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220828b04f5085dfa76f104c649ef8da4f835cf2df38397e7445def379cd465d64b64736f6c63430007060033"; + "0x60e060405234801561001057600080fd5b506040516130863803806130868339818101604052606081101561003357600080fd5b50516001600160e01b031960e082901b16608052620cf85060a0819052613a9860c081905263ffffffff90921691612fee61009860003980610b165280611019525080610ff852806110f0528061186e525080610d745280610dc85250612fee6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063961681dc11610104578063b61c19e8116100a2578063df034cd011610071578063df034cd014610807578063e7e7a7b71461080f578063f2fde38b1461085a578063ffa1ad741461088d576101da565b8063b61c19e814610749578063b80777ea146107ef578063c19d93fb146107f7578063d88beda2146107ff576101da565b80639d54f419116100de5780639d54f4191461062a578063a33a31131461065d578063a3f81d681461067a578063b31c01fb14610697576101da565b8063961681dc1461055257806396ae1a891461055a5780639868a27314610600576101da565b80635146366e1161017c57806371bfb7b81161014b57806371bfb7b81461043d5780638d3638f41461045a5780638da5cb5b1461047b578063928bc4b2146104ac576101da565b80635146366e1461035c57806351d7bcd7146103645780636188af0e1461038757806367a6771d14610435576101da565b80632bbd59ca116101b85780632bbd59ca146102d0578063371d30711461030e578063399926681461034c57806345630b1a14610354576101da565b8063146901db146101df57806319d9d21a146101e957806325e3beda146102b6575b600080fd5b6101e76108ab565b005b6101e7600480360360a08110156101ff57600080fd5b813591602081019181019060808101606082013564010000000081111561022557600080fd5b82018360208201111561023757600080fd5b8035906020019184600183028401116401000000008311171561025957600080fd5b91939092909160208101903564010000000081111561027757600080fd5b82018360208201111561028957600080fd5b803590602001918460018302840111640100000000831117156102ab57600080fd5b5090925090506108b5565b6102be610b14565b60408051918252519081900360200190f35b6102ed600480360360208110156102e657600080fd5b5035610b38565b604051808260028111156102fd57fe5b815260200191505060405180910390f35b610338600480360361044081101561032557600080fd5b5080359060208101906104200135610b4d565b604080519115158252519081900360200190f35b6102be610c6d565b6102be610c73565b6102be610c8d565b6101e76004803603602081101561037a57600080fd5b503563ffffffff16610c97565b6101e7600480360361044081101561039e57600080fd5b8101906020810181356401000000008111156103b957600080fd5b8201836020820111156103cb57600080fd5b803590602001918460018302840111640100000000831117156103ed57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610cce565b6102be610d5a565b6102be6004803603602081101561045357600080fd5b5035610d60565b610462610d72565b6040805163ffffffff9092168252519081900360200190f35b610483610d96565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610338600480360360208110156104c257600080fd5b8101906020810181356401000000008111156104dd57600080fd5b8201836020820111156104ef57600080fd5b8035906020019184600183028401116401000000008311171561051157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610db2945050505050565b6104626113f5565b6103386004803603602081101561057057600080fd5b81019060208101813564010000000081111561058b57600080fd5b82018360208201111561059d57600080fd5b803590602001918460018302840111640100000000831117156105bf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611401945050505050565b6102be600480360361044081101561061757600080fd5b5080359060208101906104200135611412565b6101e76004803603602081101561064057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611450565b6101e76004803603602081101561067357600080fd5b503561152b565b6103386004803603602081101561069057600080fd5b5035611542565b6101e7600480360360608110156106ad57600080fd5b8135916020810135918101906060810160408201356401000000008111156106d457600080fd5b8201836020820111156106e657600080fd5b8035906020019184600183028401116401000000008311171561070857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061156b945050505050565b6101e76004803603602081101561075f57600080fd5b81019060208101813564010000000081111561077a57600080fd5b82018360208201111561078c57600080fd5b803590602001918460018302840111640100000000831117156107ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117bb945050505050565b6102be611845565b6102ed611849565b6102be61186c565b610483611890565b6101e76004803603608081101561082557600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff60208201351690604081013590606001356118b2565b6101e76004803603602081101561087057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611a52565b610895611c31565b6040805160ff9092168252519081900360200190f35b6108b3611c36565b565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156108e257fe5b141561094f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526109919188918835918890889081908401838280828437600092019190915250611c7992505050565b80156109e057506109e086866001602002013584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7992505050565b80156109f157508435602086013514155b15610b0c576109fe6108ab565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff166002811115610b6d57fe5b14610bd957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b6000610c0f858560208060200260405190810160405280929190826020800280828437600092019190915250879150611d119050565b9050610c1a81611542565b15610c60575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610c66565b60009150505b9392505050565b60325481565b603154600090610c889063ffffffff16611dbc565b905090565b6000610c88610c73565b603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff92909216919091179055565b610ce083805190602001208383610b4d565b610d4b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610d5483610db2565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610dbf8382611e31565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610e137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611e55565b63ffffffff1614610e8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610eb27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611e86565b9050600160008281526035602052604090205460ff166002811115610ed357fe5b14610f3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610fb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a10156110a957604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006110d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611ec5565b6040805161010080825261012082019092529192506000917f000000000000000000000000000000000000000000000000000000000000000090839083602082018180368337019050509050600061114f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611ed8565b61117a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611f08565b6111cf6111a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611f39565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611faa565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611221578181015183820152602001611209565b50505050905090810190601f16801561124e5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d9450838511156112ed578394505b848252846000602084013e816040518082805190602001908083835b6020831061134657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611309565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061140c82610db2565b92915050565b6000611448848460208060200260405190810160405280929190826020800280828437600092019190915250869150611d119050565b949350505050565b600061145a610d96565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114b057506000611498610d96565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061151e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61152782611fee565b5050565b600181815560009182526034602052604090912055565b60008181526034602052604081205480611560576000915050611566565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff16600281111561159857fe5b141561160557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461167557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b611680838383611c79565b6116eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6116f36108b3565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b8381101561177c578181015183820152602001611764565b50505050905090810190601f1680156117a95780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b60006117c78282611e31565b90506001603560006117fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611e86565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600281111561183c57fe5b02179055505050565b4290565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806118cb57506118cb61206f565b806118d9575060005460ff16155b61192e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ea7602e913960400191505060405180910390fd5b600054610100900460ff1615801561199457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61199d84612080565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff88161790558381556000848152603460205260409020556032829055611a1c33611a52565b8015611a4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b6000611a5c610d96565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ab257506000611a9a610d96565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611b2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216611ba257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611c84610c73565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611cc581612214565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff16611cf18285612265565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b8260005b6020811015611db457600183821c166000858360208110611d3257fe5b602002015190508160011415611d785780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611daa565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611d15565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611e4c64ffffffffff851682846122ff565b95945050505050565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612355565b600080611e9283612376565b6bffffffffffffffffffffffff1690506000611ead8461238a565b6bffffffffffffffffffffffff169091209392505050565b600061140c611ed38361239e565b6123cf565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612355565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206123d2565b600061140c604c80611f6c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661238a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061257d565b6060600080611fb88461238a565b6bffffffffffffffffffffffff1690506040519150819250611fdd8483602001612603565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b600061207a3061272f565b15905090565b600054610100900460ff1680612099575061209961206f565b806120a7575060005460ff16155b6120fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ea7602e913960400191505060405180910390fd5b600054610100900460ff1615801561216257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561152757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6122f586828585612735565b9695505050505050565b60008061230c8484612923565b905060405181111561231c575060005b8061234a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610c66565b611e4c858585612995565b60008160200360080260ff1661236c8585856123d2565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b600061140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206123d2565b90565b600060ff82166123e457506000610c66565b6123ed8461238a565b6bffffffffffffffffffffffff166124088460ff8516612923565b11156124e75761244961241a85612376565b6bffffffffffffffffffffffff166124318661238a565b6bffffffffffffffffffffffff16858560ff166129a8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124ac578181015183820152602001612494565b50505050905090810190601f1680156124d95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612ef7603a913960400191505060405180910390fd5b60088202600061255386612376565b6bffffffffffffffffffffffff169050600061256e83612b03565b91909501511695945050505050565b60008061258986612376565b6bffffffffffffffffffffffff1690506125a286612b4c565b6125b6856125b08489612923565b90612923565b11156125e5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611448565b6125ef8186612923565b90506122f58364ffffffffff1682866122ff565b600061260e83612b76565b612663576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612f316028913960400191505060405180910390fd5b61266c83612b88565b6126c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612f59602b913960400191505060405180910390fd5b60006126cc8461238a565b6bffffffffffffffffffffffff16905060006126e785612376565b6bffffffffffffffffffffffff169050600060405190508481111561270c5760206060fd5b8285848460045afa506122f561272187612bc5565b64ffffffffff168685612995565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156127b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e646022913960400191505060405180910390fd5b8360ff16601b14806127c557508360ff16601c145b61281a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ed56022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612876573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611e4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b8181018281101561140c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b606060006129b586612bcb565b91505060006129c386612bcb565b91505060006129d186612bcb565b91505060006129df86612bcb565b915050838383836040516020018080612f84603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612e8682397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612b578261238a565b612b6083612376565b016bffffffffffffffffffffffff169050919050565b6000612b8182612c9f565b1592915050565b6000612b9382612bc5565b64ffffffffff1664ffffffffff1415612bae57506000611566565b6000612bb983612b4c565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff161115612c335760ff600882021684901c612bf081612cc7565b61ffff16841793508160ff16601014612c0b57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612bd1565b50600f5b60ff8160ff161015612c995760ff600882021684901c612c5681612cc7565b61ffff16831792508160ff16600014612c7157601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612c37565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000612cd960048360ff16901c612cf7565b60ff161760081b62ffff0016612cee82612cf7565b60ff1617919050565b600060f08083179060ff82161415612d13576030915050611566565b8060ff1660f11415612d29576031915050611566565b8060ff1660f21415612d3f576032915050611566565b8060ff1660f31415612d55576033915050611566565b8060ff1660f41415612d6b576034915050611566565b8060ff1660f51415612d81576035915050611566565b8060ff1660f61415612d97576036915050611566565b8060ff1660f71415612dad576037915050611566565b8060ff1660f81415612dc3576038915050611566565b8060ff1660f91415612dd9576039915050611566565b8060ff1660fa1415612def576061915050611566565b8060ff1660fb1415612e05576062915050611566565b8060ff1660fc1415612e1b576063915050611566565b8060ff1660fd1415612e31576064915050611566565b8060ff1660fe1415612e47576065915050611566565b8060ff1660ff1415612e5d576066915050611566565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212204c558f72d0343d8276ef93d95ddcd56fb89d18d5742f1b18cfd2095ec5164e9564736f6c63430007060033"; export class TestReplica__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/TestXAppConnectionManager__factory.ts b/typescript/typechain/abacus-core/factories/TestXAppConnectionManager__factory.ts index 0d57fd85e..a51f46735 100644 --- a/typescript/typechain/abacus-core/factories/TestXAppConnectionManager__factory.ts +++ b/typescript/typechain/abacus-core/factories/TestXAppConnectionManager__factory.ts @@ -364,7 +364,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6115828061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b9cff16211610066578063b9cff1621461039d578063e0e7a913146103c0578063f2fde38b14610478578063f31faefb146104ab576100f5565b80638da5cb5b146103135780638f5d90e01461031b578063916c34701461034e5780639fa92f9d14610395576100f5565b80635f8b1dba116100d35780635f8b1dba146102825780636ef0f37f146102ce578063715018a6146103035780638d3638f41461030b576100f5565b806323738500146100fa578063427ebef5146101fc5780635190bc531461024f575b600080fd5b6101d36004803603608081101561011057600080fd5b63ffffffff8235169173ffffffffffffffffffffffffffffffffffffffff60208201358116926040830135909116919081019060808101606082013564010000000081111561015e57600080fd5b82018360208201111561017057600080fd5b8035906020019184600183028401116401000000008311171561019257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104ea945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023b6004803603604081101561021257600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610511565b604080519115158252519081900360200190f35b61023b6004803603602081101561026557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610551565b6102b56004803603602081101561029857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610581565b6040805163ffffffff9092168252519081900360200190f35b610301600480360360208110156102e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610599565b005b610301610688565b6102b561079f565b6101d361083b565b6103016004803603602081101561033157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610857565b6103016004803603606081101561036457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff6020820135169060400135151561090b565b6101d3610a59565b6101d3600480360360208110156103b357600080fd5b503563ffffffff16610a75565b610301600480360360608110156103d657600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a9d945050505050565b6103016004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d16565b610301600480360360408110156104c157600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610eb7565b6000610508856104f98661102b565b6105028661102b565b85611044565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b6105a161113a565b73ffffffffffffffffffffffffffffffffffffffff166105bf61083b565b73ffffffffffffffffffffffffffffffffffffffff161461064157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61069061113a565b73ffffffffffffffffffffffffffffffffffffffff166106ae61083b565b73ffffffffffffffffffffffffffffffffffffffff161461073057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61085f61113a565b73ffffffffffffffffffffffffffffffffffffffff1661087d61083b565b73ffffffffffffffffffffffffffffffffffffffff16146108ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109088161113e565b50565b61091361113a565b73ffffffffffffffffffffffffffffffffffffffff1661093161083b565b73ffffffffffffffffffffffffffffffffffffffff16146109b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b3557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610b3e83611206565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610c4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610c5e85610c578461102b565b8686611044565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610d0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610d0f8261113e565b5050505050565b610d1e61113a565b73ffffffffffffffffffffffffffffffffffffffff16610d3c61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610dbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610e2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114e36026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ebf61113a565b73ffffffffffffffffffffffffffffffffffffffff16610edd61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f688261113e565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061105085611206565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109557600080fd5b505afa1580156110a9573d6000803e3d6000fd5b505050506040513d60208110156110bf57600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b16828401526044808301899052835180840390910181526064909201909252805191012090915061112381611209565b905061112f818561125a565b979650505050505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146112cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6112ea868285856112f4565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561136f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115096022913960400191505060405180910390fd5b8360ff16601b148061138457508360ff16601c145b6113d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061152b6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611435573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661050857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220938303ba44b511c2043c6c704dc77e37fd8406775b1a38873343c6a12453871d64736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6115828061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b9cff16211610066578063b9cff1621461039d578063e0e7a913146103c0578063f2fde38b14610478578063f31faefb146104ab576100f5565b80638da5cb5b146103135780638f5d90e01461031b578063916c34701461034e5780639fa92f9d14610395576100f5565b80635f8b1dba116100d35780635f8b1dba146102825780636ef0f37f146102ce578063715018a6146103035780638d3638f41461030b576100f5565b806323738500146100fa578063427ebef5146101fc5780635190bc531461024f575b600080fd5b6101d36004803603608081101561011057600080fd5b63ffffffff8235169173ffffffffffffffffffffffffffffffffffffffff60208201358116926040830135909116919081019060808101606082013564010000000081111561015e57600080fd5b82018360208201111561017057600080fd5b8035906020019184600183028401116401000000008311171561019257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104ea945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023b6004803603604081101561021257600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610511565b604080519115158252519081900360200190f35b61023b6004803603602081101561026557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610551565b6102b56004803603602081101561029857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610581565b6040805163ffffffff9092168252519081900360200190f35b610301600480360360208110156102e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610599565b005b610301610688565b6102b561079f565b6101d361083b565b6103016004803603602081101561033157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610857565b6103016004803603606081101561036457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff6020820135169060400135151561090b565b6101d3610a59565b6101d3600480360360208110156103b357600080fd5b503563ffffffff16610a75565b610301600480360360608110156103d657600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a9d945050505050565b6103016004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d16565b610301600480360360408110156104c157600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610eb7565b6000610508856104f98661102b565b6105028661102b565b85611044565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b6105a161113a565b73ffffffffffffffffffffffffffffffffffffffff166105bf61083b565b73ffffffffffffffffffffffffffffffffffffffff161461064157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61069061113a565b73ffffffffffffffffffffffffffffffffffffffff166106ae61083b565b73ffffffffffffffffffffffffffffffffffffffff161461073057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61085f61113a565b73ffffffffffffffffffffffffffffffffffffffff1661087d61083b565b73ffffffffffffffffffffffffffffffffffffffff16146108ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109088161113e565b50565b61091361113a565b73ffffffffffffffffffffffffffffffffffffffff1661093161083b565b73ffffffffffffffffffffffffffffffffffffffff16146109b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b3557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610b3e83611206565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610c4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610c5e85610c578461102b565b8686611044565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610d0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610d0f8261113e565b5050505050565b610d1e61113a565b73ffffffffffffffffffffffffffffffffffffffff16610d3c61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610dbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610e2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114e36026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ebf61113a565b73ffffffffffffffffffffffffffffffffffffffff16610edd61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f688261113e565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061105085611206565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109557600080fd5b505afa1580156110a9573d6000803e3d6000fd5b505050506040513d60208110156110bf57600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b16828401526044808301899052835180840390910181526064909201909252805191012090915061112381611209565b905061112f818561125a565b979650505050505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146112cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6112ea868285856112f4565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561136f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115096022913960400191505060405180910390fd5b8360ff16601b148061138457508360ff16601c145b6113d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061152b6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611435573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661050857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220b71915eb199ce2a3040a136b927f60cecd28c12b61b850952dc5dec161d97be464736f6c63430007060033"; export class TestXAppConnectionManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/UpdaterManager__factory.ts b/typescript/typechain/abacus-core/factories/UpdaterManager__factory.ts index 91d61de24..a78be4806 100644 --- a/typescript/typechain/abacus-core/factories/UpdaterManager__factory.ts +++ b/typescript/typechain/abacus-core/factories/UpdaterManager__factory.ts @@ -160,7 +160,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040526040516109663803806109668339818101604052602081101561002657600080fd5b505160006100326100a1565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b03929092169190911790556100a5565b3390565b6108b2806100b46000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f25780639d54f41914610123578063df034cd014610156578063f2fde38b1461015e5761007d565b80635b3c2cbf146100825780636ef0f37f146100b7578063715018a6146100ea575b600080fd5b6100b56004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610191565b005b6100b5600480360360208110156100cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610263565b6100b56103f8565b6100fa61050f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b56004803603602081101561013957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661052b565b6100fa61068f565b6100b56004803603602081101561017457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ab565b60015473ffffffffffffffffffffffffffffffffffffffff16331461021757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21686f6d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f4180932f5f5f11458bcd408e42c54626987799e7c4c89f40f484fefdfdfff14f9181900360200190a150565b61026b61084c565b73ffffffffffffffffffffffffffffffffffffffff1661028961050f565b73ffffffffffffffffffffffffffffffffffffffff161461030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61031481610850565b61037f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f21636f6e747261637420686f6d65000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fa6c230e5615262e310dcb42eaf014e813e5d8580abf5b00d2186ca8e9833de219181900360200190a150565b61040061084c565b73ffffffffffffffffffffffffffffffffffffffff1661041e61050f565b73ffffffffffffffffffffffffffffffffffffffff16146104a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61053361084c565b73ffffffffffffffffffffffffffffffffffffffff1661055161050f565b73ffffffffffffffffffffffffffffffffffffffff16146105d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600154604080517f9d54f419000000000000000000000000000000000000000000000000000000008152600481019390935251921691639d54f4199160248082019260009290919082900301818387803b15801561067457600080fd5b505af1158015610688573d6000803e3d6000fd5b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6106b361084c565b73ffffffffffffffffffffffffffffffffffffffff166106d161050f565b73ffffffffffffffffffffffffffffffffffffffff161461075357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108576026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220446cabcffbfce4c6f0050d15d7a3631c806e11b281f436064d94b0910d3146aa64736f6c63430007060033"; + "0x60806040526040516109663803806109668339818101604052602081101561002657600080fd5b505160006100326100a1565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b03929092169190911790556100a5565b3390565b6108b2806100b46000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f25780639d54f41914610123578063df034cd014610156578063f2fde38b1461015e5761007d565b80635b3c2cbf146100825780636ef0f37f146100b7578063715018a6146100ea575b600080fd5b6100b56004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610191565b005b6100b5600480360360208110156100cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610263565b6100b56103f8565b6100fa61050f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b56004803603602081101561013957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661052b565b6100fa61068f565b6100b56004803603602081101561017457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ab565b60015473ffffffffffffffffffffffffffffffffffffffff16331461021757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21686f6d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f4180932f5f5f11458bcd408e42c54626987799e7c4c89f40f484fefdfdfff14f9181900360200190a150565b61026b61084c565b73ffffffffffffffffffffffffffffffffffffffff1661028961050f565b73ffffffffffffffffffffffffffffffffffffffff161461030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61031481610850565b61037f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f21636f6e747261637420686f6d65000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fa6c230e5615262e310dcb42eaf014e813e5d8580abf5b00d2186ca8e9833de219181900360200190a150565b61040061084c565b73ffffffffffffffffffffffffffffffffffffffff1661041e61050f565b73ffffffffffffffffffffffffffffffffffffffff16146104a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61053361084c565b73ffffffffffffffffffffffffffffffffffffffff1661055161050f565b73ffffffffffffffffffffffffffffffffffffffff16146105d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600154604080517f9d54f419000000000000000000000000000000000000000000000000000000008152600481019390935251921691639d54f4199160248082019260009290919082900301818387803b15801561067457600080fd5b505af1158015610688573d6000803e3d6000fd5b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6106b361084c565b73ffffffffffffffffffffffffffffffffffffffff166106d161050f565b73ffffffffffffffffffffffffffffffffffffffff161461075357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108576026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212206a89c5c4e18144cd4168abe90868abf0d0cd57bdd92b36ff23b682243dda36c064736f6c63430007060033"; export class UpdaterManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-core/factories/XAppConnectionManager__factory.ts b/typescript/typechain/abacus-core/factories/XAppConnectionManager__factory.ts index 410b41305..a8bd4fc79 100644 --- a/typescript/typechain/abacus-core/factories/XAppConnectionManager__factory.ts +++ b/typescript/typechain/abacus-core/factories/XAppConnectionManager__factory.ts @@ -330,7 +330,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220f465aca4ec066d4c8bf09f71d888f2f0371aa2bf74bb299d7ce194e6d570f76164736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220be451a4f4e7d1878f1a90fa951463423ef35b668327544556fbec063e867265064736f6c63430007060033"; export class XAppConnectionManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/BridgeRouter__factory.ts b/typescript/typechain/abacus-xapps/factories/BridgeRouter__factory.ts index a0322268e..0fd86705e 100644 --- a/typescript/typechain/abacus-xapps/factories/BridgeRouter__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/BridgeRouter__factory.ts @@ -509,7 +509,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50615fd880620000216000396000f3fe60806040523480156200001157600080fd5b5060043610620001c05760003560e01c80636eb3d5fe11620000f9578063cbcacfee1162000099578063d82d0531116200006f578063d82d05311462000628578063f2fde38b146200066a578063ffa1ad7414620006a057620001c0565b8063cbcacfee14620005b2578063ccf5a77c14620005e8578063ce5494bb14620005f257620001c0565b80638da5cb5b11620000cf5780638da5cb5b1462000550578063b49c53a7146200055a578063c3a7a023146200058657620001c0565b80636eb3d5fe1462000516578063715018a6146200052057806383bbb806146200052a57620001c0565b8063485cc9551162000165578063589b3c64116200013b578063589b3c6414620004585780636256878714620004845780636cdccfb814620004fa57620001c0565b8063485cc955146200033c578063546d573d146200037a57806356d5d475146200039a57620001c0565b806328b1aea0116200019b57806328b1aea014620002b45780633339df9614620002fc57806341bdc8b5146200030657620001c0565b806303e418c214620001c55780631cabf08f146200021b5780631ecf6f9f146200026b575b600080fd5b620001fb60048036036020811015620001dd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620006c0565b6040805163ffffffff909316835260208301919091528051918290030190f35b62000269600480360360808110156200023357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359063ffffffff6040820135169060600135620006e2565b005b6200028b600480360360208110156200028357600080fd5b503562000aa6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6200026960048036036060811015620002cc57600080fd5b50803563ffffffff16906020810135906040013573ffffffffffffffffffffffffffffffffffffffff1662000ace565b6200028b62000e0a565b62000269600480360360208110156200031e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000e26565b62000269600480360360408110156200035457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351662000f1a565b6200028b600480360360208110156200039257600080fd5b50356200104e565b6200026960048036036060811015620003b257600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115620003e057600080fd5b820183602082011115620003f357600080fd5b803590602001918460018302840111640100000000831117156200041657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062001076945050505050565b6200028b600480360360408110156200047057600080fd5b5063ffffffff81351690602001356200133a565b62000269600480360360208110156200049c57600080fd5b810190602081018135640100000000811115620004b857600080fd5b820183602082011115620004cb57600080fd5b80359060200191846001830284011164010000000083111715620004ee57600080fd5b50909250905062001359565b62000504620015d9565b60408051918252519081900360200190f35b62000504620015df565b62000269620015e5565b62000504600480360360208110156200054257600080fd5b503563ffffffff1662001701565b6200028b62001713565b62000269600480360360408110156200057257600080fd5b5063ffffffff81351690602001356200172f565b62000269600480360360408110156200059e57600080fd5b5063ffffffff8135169060200135620017f5565b620001fb60048036036020811015620005ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620018bd565b6200028b62001908565b62000269600480360360208110156200060a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001924565b6200028b600480360360408110156200064057600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff1662001c44565b62000269600480360360208110156200068257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001c5c565b620006aa62001e05565b6040805160ff9092168252519081900360200190f35b60ca602052600090815260409020805460019091015463ffffffff9091169082565b600083116200075257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21616d6e74000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b80620007bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172656369700000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000620007cc8362001e0a565b905084620007da8162001e92565b156200080a576200080473ffffffffffffffffffffffffffffffffffffffff821633308862001ea5565b620008a0565b620008158162001f42565b73ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200088657600080fd5b505af11580156200089b573d6000803e3d6000fd5b505050505b6000620008ae848762001f45565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200091957600080fd5b505afa1580156200092e573d6000803e3d6000fd5b505050506040513d60208110156200094557600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de0186856200097a620009738c62001fa6565b8662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620009da578181015183820152602001620009c0565b50505050905090810190601f16801562000a085780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801562000a2a57600080fd5b505af115801562000a3f573d6000803e3d6000fd5b505060408051878152602081018a9052815163ffffffff8a16945033935073ffffffffffffffffffffffffffffffffffffffff8716927fcf20fd9072af09cee97ee48e835f72e237cebf880d75143434214e57d6496d60928290030190a450505050505050565b60cb6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b62000ad862002116565b73ffffffffffffffffffffffffffffffffffffffff1662000af862001713565b73ffffffffffffffffffffffffffffffffffffffff161462000b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff8316916340c10f1991604480830192600092919082900301818387803b15801562000bf057600080fd5b505af115801562000c05573d6000803e3d6000fd5b5050604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff85169350639dc29fac9250604480830192600092919082900301818387803b15801562000c7e57600080fd5b505af115801562000c93573d6000803e3d6000fd5b50505050600062000ca584846200211a565b905062000cd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166200216c565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562000d597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216620021b8565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca602052604081206001019190915562000db27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620021fa565b600090815260cb6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff949094169390931790925550505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b62000e3062002116565b73ffffffffffffffffffffffffffffffffffffffff1662000e5062001713565b73ffffffffffffffffffffffffffffffffffffffff161462000ed357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff168062000f36575062000f366200223d565b8062000f45575060005460ff16155b62000f9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200100357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6200100e8362002250565b6200101982620023ad565b80156200104957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60cc6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b620010813362002513565b620010ed57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8282620010fb8282620025bf565b6200116757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b6000620011a1620011798583620025db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662002601565b90506000620011d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200263a565b90506000620012037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200267e565b9050620012327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002714565b156200124a5762001244828262002750565b62001330565b620012777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002937565b1562001289576200124482826200295a565b620012b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002bc0565b15620012c9576200124488888462002be3565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050505050565b6000620013526200134c84846200211a565b62003049565b9392505050565b6000620013a562001179600085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620025db9050565b9050600062001402620013da7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200263a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003128565b905060006200145f620014377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166200267e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003139565b905060006200146f83836200314a565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16156200150457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21756e66696c6c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600081815260cc6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556200154584620031eb565b9050620015d033620015797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166200327e565b620015b0620015aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620032be565b62003300565b73ffffffffffffffffffffffffffffffffffffffff851692919062001ea5565b50505050505050565b61270b81565b61271081565b620015ef62002116565b73ffffffffffffffffffffffffffffffffffffffff166200160f62001713565b73ffffffffffffffffffffffffffffffffffffffff16146200169257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60976020526000908152604090205481565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b6200173962002116565b73ffffffffffffffffffffffffffffffffffffffff166200175962001713565b73ffffffffffffffffffffffffffffffffffffffff1614620017dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b620017ff62002116565b73ffffffffffffffffffffffffffffffffffffffff166200181f62001713565b73ffffffffffffffffffffffffffffffffffffffff1614620018a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000620018b083836200211a565b9050620010498162003312565b73ffffffffffffffffffffffffffffffffffffffff16600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549290910182905291565b60c95473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff1680845260019091015491830191909152620019d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2172657072000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b816000620019e783620034fe565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562001a8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f21646966666572656e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562001aef57600080fd5b505afa15801562001b04573d6000803e3d6000fd5b505050506040513d602081101562001b1b57600080fd5b5051604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905191925073ffffffffffffffffffffffffffffffffffffffff851691639dc29fac9160448082019260009290919082900301818387803b15801562001b9657600080fd5b505af115801562001bab573d6000803e3d6000fd5b5050604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff861693506340c10f199250604480830192600092919082900301818387803b15801562001c2457600080fd5b505af115801562001c39573d6000803e3d6000fd5b505050505050505050565b6000620013528362001c568462003515565b6200133a565b62001c6662002116565b73ffffffffffffffffffffffffffffffffffffffff1662001c8662001713565b73ffffffffffffffffffffffffffffffffffffffff161462001d0957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811662001d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005e1c6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b63ffffffff81166000908152609760205260409020548062001e8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b919050565b600062001e9f826200352e565b92915050565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905262001f3c90859062003570565b50505050565b90565b60006200135262001fa06000600386866040516020018084600581111562001f6957fe5b60f81b81526001018381526020018281526020019350505050604051602081830303815290604052620025db90919063ffffffff16565b62003139565b60008062001fb4836200364e565b905062001352816000015182602001516200211a565b606082600162001fff815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690620036ce565b506200200b846200385a565b6200207757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616374696f6e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160028082526060820183526000926020830190803683370190505090508581600081518110620020a757fe5b602002602001019062ffffff1916908162ffffff1916815250508481600181518110620020d057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101909101526200210c816200388b565b9695505050505050565b3390565b6000620013526200216660008585604051602001808363ffffffff1660e01b815260040182815260200192505050604051602081830303815290604052620025db90919063ffffffff16565b62003128565b60008160016200217c8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006004620038e1565b92505b5050919050565b6000816001620021c88162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166004602062003904565b600080620022088362003a87565b6bffffffffffffffffffffffff1690506000620022258462003a9b565b6bffffffffffffffffffffffff169091209392505050565b60006200224a3062003aaf565b15905090565b600054610100900460ff16806200226c57506200226c6200223d565b806200227b575060005460ff16155b620022d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200233957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015620023a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600054610100900460ff1680620023c95750620023c96200223d565b80620023d8575060005460ff16155b6200242f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200249657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055620024e062003ab5565b8015620023a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b1580156200258b57600080fd5b505afa158015620025a0573d6000803e3d6000fd5b505050506040513d6020811015620025b757600080fd5b505192915050565b63ffffffff919091166000908152609760205260409020541490565b815160009060208401620025f864ffffffffff8516828462003be4565b95945050505050565b600062001e9f620026128362003c41565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003c8f565b60008160026200264a8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006024600162003d0c565b60008160026200268e8162001fd5565b5060006024620026c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003a9b565b6bffffffffffffffffffffffff160390506000620026de8662003da0565b60ff1690506200210c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166024848462003d0c565b60006003620027238362003dd3565b60ff1614801562001e9f575060035b6200273d8362003e05565b60058111156200274957fe5b1492915050565b60006200275d8362003e43565b905060006200278e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200327e565b905060006200279e85856200314a565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680156200280557600082815260cc6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559150815b620028108462001e92565b156200286d576200286783620028487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620032be565b73ffffffffffffffffffffffffffffffffffffffff8716919062003e87565b6200292f565b620028788462001f42565b73ffffffffffffffffffffffffffffffffffffffff166340c10f1984620028c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916620032be565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200291557600080fd5b505af11580156200292a573d6000803e3d6000fd5b505050505b505050505050565b60006004620029468362003dd3565b60ff1614801562001e9f5750600462002732565b60006200296783620031eb565b9050620029748162001e92565b15620029e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f7465206f726967696e000000000000000000000000000000000000604482015290519081900360640190fd5b620029ec8162001f42565b73ffffffffffffffffffffffffffffffffffffffff1663654935f462002a3e62002a387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861662003f16565b62003f58565b62002a6f62002a387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003fcf565b62002a9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662004011565b6040518463ffffffff1660e01b81526004018080602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562002af757818101518382015260200162002add565b50505050905090810190601f16801562002b255780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562002b5a57818101518382015260200162002b40565b50505050905090810190601f16801562002b885780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562002bab57600080fd5b505af1158015620015d0573d6000803e3d6000fd5b6000600562002bcf8362003dd3565b60ff1614801562001e9f5750600562002732565b600062002c127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004053565b905062002c1f816200352e565b62002c8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f216c6f63616c206f726967696e00000000000000000000000000000000000000604482015290519081900360640190fd5b6000819050600062002ed762002dfc8373ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002ce357600080fd5b505af115801562002cf8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101562002d4057600080fd5b810190808051604051939291908464010000000082111562002d6157600080fd5b90830190602082018581111562002d7757600080fd5b825164010000000081118282018810171562002d9257600080fd5b82525081516020918201929091019080838360005b8381101562002dc157818101518382015260200162002da7565b50505050905090810190601f16801562002def5780820380516001836020036101000a031916815260200191505b5060405250505062004093565b62002e5c8473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801562002e4757600080fd5b505afa15801562002cf8573d6000803e3d6000fd5b8473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801562002ea357600080fd5b505afa15801562002eb8573d6000803e3d6000fd5b505050506040513d602081101562002ecf57600080fd5b5051620040dd565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b15801562002f4257600080fd5b505afa15801562002f57573d6000803e3d6000fd5b505050506040513d602081101562002f6e57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de01878762002f99888662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562002ff957818101518382015260200162002fdf565b50505050905090810190601f168015620030275780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156200291557600080fd5b6000620030556200414c565b63ffffffff16620030887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200216c565b63ffffffff161415620030ca57620030c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004053565b905062001e8d565b60cb6000620030fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021fa565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b600062001e9f62002612836200415d565b600062001e9f6200261283620041af565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106200317e57fe5b602002602001019062ffffff1916908162ffffff1916815250508281600181518110620031a757fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910190910152620031e38162004201565b949350505050565b600080620031f98362003049565b905073ffffffffffffffffffffffffffffffffffffffff811662001e9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21746f6b656e0000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008160036200328e8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600d6200421d565b6000816003620032ce8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660216020620038e1565b600061271061270b83025b0492915050565b6000620033417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200216c565b63ffffffff81166000908152609760205260409020549091508062003368575050620034fb565b6000620033746200422d565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620033df57600080fd5b505afa158015620033f4573d6000803e3d6000fd5b505050506040513d60208110156200340b57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de01848462003436888662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620034965781810151838201526020016200347c565b50505050905090810190601f168015620034c45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015620034e657600080fd5b505af115801562001330573d6000803e3d6000fd5b50565b600062001e9f6200350f836200427e565b62004294565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca602052604081205463ffffffff1615620035695750600062001e8d565b503b151590565b6000620035d4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620042c69092919063ffffffff16565b8051909150156200104957808060200190516020811015620035f557600080fd5b505162001049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018062005ef1602a913960400191505060405180910390fd5b620036586200586b565b5073ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549183019190915262001e8d57620036b16200414c565b63ffffffff168152620036c48262003515565b6020820152919050565b6000620036dc8383620042d7565b62003853576000620036ff620036f285620042fb565b64ffffffffff1662004301565b9150506000620037168464ffffffffff1662004301565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b8381101562003817578181015183820152602001620037fd565b50505050905090810190601f168015620038455780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b6000620038678262002937565b80620038795750620038798262002bc0565b8062001e9f575062001e9f8262002714565b6040516060906000620038a28460208401620043df565b90506000620038b18262003a9b565b6bffffffffffffffffffffffff1690506000620038ce8362004461565b9184525082016020016040525092915050565b60008160200360080260ff16620038fa85858562003904565b901c949350505050565b600060ff8216620039185750600062001352565b620039238462003a9b565b6bffffffffffffffffffffffff16620039408460ff851662004477565b1115620039eb5762003988620039568562003a87565b6bffffffffffffffffffffffff166200396f8662003a9b565b6bffffffffffffffffffffffff16858560ff16620044ea565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831562003817578181015183820152602001620037fd565b60208260ff16111562003a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018062005eb7603a913960400191505060405180910390fd5b60088202600062003a5b8662003a87565b6bffffffffffffffffffffffff169050600062003a78836200464f565b91909501511695945050505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168062003ad1575062003ad16200223d565b8062003ae0575060005460ff16155b62003b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff1615801562003b9e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b62003ba862004698565b62003bb2620047b2565b8015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008062003bf3848462004477565b905060405181111562003c04575060005b8062003c34577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505062001352565b620025f88585856200494c565b600062003c4e826200495f565b1562003c8557620030c260025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690620049bf565b62001e9f620049e5565b600062003c9c8262004a09565b62003d0857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b60008062003d1a8662003a87565b6bffffffffffffffffffffffff16905062003d358662004a4c565b62003d4d8562003d46848962004477565b9062004477565b111562003d7e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050620031e3565b62003d8a818662004477565b90506200210c8364ffffffffff16828662003be4565b600062001e9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246001620038e1565b600062001e9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826001620038e1565b600062003e347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620042fb565b60ff16600581111562001e9f57fe5b60008062003e518362003049565b905073ffffffffffffffffffffffffffffffffffffffff811662001e9f5762003e7a8362004a7a565b905062001e9f8362003312565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526200104990849062003570565b600081600462003f268162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166001602062003904565b606060005b60208160ff1610801562003fa55750828160ff166020811062003f7c57fe5b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b1562003fb45760010162003f5d565b60405191506040820160405280825282602083015250919050565b600081600462003fdf8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166021602062003904565b6000816004620040218162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660416001620038e1565b6000816001620040638162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660106200421d565b600062001e9f60008351620040b3600086620025db90919063ffffffff16565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016919062003904565b6000620031e36200414660006004878787604051602001808560058111156200410257fe5b60f81b81526001018481526020018381526020018260ff1660f81b8152600101945050505050604051602081830303815290604052620025db90919063ffffffff16565b62004e87565b60006200415862004e98565b905090565b600060246200418e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600162003c5b565b60006041620041e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600362003c5b565b60405160009062001352620042178483620043df565b620021fa565b60006200135283836014620038e1565b6000620041586200427860006005604051602001808260058111156200424f57fe5b60f81b8152600101915050604051602081830303815290604052620025db90919063ffffffff16565b62004f37565b600062001e9f826000015183602001516200211a565b600060cb81620030fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021fa565b6060620031e3848460008562004f48565b60008164ffffffffff16620042ec84620042fb565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156200436e5760ff600882021684901c62004329816200510d565b61ffff16841793508160ff166010146200434557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004307565b50600f5b60ff8160ff161015620043d95760ff600882021684901c62004394816200510d565b61ffff16831792508160ff16600014620043b057601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004372565b50915091565b600060405182811115620043f35760206060fd5b506000805b8451811015620044525760008582815181106200441157fe5b60200260200101519050620044298184870162005141565b50620044358162003a9b565b6bffffffffffffffffffffffff16929092019150600101620043f8565b50620031e3600084836200494c565b60006200446e826200527e565b60200292915050565b8181018281101562001e9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b60606000620044f98662004301565b9150506000620045098662004301565b9150506000620045198662004301565b9150506000620045298662004301565b91505083838383604051602001808062005f6e603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602162005e6882397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600054610100900460ff1680620046b45750620046b46200223d565b80620046c3575060005460ff16155b6200471a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff1615801562003bb257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680620047ce5750620047ce6200223d565b80620047dd575060005460ff16155b62004834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200489b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000620048a762002116565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b606092831b9190911790911b1760181b90565b6000806200498f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff1690506065811480620049af5750606681145b8062001352575060251492915050565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b600062004a1682620042fb565b64ffffffffff1664ffffffffff141562004a335750600062001e8d565b600062004a408362004a4c565b60405110199392505050565b600062004a598262003a9b565b62004a648362003a87565b016bffffffffffffffffffffffff169050919050565b60c95460405160009173ffffffffffffffffffffffffffffffffffffffff169062004aa59062005882565b73ffffffffffffffffffffffffffffffffffffffff909116815260406020820181905260008183018190529051918290036060019190f08015801562004aef573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562004b3b57600080fd5b505af115801562004b50573d6000803e3d6000fd5b5050505060608062004b6284620052b0565b80925081935050508273ffffffffffffffffffffffffffffffffffffffff1663654935f4838360126040518463ffffffff1660e01b8152600401808060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562004be257818101518382015260200162004bc8565b50505050905090810190601f16801562004c105780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562004c4557818101518382015260200162004c2b565b50505050905090810190601f16801562004c735780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562004c9657600080fd5b505af115801562004cab573d6000803e3d6000fd5b5050505062004cc08462ffffff19166200216c565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562004d457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021b8565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040812060010191909155839060cb9062004da37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620021fa565b8152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055831662004e217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616620021b8565b62004e4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166200216c565b63ffffffff167f84d5e3618bf276f3d29a931646fdd996b398a3efa3cf6bceefc1fe7f0304059f60405160405180910390a45050919050565b600062001e9f6200261283620053ca565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801562004f0457600080fd5b505afa15801562004f19573d6000803e3d6000fd5b505050506040513d602081101562004f3057600080fd5b5051905090565b600062001e9f62002612836200541c565b60608247101562004fa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005e426026913960400191505060405180910390fd5b62004fb08562003aaf565b6200501c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106200508757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910162005048565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114620050eb576040519150601f19603f3d011682016040523d82523d6000602084013e620050f0565b606091505b5091509150620051028282866200546e565b979650505050505050565b60006200512160048360ff16901c620054f3565b60ff161760081b62ffff00166200513882620054f3565b60ff1617919050565b60006200514e836200567f565b620051a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018062005f1b6028913960400191505060405180910390fd5b620051b08362004a09565b62005207576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062005f43602b913960400191505060405180910390fd5b6000620052148462003a9b565b6bffffffffffffffffffffffff1690506000620052318562003a87565b6bffffffffffffffffffffffff1690506000604051905084811115620052575760206060fd5b8285848460045afa506200210c6200526f87620042fb565b64ffffffffff1686856200494c565b60006020620052a86020620052938562003a9b565b6bffffffffffffffffffffffff169062004477565b816200330b57fe5b6060806000620052ec620052e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616620021b8565b62005693565b9150506200530a620053048562ffffff19166200216c565b6200576b565b6040805160b09290921b7fffffffffffffffffffff000000000000000000000000000000000000000000001660208301527f2e00000000000000000000000000000000000000000000000000000000000000602a83015260e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016602b8301528051808303600f9081018252602f8401818152606f85019093529095509091604f0181803683370190505091506020830151602083015250915091565b60006042620053fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600462003c5b565b600060016200544d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600562003c5b565b606083156200547f57508162001352565b825115620054905782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831562003817578181015183820152602001620037fd565b600060f08083179060ff821614156200551157603091505062001e8d565b8060ff1660f114156200552957603191505062001e8d565b8060ff1660f214156200554157603291505062001e8d565b8060ff1660f314156200555957603391505062001e8d565b8060ff1660f414156200557157603491505062001e8d565b8060ff1660f514156200558957603591505062001e8d565b8060ff1660f61415620055a157603691505062001e8d565b8060ff1660f71415620055b957603791505062001e8d565b8060ff1660f81415620055d157603891505062001e8d565b8060ff1660f91415620055e957603991505062001e8d565b8060ff1660fa14156200560157606191505062001e8d565b8060ff1660fb14156200561957606291505062001e8d565b8060ff1660fc14156200563157606391505062001e8d565b8060ff1660fd14156200564957606491505062001e8d565b8060ff1660fe14156200566157606591505062001e8d565b8060ff1660ff14156200567957606691505062001e8d565b50919050565b60006200568c82620057c6565b1592915050565b600080601f5b600f8160ff161115620057005760ff600882021684901c620056bb81620057ee565b61ffff16841793508160ff16601014620056d757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005699565b50600f5b60ff8160ff161015620043d95760ff600882021684901c6200572681620057ee565b61ffff16831792508160ff166000146200574257601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005704565b60006030815b600a8160ff161015620021b15760ff600882021682600a63ffffffff87160663ffffffff160169ffffffffffffffffffff16901b83179250600a8463ffffffff1681620057ba57fe5b04935060010162005771565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60006200580260048360ff16901c62005814565b60ff161760081b62ffff001662005138825b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106200585c57fe5b016020015160f81c9392505050565b604080518082019091526000808252602082015290565b61058b80620058918339019056fe60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea2646970667358221220e084da10f1437ab964c16dc80d846859df965188ba4815af7c882864b60df38a64736f6c634300070600334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220bdb7093fed1753c17b819d8fff91a5cf517d17af3c44e7f4e46b6f9b9c85348764736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50615fd880620000216000396000f3fe60806040523480156200001157600080fd5b5060043610620001c05760003560e01c80636eb3d5fe11620000f9578063cbcacfee1162000099578063d82d0531116200006f578063d82d05311462000628578063f2fde38b146200066a578063ffa1ad7414620006a057620001c0565b8063cbcacfee14620005b2578063ccf5a77c14620005e8578063ce5494bb14620005f257620001c0565b80638da5cb5b11620000cf5780638da5cb5b1462000550578063b49c53a7146200055a578063c3a7a023146200058657620001c0565b80636eb3d5fe1462000516578063715018a6146200052057806383bbb806146200052a57620001c0565b8063485cc9551162000165578063589b3c64116200013b578063589b3c6414620004585780636256878714620004845780636cdccfb814620004fa57620001c0565b8063485cc955146200033c578063546d573d146200037a57806356d5d475146200039a57620001c0565b806328b1aea0116200019b57806328b1aea014620002b45780633339df9614620002fc57806341bdc8b5146200030657620001c0565b806303e418c214620001c55780631cabf08f146200021b5780631ecf6f9f146200026b575b600080fd5b620001fb60048036036020811015620001dd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620006c0565b6040805163ffffffff909316835260208301919091528051918290030190f35b62000269600480360360808110156200023357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359063ffffffff6040820135169060600135620006e2565b005b6200028b600480360360208110156200028357600080fd5b503562000aa6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6200026960048036036060811015620002cc57600080fd5b50803563ffffffff16906020810135906040013573ffffffffffffffffffffffffffffffffffffffff1662000ace565b6200028b62000e0a565b62000269600480360360208110156200031e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000e26565b62000269600480360360408110156200035457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351662000f1a565b6200028b600480360360208110156200039257600080fd5b50356200104e565b6200026960048036036060811015620003b257600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115620003e057600080fd5b820183602082011115620003f357600080fd5b803590602001918460018302840111640100000000831117156200041657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062001076945050505050565b6200028b600480360360408110156200047057600080fd5b5063ffffffff81351690602001356200133a565b62000269600480360360208110156200049c57600080fd5b810190602081018135640100000000811115620004b857600080fd5b820183602082011115620004cb57600080fd5b80359060200191846001830284011164010000000083111715620004ee57600080fd5b50909250905062001359565b62000504620015d9565b60408051918252519081900360200190f35b62000504620015df565b62000269620015e5565b62000504600480360360208110156200054257600080fd5b503563ffffffff1662001701565b6200028b62001713565b62000269600480360360408110156200057257600080fd5b5063ffffffff81351690602001356200172f565b62000269600480360360408110156200059e57600080fd5b5063ffffffff8135169060200135620017f5565b620001fb60048036036020811015620005ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620018bd565b6200028b62001908565b62000269600480360360208110156200060a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001924565b6200028b600480360360408110156200064057600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff1662001c44565b62000269600480360360208110156200068257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001c5c565b620006aa62001e05565b6040805160ff9092168252519081900360200190f35b60ca602052600090815260409020805460019091015463ffffffff9091169082565b600083116200075257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21616d6e74000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b80620007bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172656369700000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000620007cc8362001e0a565b905084620007da8162001e92565b156200080a576200080473ffffffffffffffffffffffffffffffffffffffff821633308862001ea5565b620008a0565b620008158162001f42565b73ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200088657600080fd5b505af11580156200089b573d6000803e3d6000fd5b505050505b6000620008ae848762001f45565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200091957600080fd5b505afa1580156200092e573d6000803e3d6000fd5b505050506040513d60208110156200094557600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de0186856200097a620009738c62001fa6565b8662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620009da578181015183820152602001620009c0565b50505050905090810190601f16801562000a085780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801562000a2a57600080fd5b505af115801562000a3f573d6000803e3d6000fd5b505060408051878152602081018a9052815163ffffffff8a16945033935073ffffffffffffffffffffffffffffffffffffffff8716927fcf20fd9072af09cee97ee48e835f72e237cebf880d75143434214e57d6496d60928290030190a450505050505050565b60cb6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b62000ad862002116565b73ffffffffffffffffffffffffffffffffffffffff1662000af862001713565b73ffffffffffffffffffffffffffffffffffffffff161462000b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff8316916340c10f1991604480830192600092919082900301818387803b15801562000bf057600080fd5b505af115801562000c05573d6000803e3d6000fd5b5050604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff85169350639dc29fac9250604480830192600092919082900301818387803b15801562000c7e57600080fd5b505af115801562000c93573d6000803e3d6000fd5b50505050600062000ca584846200211a565b905062000cd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166200216c565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562000d597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216620021b8565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca602052604081206001019190915562000db27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620021fa565b600090815260cb6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff949094169390931790925550505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b62000e3062002116565b73ffffffffffffffffffffffffffffffffffffffff1662000e5062001713565b73ffffffffffffffffffffffffffffffffffffffff161462000ed357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff168062000f36575062000f366200223d565b8062000f45575060005460ff16155b62000f9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200100357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6200100e8362002250565b6200101982620023ad565b80156200104957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60cc6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b620010813362002513565b620010ed57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8282620010fb8282620025bf565b6200116757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b6000620011a1620011798583620025db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662002601565b90506000620011d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200263a565b90506000620012037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200267e565b9050620012327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002714565b156200124a5762001244828262002750565b62001330565b620012777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002937565b1562001289576200124482826200295a565b620012b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002bc0565b15620012c9576200124488888462002be3565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050505050565b6000620013526200134c84846200211a565b62003049565b9392505050565b6000620013a562001179600085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620025db9050565b9050600062001402620013da7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200263a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003128565b905060006200145f620014377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166200267e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003139565b905060006200146f83836200314a565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16156200150457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21756e66696c6c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600081815260cc6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556200154584620031eb565b9050620015d033620015797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166200327e565b620015b0620015aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620032be565b62003300565b73ffffffffffffffffffffffffffffffffffffffff851692919062001ea5565b50505050505050565b61270b81565b61271081565b620015ef62002116565b73ffffffffffffffffffffffffffffffffffffffff166200160f62001713565b73ffffffffffffffffffffffffffffffffffffffff16146200169257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60976020526000908152604090205481565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b6200173962002116565b73ffffffffffffffffffffffffffffffffffffffff166200175962001713565b73ffffffffffffffffffffffffffffffffffffffff1614620017dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b620017ff62002116565b73ffffffffffffffffffffffffffffffffffffffff166200181f62001713565b73ffffffffffffffffffffffffffffffffffffffff1614620018a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000620018b083836200211a565b9050620010498162003312565b73ffffffffffffffffffffffffffffffffffffffff16600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549290910182905291565b60c95473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff1680845260019091015491830191909152620019d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2172657072000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b816000620019e783620034fe565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562001a8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f21646966666572656e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562001aef57600080fd5b505afa15801562001b04573d6000803e3d6000fd5b505050506040513d602081101562001b1b57600080fd5b5051604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905191925073ffffffffffffffffffffffffffffffffffffffff851691639dc29fac9160448082019260009290919082900301818387803b15801562001b9657600080fd5b505af115801562001bab573d6000803e3d6000fd5b5050604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff861693506340c10f199250604480830192600092919082900301818387803b15801562001c2457600080fd5b505af115801562001c39573d6000803e3d6000fd5b505050505050505050565b6000620013528362001c568462003515565b6200133a565b62001c6662002116565b73ffffffffffffffffffffffffffffffffffffffff1662001c8662001713565b73ffffffffffffffffffffffffffffffffffffffff161462001d0957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811662001d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005e1c6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b63ffffffff81166000908152609760205260409020548062001e8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b919050565b600062001e9f826200352e565b92915050565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905262001f3c90859062003570565b50505050565b90565b60006200135262001fa06000600386866040516020018084600581111562001f6957fe5b60f81b81526001018381526020018281526020019350505050604051602081830303815290604052620025db90919063ffffffff16565b62003139565b60008062001fb4836200364e565b905062001352816000015182602001516200211a565b606082600162001fff815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690620036ce565b506200200b846200385a565b6200207757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616374696f6e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160028082526060820183526000926020830190803683370190505090508581600081518110620020a757fe5b602002602001019062ffffff1916908162ffffff1916815250508481600181518110620020d057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909216602092830291909101909101526200210c816200388b565b9695505050505050565b3390565b6000620013526200216660008585604051602001808363ffffffff1660e01b815260040182815260200192505050604051602081830303815290604052620025db90919063ffffffff16565b62003128565b60008160016200217c8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006004620038e1565b92505b5050919050565b6000816001620021c88162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166004602062003904565b600080620022088362003a87565b6bffffffffffffffffffffffff1690506000620022258462003a9b565b6bffffffffffffffffffffffff169091209392505050565b60006200224a3062003aaf565b15905090565b600054610100900460ff16806200226c57506200226c6200223d565b806200227b575060005460ff16155b620022d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200233957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015620023a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600054610100900460ff1680620023c95750620023c96200223d565b80620023d8575060005460ff16155b6200242f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200249657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055620024e062003ab5565b8015620023a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b1580156200258b57600080fd5b505afa158015620025a0573d6000803e3d6000fd5b505050506040513d6020811015620025b757600080fd5b505192915050565b63ffffffff919091166000908152609760205260409020541490565b815160009060208401620025f864ffffffffff8516828462003be4565b95945050505050565b600062001e9f620026128362003c41565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003c8f565b60008160026200264a8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006024600162003d0c565b60008160026200268e8162001fd5565b5060006024620026c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003a9b565b6bffffffffffffffffffffffff160390506000620026de8662003da0565b60ff1690506200210c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166024848462003d0c565b60006003620027238362003dd3565b60ff1614801562001e9f575060035b6200273d8362003e05565b60058111156200274957fe5b1492915050565b60006200275d8362003e43565b905060006200278e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200327e565b905060006200279e85856200314a565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680156200280557600082815260cc6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559150815b620028108462001e92565b156200286d576200286783620028487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620032be565b73ffffffffffffffffffffffffffffffffffffffff8716919062003e87565b6200292f565b620028788462001f42565b73ffffffffffffffffffffffffffffffffffffffff166340c10f1984620028c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916620032be565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200291557600080fd5b505af11580156200292a573d6000803e3d6000fd5b505050505b505050505050565b60006004620029468362003dd3565b60ff1614801562001e9f5750600462002732565b60006200296783620031eb565b9050620029748162001e92565b15620029e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f7465206f726967696e000000000000000000000000000000000000604482015290519081900360640190fd5b620029ec8162001f42565b73ffffffffffffffffffffffffffffffffffffffff1663654935f462002a3e62002a387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861662003f16565b62003f58565b62002a6f62002a387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003fcf565b62002a9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662004011565b6040518463ffffffff1660e01b81526004018080602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562002af757818101518382015260200162002add565b50505050905090810190601f16801562002b255780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562002b5a57818101518382015260200162002b40565b50505050905090810190601f16801562002b885780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562002bab57600080fd5b505af1158015620015d0573d6000803e3d6000fd5b6000600562002bcf8362003dd3565b60ff1614801562001e9f5750600562002732565b600062002c127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004053565b905062002c1f816200352e565b62002c8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f216c6f63616c206f726967696e00000000000000000000000000000000000000604482015290519081900360640190fd5b6000819050600062002ed762002dfc8373ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002ce357600080fd5b505af115801562002cf8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101562002d4057600080fd5b810190808051604051939291908464010000000082111562002d6157600080fd5b90830190602082018581111562002d7757600080fd5b825164010000000081118282018810171562002d9257600080fd5b82525081516020918201929091019080838360005b8381101562002dc157818101518382015260200162002da7565b50505050905090810190601f16801562002def5780820380516001836020036101000a031916815260200191505b5060405250505062004093565b62002e5c8473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801562002e4757600080fd5b505afa15801562002cf8573d6000803e3d6000fd5b8473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801562002ea357600080fd5b505afa15801562002eb8573d6000803e3d6000fd5b505050506040513d602081101562002ecf57600080fd5b5051620040dd565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b15801562002f4257600080fd5b505afa15801562002f57573d6000803e3d6000fd5b505050506040513d602081101562002f6e57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de01878762002f99888662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562002ff957818101518382015260200162002fdf565b50505050905090810190601f168015620030275780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156200291557600080fd5b6000620030556200414c565b63ffffffff16620030887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200216c565b63ffffffff161415620030ca57620030c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004053565b905062001e8d565b60cb6000620030fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021fa565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b600062001e9f62002612836200415d565b600062001e9f6200261283620041af565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106200317e57fe5b602002602001019062ffffff1916908162ffffff1916815250508281600181518110620031a757fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910190910152620031e38162004201565b949350505050565b600080620031f98362003049565b905073ffffffffffffffffffffffffffffffffffffffff811662001e9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21746f6b656e0000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008160036200328e8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600d6200421d565b6000816003620032ce8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660216020620038e1565b600061271061270b83025b0492915050565b6000620033417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200216c565b63ffffffff81166000908152609760205260409020549091508062003368575050620034fb565b6000620033746200422d565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620033df57600080fd5b505afa158015620033f4573d6000803e3d6000fd5b505050506040513d60208110156200340b57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de01848462003436888662001fca565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620034965781810151838201526020016200347c565b50505050905090810190601f168015620034c45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015620034e657600080fd5b505af115801562001330573d6000803e3d6000fd5b50565b600062001e9f6200350f836200427e565b62004294565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca602052604081205463ffffffff1615620035695750600062001e8d565b503b151590565b6000620035d4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620042c69092919063ffffffff16565b8051909150156200104957808060200190516020811015620035f557600080fd5b505162001049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018062005ef1602a913960400191505060405180910390fd5b620036586200586b565b5073ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549183019190915262001e8d57620036b16200414c565b63ffffffff168152620036c48262003515565b6020820152919050565b6000620036dc8383620042d7565b62003853576000620036ff620036f285620042fb565b64ffffffffff1662004301565b9150506000620037168464ffffffffff1662004301565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b8381101562003817578181015183820152602001620037fd565b50505050905090810190601f168015620038455780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b6000620038678262002937565b80620038795750620038798262002bc0565b8062001e9f575062001e9f8262002714565b6040516060906000620038a28460208401620043df565b90506000620038b18262003a9b565b6bffffffffffffffffffffffff1690506000620038ce8362004461565b9184525082016020016040525092915050565b60008160200360080260ff16620038fa85858562003904565b901c949350505050565b600060ff8216620039185750600062001352565b620039238462003a9b565b6bffffffffffffffffffffffff16620039408460ff851662004477565b1115620039eb5762003988620039568562003a87565b6bffffffffffffffffffffffff166200396f8662003a9b565b6bffffffffffffffffffffffff16858560ff16620044ea565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831562003817578181015183820152602001620037fd565b60208260ff16111562003a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018062005eb7603a913960400191505060405180910390fd5b60088202600062003a5b8662003a87565b6bffffffffffffffffffffffff169050600062003a78836200464f565b91909501511695945050505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168062003ad1575062003ad16200223d565b8062003ae0575060005460ff16155b62003b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff1615801562003b9e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b62003ba862004698565b62003bb2620047b2565b8015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008062003bf3848462004477565b905060405181111562003c04575060005b8062003c34577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505062001352565b620025f88585856200494c565b600062003c4e826200495f565b1562003c8557620030c260025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690620049bf565b62001e9f620049e5565b600062003c9c8262004a09565b62003d0857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b60008062003d1a8662003a87565b6bffffffffffffffffffffffff16905062003d358662004a4c565b62003d4d8562003d46848962004477565b9062004477565b111562003d7e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050620031e3565b62003d8a818662004477565b90506200210c8364ffffffffff16828662003be4565b600062001e9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246001620038e1565b600062001e9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826001620038e1565b600062003e347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620042fb565b60ff16600581111562001e9f57fe5b60008062003e518362003049565b905073ffffffffffffffffffffffffffffffffffffffff811662001e9f5762003e7a8362004a7a565b905062001e9f8362003312565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526200104990849062003570565b600081600462003f268162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166001602062003904565b606060005b60208160ff1610801562003fa55750828160ff166020811062003f7c57fe5b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b1562003fb45760010162003f5d565b60405191506040820160405280825282602083015250919050565b600081600462003fdf8162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166021602062003904565b6000816004620040218162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660416001620038e1565b6000816001620040638162001fd5565b50620021ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660106200421d565b600062001e9f60008351620040b3600086620025db90919063ffffffff16565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016919062003904565b6000620031e36200414660006004878787604051602001808560058111156200410257fe5b60f81b81526001018481526020018381526020018260ff1660f81b8152600101945050505050604051602081830303815290604052620025db90919063ffffffff16565b62004e87565b60006200415862004e98565b905090565b600060246200418e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600162003c5b565b60006041620041e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600362003c5b565b60405160009062001352620042178483620043df565b620021fa565b60006200135283836014620038e1565b6000620041586200427860006005604051602001808260058111156200424f57fe5b60f81b8152600101915050604051602081830303815290604052620025db90919063ffffffff16565b62004f37565b600062001e9f826000015183602001516200211a565b600060cb81620030fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021fa565b6060620031e3848460008562004f48565b60008164ffffffffff16620042ec84620042fb565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156200436e5760ff600882021684901c62004329816200510d565b61ffff16841793508160ff166010146200434557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004307565b50600f5b60ff8160ff161015620043d95760ff600882021684901c62004394816200510d565b61ffff16831792508160ff16600014620043b057601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004372565b50915091565b600060405182811115620043f35760206060fd5b506000805b8451811015620044525760008582815181106200441157fe5b60200260200101519050620044298184870162005141565b50620044358162003a9b565b6bffffffffffffffffffffffff16929092019150600101620043f8565b50620031e3600084836200494c565b60006200446e826200527e565b60200292915050565b8181018281101562001e9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b60606000620044f98662004301565b9150506000620045098662004301565b9150506000620045198662004301565b9150506000620045298662004301565b91505083838383604051602001808062005f6e603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602162005e6882397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600054610100900460ff1680620046b45750620046b46200223d565b80620046c3575060005460ff16155b6200471a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff1615801562003bb257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680620047ce5750620047ce6200223d565b80620047dd575060005460ff16155b62004834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e89602e913960400191505060405180910390fd5b600054610100900460ff161580156200489b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000620048a762002116565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620034fb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b606092831b9190911790911b1760181b90565b6000806200498f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff1690506065811480620049af5750606681145b8062001352575060251492915050565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b600062004a1682620042fb565b64ffffffffff1664ffffffffff141562004a335750600062001e8d565b600062004a408362004a4c565b60405110199392505050565b600062004a598262003a9b565b62004a648362003a87565b016bffffffffffffffffffffffff169050919050565b60c95460405160009173ffffffffffffffffffffffffffffffffffffffff169062004aa59062005882565b73ffffffffffffffffffffffffffffffffffffffff909116815260406020820181905260008183018190529051918290036060019190f08015801562004aef573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562004b3b57600080fd5b505af115801562004b50573d6000803e3d6000fd5b5050505060608062004b6284620052b0565b80925081935050508273ffffffffffffffffffffffffffffffffffffffff1663654935f4838360126040518463ffffffff1660e01b8152600401808060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562004be257818101518382015260200162004bc8565b50505050905090810190601f16801562004c105780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562004c4557818101518382015260200162004c2b565b50505050905090810190601f16801562004c735780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562004c9657600080fd5b505af115801562004cab573d6000803e3d6000fd5b5050505062004cc08462ffffff19166200216c565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562004d457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516620021b8565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040812060010191909155839060cb9062004da37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816620021fa565b8152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055831662004e217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616620021b8565b62004e4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166200216c565b63ffffffff167f84d5e3618bf276f3d29a931646fdd996b398a3efa3cf6bceefc1fe7f0304059f60405160405180910390a45050919050565b600062001e9f6200261283620053ca565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801562004f0457600080fd5b505afa15801562004f19573d6000803e3d6000fd5b505050506040513d602081101562004f3057600080fd5b5051905090565b600062001e9f62002612836200541c565b60608247101562004fa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005e426026913960400191505060405180910390fd5b62004fb08562003aaf565b6200501c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106200508757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910162005048565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114620050eb576040519150601f19603f3d011682016040523d82523d6000602084013e620050f0565b606091505b5091509150620051028282866200546e565b979650505050505050565b60006200512160048360ff16901c620054f3565b60ff161760081b62ffff00166200513882620054f3565b60ff1617919050565b60006200514e836200567f565b620051a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018062005f1b6028913960400191505060405180910390fd5b620051b08362004a09565b62005207576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062005f43602b913960400191505060405180910390fd5b6000620052148462003a9b565b6bffffffffffffffffffffffff1690506000620052318562003a87565b6bffffffffffffffffffffffff1690506000604051905084811115620052575760206060fd5b8285848460045afa506200210c6200526f87620042fb565b64ffffffffff1686856200494c565b60006020620052a86020620052938562003a9b565b6bffffffffffffffffffffffff169062004477565b816200330b57fe5b6060806000620052ec620052e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616620021b8565b62005693565b9150506200530a620053048562ffffff19166200216c565b6200576b565b6040805160b09290921b7fffffffffffffffffffff000000000000000000000000000000000000000000001660208301527f2e00000000000000000000000000000000000000000000000000000000000000602a83015260e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016602b8301528051808303600f9081018252602f8401818152606f85019093529095509091604f0181803683370190505091506020830151602083015250915091565b60006042620053fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600462003c5b565b600060016200544d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a9b565b6bffffffffffffffffffffffff16141562003c8557620030c2600562003c5b565b606083156200547f57508162001352565b825115620054905782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831562003817578181015183820152602001620037fd565b600060f08083179060ff821614156200551157603091505062001e8d565b8060ff1660f114156200552957603191505062001e8d565b8060ff1660f214156200554157603291505062001e8d565b8060ff1660f314156200555957603391505062001e8d565b8060ff1660f414156200557157603491505062001e8d565b8060ff1660f514156200558957603591505062001e8d565b8060ff1660f61415620055a157603691505062001e8d565b8060ff1660f71415620055b957603791505062001e8d565b8060ff1660f81415620055d157603891505062001e8d565b8060ff1660f91415620055e957603991505062001e8d565b8060ff1660fa14156200560157606191505062001e8d565b8060ff1660fb14156200561957606291505062001e8d565b8060ff1660fc14156200563157606391505062001e8d565b8060ff1660fd14156200564957606491505062001e8d565b8060ff1660fe14156200566157606591505062001e8d565b8060ff1660ff14156200567957606691505062001e8d565b50919050565b60006200568c82620057c6565b1592915050565b600080601f5b600f8160ff161115620057005760ff600882021684901c620056bb81620057ee565b61ffff16841793508160ff16601014620056d757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005699565b50600f5b60ff8160ff161015620043d95760ff600882021684901c6200572681620057ee565b61ffff16831792508160ff166000146200574257601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005704565b60006030815b600a8160ff161015620021b15760ff600882021682600a63ffffffff87160663ffffffff160169ffffffffffffffffffff16901b83179250600a8463ffffffff1681620057ba57fe5b04935060010162005771565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60006200580260048360ff16901c62005814565b60ff161760081b62ffff001662005138825b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106200585c57fe5b016020015160f81c9392505050565b604080518082019091526000808252602082015290565b61058b80620058918339019056fe60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea2646970667358221220e084da10f1437ab964c16dc80d846859df965188ba4815af7c882864b60df38a64736f6c634300070600334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212204b8cebcc9d3b67a6a74b1f15292b8b70f3861535794097f5b52b8cecce7db2e364736f6c63430007060033"; export class BridgeRouter__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/BridgeToken__factory.ts b/typescript/typechain/abacus-xapps/factories/BridgeToken__factory.ts index 4b62deb8c..59d44203d 100644 --- a/typescript/typechain/abacus-xapps/factories/BridgeToken__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/BridgeToken__factory.ts @@ -499,7 +499,7 @@ const _abi = [ ]; const _bytecode = - "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c6121646100a560003980610f43525080611369525080610c835280610edf52506121646000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80638129fc1c116100e3578063a9059cbb1161008c578063f2fde38b11610066578063f2fde38b1461060b578063f698da251461063e578063ffa1ad74146106465761018d565b8063a9059cbb14610539578063d505accf14610572578063dd62ed3e146105d05761018d565b8063982aaf6b116100bd578063982aaf6b146104bf5780639dc29fac146104c7578063a457c2d7146105005761018d565b80638129fc1c1461047e5780638da5cb5b1461048657806395d89b41146104b75761018d565b8063395093511161014557806370a082311161011f57806370a0823114610410578063715018a6146104435780637ecebe001461044b5761018d565b806339509351146102d757806340c10f1914610310578063654935f41461034b5761018d565b806318160ddd1161017657806318160ddd1461025c57806323b872dd14610276578063313ce567146102b95761018d565b806306fdde0314610192578063095ea7b31461020f575b600080fd5b61019a61064e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d45781810151838201526020016101bc565b50505050905090810190601f1680156102015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102486004803603604081101561022557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610702565b604080519115158252519081900360200190f35b610264610718565b60408051918252519081900360200190f35b6102486004803603606081101561028c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561071e565b6102c1610794565b6040805160ff9092168252519081900360200190f35b610248600480360360408110156102ed57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561079d565b6103496004803603604081101561032657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107e0565b005b6103496004803603606081101561036157600080fd5b81019060208101813564010000000081111561037c57600080fd5b82018360208201111561038e57600080fd5b803590602001918460018302840111640100000000831117156103b057600080fd5b9193909290916020810190356401000000008111156103ce57600080fd5b8201836020820111156103e057600080fd5b8035906020019184600183028401116401000000008311171561040257600080fd5b91935091503560ff16610896565b6102646004803603602081101561042657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610990565b6103496109a1565b6102646004803603602081101561046157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ab8565b610349610aca565b61048e610be6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61019a610c02565b610264610c81565b610349600480360360408110156104dd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ca5565b6102486004803603604081101561051657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610d57565b6102486004803603604081101561054f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610db3565b610349600480360360e081101561058857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610dc0565b610264600480360360408110156105e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166110ed565b6103496004803603602081101561062157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611125565b6102646112c7565b6102c16113bd565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106f85780601f106106cd576101008083540402835291602001916106f8565b820191906000526020600020905b8154815290600101906020018083116106db57829003601f168201915b5050505050905090565b600061070f3384846113c2565b50600192915050565b60675490565b600061072b848484611509565b61078a8433610785856040518060600160405280602881526020016120786028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260666020908152604080832033845290915290205491906116db565b6113c2565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161070f918590610785908661178c565b6107e8611807565b73ffffffffffffffffffffffffffffffffffffffff16610806610be6565b73ffffffffffffffffffffffffffffffffffffffff161461088857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610892828261180b565b5050565b61089e611807565b73ffffffffffffffffffffffffffffffffffffffff166108bc610be6565b73ffffffffffffffffffffffffffffffffffffffff161461093e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61094a60688686611ed7565b5061095760698484611ed7565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b600061099b8261193e565b92915050565b6109a9611807565b73ffffffffffffffffffffffffffffffffffffffff166109c7610be6565b73ffffffffffffffffffffffffffffffffffffffff1614610a4957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610ae35750610ae3611966565b80610af1575060005460ff16155b610b46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015610bac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610bb4611977565b8015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106f85780601f106106cd576101008083540402835291602001916106f8565b7f000000000000000000000000000000000000000000000000000000000000000081565b610cad611807565b73ffffffffffffffffffffffffffffffffffffffff16610ccb610be6565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6108928282611a69565b600061070f33846107858560405180606001604052806025815260200161210a6025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906116db565b600061070f338484611509565b83421115610e2f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610eb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f0000000000000000000000000000000000000000000000000000000000000000610f6a6112c7565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611004573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b602052604090206001850190556110e08b8b8b6113c2565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61112d611807565b73ffffffffffffffffffffffffffffffffffffffff1661114b610be6565b73ffffffffffffffffffffffffffffffffffffffff16146111cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611239576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fdc6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561134e5780601f1061132c57610100808354040283529182019161134e565b820191906000526020600020905b81548152906001019060200180831161133a575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b600081565b73ffffffffffffffffffffffffffffffffffffffff831661142e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120e66024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661149a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120026022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611575576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120c16025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f976023913960400191505060405180910390fd5b6115ec838383611bb3565b611636816040518060600160405280602681526020016120246026913973ffffffffffffffffffffffffffffffffffffffff861660009081526065602052604090205491906116db565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152606560205260408082209390935590841681522054611672908261178c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611784576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611749578181015183820152602001611731565b50505050905090810190601f1680156117765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561180057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff821661188d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61189960008383611bb3565b6067546118a6908261178c565b60675573ffffffffffffffffffffffffffffffffffffffff82166000908152606560205260409020546118d9908261178c565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b600061197130611bb8565b15905090565b600054610100900460ff16806119905750611990611966565b8061199e575060005460ff16155b6119f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015611a5957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611a61611bbe565b610bb4611cd0565b73ffffffffffffffffffffffffffffffffffffffff8216611ad5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120a06021913960400191505060405180910390fd5b611ae182600083611bb3565b611b2b81604051806060016040528060228152602001611fba6022913973ffffffffffffffffffffffffffffffffffffffff851660009081526065602052604090205491906116db565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611b5e9082611e60565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611bd75750611bd7611966565b80611be5575060005460ff16155b611c3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015610bb457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611ce95750611ce9611966565b80611cf7575060005460ff16155b611d4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015611db257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611dbc611807565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600082821115611ed157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611f0d5760008555611f71565b82601f10611f44578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611f71565b82800160010185558215611f71579182015b82811115611f71578235825591602001919060010190611f56565b50611f7d929150611f81565b5090565b5b80821115611f7d5760008155600101611f8256fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c400a620a255cf352eecf9a350608b5f88bfd46306060bfc7299985e98f74e9164736f6c63430007060033"; + "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c6121646100a560003980610f43525080611369525080610c835280610edf52506121646000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80638129fc1c116100e3578063a9059cbb1161008c578063f2fde38b11610066578063f2fde38b1461060b578063f698da251461063e578063ffa1ad74146106465761018d565b8063a9059cbb14610539578063d505accf14610572578063dd62ed3e146105d05761018d565b8063982aaf6b116100bd578063982aaf6b146104bf5780639dc29fac146104c7578063a457c2d7146105005761018d565b80638129fc1c1461047e5780638da5cb5b1461048657806395d89b41146104b75761018d565b8063395093511161014557806370a082311161011f57806370a0823114610410578063715018a6146104435780637ecebe001461044b5761018d565b806339509351146102d757806340c10f1914610310578063654935f41461034b5761018d565b806318160ddd1161017657806318160ddd1461025c57806323b872dd14610276578063313ce567146102b95761018d565b806306fdde0314610192578063095ea7b31461020f575b600080fd5b61019a61064e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d45781810151838201526020016101bc565b50505050905090810190601f1680156102015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102486004803603604081101561022557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610702565b604080519115158252519081900360200190f35b610264610718565b60408051918252519081900360200190f35b6102486004803603606081101561028c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561071e565b6102c1610794565b6040805160ff9092168252519081900360200190f35b610248600480360360408110156102ed57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561079d565b6103496004803603604081101561032657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107e0565b005b6103496004803603606081101561036157600080fd5b81019060208101813564010000000081111561037c57600080fd5b82018360208201111561038e57600080fd5b803590602001918460018302840111640100000000831117156103b057600080fd5b9193909290916020810190356401000000008111156103ce57600080fd5b8201836020820111156103e057600080fd5b8035906020019184600183028401116401000000008311171561040257600080fd5b91935091503560ff16610896565b6102646004803603602081101561042657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610990565b6103496109a1565b6102646004803603602081101561046157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ab8565b610349610aca565b61048e610be6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61019a610c02565b610264610c81565b610349600480360360408110156104dd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ca5565b6102486004803603604081101561051657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610d57565b6102486004803603604081101561054f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610db3565b610349600480360360e081101561058857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610dc0565b610264600480360360408110156105e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166110ed565b6103496004803603602081101561062157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611125565b6102646112c7565b6102c16113bd565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106f85780601f106106cd576101008083540402835291602001916106f8565b820191906000526020600020905b8154815290600101906020018083116106db57829003601f168201915b5050505050905090565b600061070f3384846113c2565b50600192915050565b60675490565b600061072b848484611509565b61078a8433610785856040518060600160405280602881526020016120786028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260666020908152604080832033845290915290205491906116db565b6113c2565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161070f918590610785908661178c565b6107e8611807565b73ffffffffffffffffffffffffffffffffffffffff16610806610be6565b73ffffffffffffffffffffffffffffffffffffffff161461088857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610892828261180b565b5050565b61089e611807565b73ffffffffffffffffffffffffffffffffffffffff166108bc610be6565b73ffffffffffffffffffffffffffffffffffffffff161461093e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61094a60688686611ed7565b5061095760698484611ed7565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b600061099b8261193e565b92915050565b6109a9611807565b73ffffffffffffffffffffffffffffffffffffffff166109c7610be6565b73ffffffffffffffffffffffffffffffffffffffff1614610a4957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610ae35750610ae3611966565b80610af1575060005460ff16155b610b46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015610bac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610bb4611977565b8015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106f85780601f106106cd576101008083540402835291602001916106f8565b7f000000000000000000000000000000000000000000000000000000000000000081565b610cad611807565b73ffffffffffffffffffffffffffffffffffffffff16610ccb610be6565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6108928282611a69565b600061070f33846107858560405180606001604052806025815260200161210a6025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906116db565b600061070f338484611509565b83421115610e2f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610eb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f0000000000000000000000000000000000000000000000000000000000000000610f6a6112c7565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611004573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b602052604090206001850190556110e08b8b8b6113c2565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61112d611807565b73ffffffffffffffffffffffffffffffffffffffff1661114b610be6565b73ffffffffffffffffffffffffffffffffffffffff16146111cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611239576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fdc6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561134e5780601f1061132c57610100808354040283529182019161134e565b820191906000526020600020905b81548152906001019060200180831161133a575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b600081565b73ffffffffffffffffffffffffffffffffffffffff831661142e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120e66024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661149a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120026022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611575576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120c16025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f976023913960400191505060405180910390fd5b6115ec838383611bb3565b611636816040518060600160405280602681526020016120246026913973ffffffffffffffffffffffffffffffffffffffff861660009081526065602052604090205491906116db565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152606560205260408082209390935590841681522054611672908261178c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611784576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611749578181015183820152602001611731565b50505050905090810190601f1680156117765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561180057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff821661188d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61189960008383611bb3565b6067546118a6908261178c565b60675573ffffffffffffffffffffffffffffffffffffffff82166000908152606560205260409020546118d9908261178c565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b600061197130611bb8565b15905090565b600054610100900460ff16806119905750611990611966565b8061199e575060005460ff16155b6119f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015611a5957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611a61611bbe565b610bb4611cd0565b73ffffffffffffffffffffffffffffffffffffffff8216611ad5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120a06021913960400191505060405180910390fd5b611ae182600083611bb3565b611b2b81604051806060016040528060228152602001611fba6022913973ffffffffffffffffffffffffffffffffffffffff851660009081526065602052604090205491906116db565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611b5e9082611e60565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611bd75750611bd7611966565b80611be5575060005460ff16155b611c3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015610bb457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611ce95750611ce9611966565b80611cf7575060005460ff16155b611d4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061204a602e913960400191505060405180910390fd5b600054610100900460ff16158015611db257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611dbc611807565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610be357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600082821115611ed157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611f0d5760008555611f71565b82601f10611f44578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611f71565b82800160010185558215611f71579182015b82811115611f71578235825591602001919060010190611f56565b50611f7d929150611f81565b5090565b5b80821115611f7d5760008155600101611f8256fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd3c7adf3abcafbea5db66403ce63c3439e83481286f84b3e815e9ec76e8155064736f6c63430007060033"; export class BridgeToken__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/ETHHelper__factory.ts b/typescript/typechain/abacus-xapps/factories/ETHHelper__factory.ts index 8e5196df9..1c1bf3a42 100644 --- a/typescript/typechain/abacus-xapps/factories/ETHHelper__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/ETHHelper__factory.ts @@ -101,7 +101,7 @@ const _abi = [ ]; const _bytecode = - "0x60c060405234801561001057600080fd5b5060405161045d38038061045d8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606083811b821660805282901b1660a0526040805163095ea7b360e01b81526001600160a01b038084166004830152600019602483015291519184169163095ea7b39160448082019260009290919082900301818387803b1580156100a957600080fd5b505af11580156100bd573d6000803e3d6000fd5b50505050505060805160601c60a05160601c6103626100fb6000398061023e52806102e052508061014152806101fb52806102bc52506103626000f3fe60806040526004361061005a5760003560e01c80633fc8cef3116100435780633fc8cef3146100ad578063e78cea92146100eb578063ec93e5f0146101005761005a565b806303c1d2831461005f5780632e96d5a31461008a575b600080fd5b6100886004803603604081101561007557600080fd5b5063ffffffff813516906020013561013f565b005b610088600480360360208110156100a057600080fd5b503563ffffffff166102a5565b3480156100b957600080fd5b506100c26102ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100f757600080fd5b506100c26102de565b6100886004803603604081101561011657600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff16610302565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b5050604080517f1cabf08f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015234602483015263ffffffff881660448301526064820187905291517f00000000000000000000000000000000000000000000000000000000000000009092169450631cabf08f9350608480820193506000929182900301818387803b15801561028957600080fd5b505af115801561029d573d6000803e3d6000fd5b505050505050565b6102b7816102b233610313565b61013f565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61030f826102b283610313565b5050565b73ffffffffffffffffffffffffffffffffffffffff169056fea264697066735822122092b04f9be2b8a141c6315df8b8c6f54b2b8070ad1c6102c6adcbf3a2eb26737664736f6c63430007060033"; + "0x60c060405234801561001057600080fd5b5060405161045d38038061045d8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606083811b821660805282901b1660a0526040805163095ea7b360e01b81526001600160a01b038084166004830152600019602483015291519184169163095ea7b39160448082019260009290919082900301818387803b1580156100a957600080fd5b505af11580156100bd573d6000803e3d6000fd5b50505050505060805160601c60a05160601c6103626100fb6000398061023e52806102e052508061014152806101fb52806102bc52506103626000f3fe60806040526004361061005a5760003560e01c80633fc8cef3116100435780633fc8cef3146100ad578063e78cea92146100eb578063ec93e5f0146101005761005a565b806303c1d2831461005f5780632e96d5a31461008a575b600080fd5b6100886004803603604081101561007557600080fd5b5063ffffffff813516906020013561013f565b005b610088600480360360208110156100a057600080fd5b503563ffffffff166102a5565b3480156100b957600080fd5b506100c26102ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100f757600080fd5b506100c26102de565b6100886004803603604081101561011657600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff16610302565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b5050604080517f1cabf08f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015234602483015263ffffffff881660448301526064820187905291517f00000000000000000000000000000000000000000000000000000000000000009092169450631cabf08f9350608480820193506000929182900301818387803b15801561028957600080fd5b505af115801561029d573d6000803e3d6000fd5b505050505050565b6102b7816102b233610313565b61013f565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61030f826102b283610313565b5050565b73ffffffffffffffffffffffffffffffffffffffff169056fea26469706673582212201dc9bf30653661849be4a806c1817e3e68a25dc9b56b4413c3ad1aa16d9e868664736f6c63430007060033"; export class ETHHelper__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/Home__factory.ts b/typescript/typechain/abacus-xapps/factories/Home__factory.ts index 722b06219..1ea1946a2 100644 --- a/typescript/typechain/abacus-xapps/factories/Home__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/Home__factory.ts @@ -616,7 +616,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b50604051612cd5380380612cd58339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612c6761006e600039806109875280610ad55280610fad5250612c676000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639df6c8e1116100ee578063df034cd011610097578063f6d1610211610071578063f6d16102146105fc578063fa31de0114610604578063fd54b228146106bc578063ffa1ad74146106c4576101ae565b8063df034cd0146105b9578063ebf0c717146105c1578063f2fde38b146105c9576101ae565b8063b95a2001116100c8578063b95a20011461053a578063c19d93fb1461055d578063c4d66de814610586576101ae565b80639df6c8e114610478578063ab91c7b014610480578063b31c01fb14610488576101ae565b806367a6771d1161015b5780638da5cb5b116101355780638da5cb5b1461032f5780638e4e30e0146103605780639776120e146104125780639d54f41914610445576101ae565b806367a6771d146102fe578063715018a6146103065780638d3638f41461030e576101ae565b806336e104de1161018c57806336e104de146102cd57806345630b1a146102ee578063522ae002146102f6576101ae565b806306661abd146101b357806319d9d21a146101cd5780632bef28921461029c575b600080fd5b6101bb6106e2565b60408051918252519081900360200190f35b61029a600480360360a08110156101e357600080fd5b813591602081019181019060808101606082013564010000000081111561020957600080fd5b82018360208201111561021b57600080fd5b8035906020019184600183028401116401000000008311171561023d57600080fd5b91939092909160208101903564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b5090925090506106e8565b005b6102b9600480360360208110156102b257600080fd5b5035610945565b604080519115158252519081900360200190f35b6102d5610958565b6040805192835260208301919091528051918290030190f35b6101bb610980565b6101bb6109b0565b6101bb6109b6565b61029a6109bc565b610316610ad3565b6040805163ffffffff9092168252519081900360200190f35b610337610af7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102b96004803603606081101561037657600080fd5b81359160208101359181019060608101604082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460018302840111640100000000831117156103d157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b13945050505050565b61029a6004803603602081101561042857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d66565b61029a6004803603602081101561045b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e1a565b610337610eaa565b6101bb610ec7565b61029a6004803603606081101561049e57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ed3945050505050565b6103166004803603602081101561055057600080fd5b503563ffffffff16611071565b61056561108a565b6040518082600281111561057557fe5b815260200191505060405180910390f35b61029a6004803603602081101561059c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110ab565b6103376112c6565b6101bb6112e2565b61029a600480360360208110156105df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112ee565b6101bb611490565b61029a6004803603606081101561061a57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561064757600080fd5b82018360208201111561065957600080fd5b8035906020019184600183028401116401000000008311171561067b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149c945050505050565b6101bb61158f565b6106cc611595565b6040805160ff9092168252519081900360200190f35b60545490565b600260865474010000000000000000000000000000000000000000900460ff16600281111561071357fe5b141561078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107c2918891883591889088908190840183828082843760009201919091525061159a92505050565b8015610811575061081186866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061159a92505050565b801561082257508435602086013514155b1561093d5761082f61162c565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b6000610952600183611708565b92915050565b6000806109656001611778565b1561097c57608754915061097960016117b8565b90505b9091565b60006109ab7f00000000000000000000000000000000000000000000000000000000000000006117f5565b905090565b61080081565b60875481565b6109c461186a565b73ffffffffffffffffffffffffffffffffffffffff166109e2610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610a6457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b4057fe5b1415610bad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610bb884848461159a565b610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c9357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c9e600184611708565b610d5b57610caa61162c565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d17578181015183820152602001610cff565b50505050905090810190601f168015610d445780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d5f565b5060005b9392505050565b610d6e61186a565b73ffffffffffffffffffffffffffffffffffffffff16610d8c610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e178161186e565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610ea157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e178161195c565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab6001611778565b600260865474010000000000000000000000000000000000000000900460ff166002811115610efe57fe5b1415610f6b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f76838383610b13565b15610f805761106c565b6000610f8c60016119d5565b905082811415610f9c5750610fa2565b50610f80565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611031578181015183820152602001611019565b50505050905090810190601f16801561105e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806110c457506110c4611b0e565b806110d2575060005460ff16155b611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff1615801561118d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611195611b1f565b61119d611c42565b6111a68261186e565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b5051905061124981611d2e565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a15080156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab6034611ebb565b6112f661186a565b73ffffffffffffffffffffffffffffffffffffffff16611314610af7565b73ffffffffffffffffffffffffffffffffffffffff161461139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611402576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b9a6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109ab60016117b8565b600260865474010000000000000000000000000000000000000000900460ff1660028111156114c757fe5b14156101ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b8381101561154c578181015183820152602001611534565b50505050905090810190601f1680156115795780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b6000806115a5610980565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506115e681611fd2565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661160c8285612023565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b6116346120bd565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d5b576000818152600185016020526040902054831415611770576001915050610952565b600101611720565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166117b082826120fe565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b61187781612118565b6118e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611a0d82826120fe565b611a7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611ac9576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611b1930612118565b15905090565b600054610100900460ff1680611b385750611b38611b0e565b80611b46575060005460ff16155b611b9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611c0157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611c0961211e565b611c11612230565b8015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611c5b5750611c5b611b0e565b80611c69575060005460ff16155b611cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611d2457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611c1160016123c0565b600054610100900460ff1680611d475750611d47611b0e565b80611d55575060005460ff16155b611daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611e1057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b600061095282611ec9612404565b6128c5565b60208310611f0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611ece565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b6020811015611fcf578160011660011415611f7c5782848260208110611f7257fe5b0155506112c29050565b838160208110611f8857fe5b015483604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120925060028281611fc457fe5b049150600101611f50565b50fe5b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461209557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6120b386828585612983565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff16806121375750612137611b0e565b80612145575060005460ff16155b61219a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff16158015611c1157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806122495750612249611b0e565b80612257575060005460ff16155b6122ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612be2602e913960400191505060405180910390fd5b600054610100900460ff1615801561231257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600061231c61186a565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610e175780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b61240c612b7a565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b602081101561297b57600182821c1660008683602081106128ec57fe5b01549050816001141561292f5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612971565b8486846020811061293c57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b50506001016128cf565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156129fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612bc06022913960400191505060405180910390fd5b8360ff16601b1480612a1357508360ff16601c145b612a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612c106022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612ac4573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612b7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220af6b1ab9e13e441b473b9d08c3dfe381d607c3e8e311ee9f0436a82fdaed4be664736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b50604051612fbe380380612fbe8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f4b610073600039806109875280610ad55280610fad52806115f55250612f4b6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639df6c8e1116100ee578063df034cd011610097578063f6d1610211610071578063f6d16102146105fc578063fa31de0114610604578063fd54b228146106bc578063ffa1ad74146106c4576101ae565b8063df034cd0146105b9578063ebf0c717146105c1578063f2fde38b146105c9576101ae565b8063b95a2001116100c8578063b95a20011461053a578063c19d93fb1461055d578063c4d66de814610586576101ae565b80639df6c8e114610478578063ab91c7b014610480578063b31c01fb14610488576101ae565b806367a6771d1161015b5780638da5cb5b116101355780638da5cb5b1461032f5780638e4e30e0146103605780639776120e146104125780639d54f41914610445576101ae565b806367a6771d146102fe578063715018a6146103065780638d3638f41461030e576101ae565b806336e104de1161018c57806336e104de146102cd57806345630b1a146102ee578063522ae002146102f6576101ae565b806306661abd146101b357806319d9d21a146101cd5780632bef28921461029c575b600080fd5b6101bb6106e2565b60408051918252519081900360200190f35b61029a600480360360a08110156101e357600080fd5b813591602081019181019060808101606082013564010000000081111561020957600080fd5b82018360208201111561021b57600080fd5b8035906020019184600183028401116401000000008311171561023d57600080fd5b91939092909160208101903564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b5090925090506106e8565b005b6102b9600480360360208110156102b257600080fd5b5035610945565b604080519115158252519081900360200190f35b6102d5610958565b6040805192835260208301919091528051918290030190f35b6101bb610980565b6101bb6109b0565b6101bb6109b6565b61029a6109bc565b610316610ad3565b6040805163ffffffff9092168252519081900360200190f35b610337610af7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102b96004803603606081101561037657600080fd5b81359160208101359181019060608101604082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460018302840111640100000000831117156103d157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b13945050505050565b61029a6004803603602081101561042857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d66565b61029a6004803603602081101561045b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e1a565b610337610eaa565b6101bb610ec7565b61029a6004803603606081101561049e57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ed3945050505050565b6103166004803603602081101561055057600080fd5b503563ffffffff16611071565b61056561108a565b6040518082600281111561057557fe5b815260200191505060405180910390f35b61029a6004803603602081101561059c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110ab565b6103376112c6565b6101bb6112e2565b61029a600480360360208110156105df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112ee565b6101bb611490565b61029a6004803603606081101561061a57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561064757600080fd5b82018360208201111561065957600080fd5b8035906020019184600183028401116401000000008311171561067b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149c945050505050565b6101bb611712565b6106cc611718565b6040805160ff9092168252519081900360200190f35b60545490565b600260865474010000000000000000000000000000000000000000900460ff16600281111561071357fe5b141561078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107c2918891883591889088908190840183828082843760009201919091525061171d92505050565b8015610811575061081186866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061171d92505050565b801561082257508435602086013514155b1561093d5761082f6117af565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b600061095260018361188b565b92915050565b60008061096560016118fb565b1561097c576087549150610979600161193b565b90505b9091565b60006109ab7f0000000000000000000000000000000000000000000000000000000000000000611978565b905090565b61080081565b60875481565b6109c46119ed565b73ffffffffffffffffffffffffffffffffffffffff166109e2610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610a6457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b4057fe5b1415610bad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610bb884848461171d565b610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c9357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c9e60018461188b565b610d5b57610caa6117af565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d17578181015183820152602001610cff565b50505050905090810190601f168015610d445780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d5f565b5060005b9392505050565b610d6e6119ed565b73ffffffffffffffffffffffffffffffffffffffff16610d8c610af7565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e17816119f1565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610ea157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e1781611adf565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab60016118fb565b600260865474010000000000000000000000000000000000000000900460ff166002811115610efe57fe5b1415610f6b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f76838383610b13565b15610f805761106c565b6000610f8c6001611b58565b905082811415610f9c5750610fa2565b50610f80565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611031578181015183820152602001611019565b50505050905090810190601f16801561105e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b600054610100900460ff16806110c457506110c4611c91565b806110d2575060005460ff16155b611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff1615801561118d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611195611ca2565b61119d611dc5565b6111a6826119f1565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b5051905061124981611eb1565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a15080156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109ab603461203e565b6112f66119ed565b73ffffffffffffffffffffffffffffffffffffffff16611314610af7565b73ffffffffffffffffffffffffffffffffffffffff161461139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611402576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e7e6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109ab600161193b565b600260865474010000000000000000000000000000000000000000900460ff1660028111156114c757fe5b141561153457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610800815111156115a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905561161e7f00000000000000000000000000000000000000000000000000000000000000003384888888612051565b80516020820120909150611633603482612127565b61164661163e6112e2565b60019061222f565b50611651868461229c565b67ffffffffffffffff1660016116656106e2565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156116cf5781810151838201526020016116b7565b50505050905090810190601f1680156116fc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60545481565b600081565b600080611728610980565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611769816122b6565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661178f8285612307565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b6117b76123a1565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b15801561182a57600080fd5b505af115801561183e573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d5b5760008181526001850160205260409020548314156118f3576001915050610952565b6001016118a3565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661193382826123e2565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119fa816123fc565b611a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b9082826123e2565b611bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c4c576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c9c306123fc565b15905090565b600054610100900460ff1680611cbb5750611cbb611c91565b80611cc9575060005460ff16155b611d1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d8457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d8c612402565b611d94612514565b8015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611dde5750611dde611c91565b80611dec575060005460ff16155b611e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611ea757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d9460016126a4565b600054610100900460ff1680611eca5750611eca611c91565b80611ed8575060005460ff16155b611f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611f9357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156112c257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b60006109528261204c6126e8565b612ba9565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106120e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a5565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161219d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b602081101561222c5781600116600114156121d957828482602081106121cf57fe5b0155506112c29050565b8381602081106121e557fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161222157fe5b0491506001016121ad565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610952576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461237957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61239786828585612c67565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168061241b575061241b611c91565b80612429575060005460ff16155b61247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff16158015611d9457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff168061252d575061252d611c91565b8061253b575060005460ff16155b612590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612ec6602e913960400191505060405180910390fd5b600054610100900460ff161580156125f657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006126006119ed565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e1757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b80546fffffffffffffffffffffffffffffffff16610e175780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b6126f0612e5e565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612c5f57600182821c166000868360208110612bd057fe5b015490508160011415612c135780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612c55565b84868460208110612c2057fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612bb3565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ea46022913960400191505060405180910390fd5b8360ff16601b1480612cf757508360ff16601c145b612d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ef46022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612da8573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612e5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a264697066735822122076f15ccd0d11afe57a77e1cd5655a24a029cf4f512c965c14e704c83554c35dd64736f6c63430007060033"; export class Home__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/MockWeth__factory.ts b/typescript/typechain/abacus-xapps/factories/MockWeth__factory.ts index 912950ff6..e098c4711 100644 --- a/typescript/typechain/abacus-xapps/factories/MockWeth__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/MockWeth__factory.ts @@ -506,7 +506,7 @@ const _abi = [ ]; const _bytecode = - "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c6122a16100a5600039806110805250806114a6525080610db4528061101c52506122a16000f3fe60806040526004361061018b5760003560e01c80638da5cb5b116100d6578063d0e30db01161007f578063f2fde38b11610059578063f2fde38b14610715578063f698da2514610755578063ffa1ad741461076a5761018b565b8063d0e30db01461065a578063d505accf14610662578063dd62ed3e146106cd5761018b565b80639dc29fac116100b05780639dc29fac14610588578063a457c2d7146105ce578063a9059cbb146106145761018b565b80638da5cb5b1461052057806395d89b411461055e578063982aaf6b146105735761018b565b806340c10f1911610138578063715018a611610112578063715018a6146104b65780637ecebe00146104cb5780638129fc1c1461050b5761018b565b806340c10f191461035c578063654935f4146103a457806370a08231146104765761018b565b806323b872dd1161016957806323b872dd1461029b578063313ce567146102eb57806339509351146103165761018b565b806306fdde0314610190578063095ea7b31461021a57806318160ddd14610274575b600080fd5b34801561019c57600080fd5b506101a561077f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101df5781810151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022657600080fd5b506102606004803603604081101561023d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610833565b604080519115158252519081900360200190f35b34801561028057600080fd5b50610289610849565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610260600480360360608110156102be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561084f565b3480156102f757600080fd5b506103006108c5565b6040805160ff9092168252519081900360200190f35b34801561032257600080fd5b506102606004803603604081101561033957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108ce565b34801561036857600080fd5b506103a26004803603604081101561037f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610911565b005b3480156103b057600080fd5b506103a2600480360360608110156103c757600080fd5b8101906020810181356401000000008111156103e257600080fd5b8201836020820111156103f457600080fd5b8035906020019184600183028401116401000000008311171561041657600080fd5b91939092909160208101903564010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91935091503560ff166109c7565b34801561048257600080fd5b506102896004803603602081101561049957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ac1565b3480156104c257600080fd5b506103a2610ad2565b3480156104d757600080fd5b50610289600480360360208110156104ee57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610be9565b34801561051757600080fd5b506103a2610bfb565b34801561052c57600080fd5b50610535610d17565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561056a57600080fd5b506101a5610d33565b34801561057f57600080fd5b50610289610db2565b34801561059457600080fd5b506103a2600480360360408110156105ab57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610dd6565b3480156105da57600080fd5b50610260600480360360408110156105f157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e88565b34801561062057600080fd5b506102606004803603604081101561063757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ee4565b6103a2610ef1565b34801561066e57600080fd5b506103a2600480360360e081101561068557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610efd565b3480156106d957600080fd5b50610289600480360360408110156106f057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661122a565b34801561072157600080fd5b506103a26004803603602081101561073857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611262565b34801561076157600080fd5b50610289611404565b34801561077657600080fd5b506103006114fa565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108295780601f106107fe57610100808354040283529160200191610829565b820191906000526020600020905b81548152906001019060200180831161080c57829003601f168201915b5050505050905090565b60006108403384846114ff565b50600192915050565b60675490565b600061085c848484611646565b6108bb84336108b6856040518060600160405280602881526020016121b56028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526066602090815260408083203384529091529020549190611818565b6114ff565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916108409185906108b690866118c9565b610919611944565b73ffffffffffffffffffffffffffffffffffffffff16610937610d17565b73ffffffffffffffffffffffffffffffffffffffff16146109b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109c38282611948565b5050565b6109cf611944565b73ffffffffffffffffffffffffffffffffffffffff166109ed610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610a6f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a7b60688686612014565b50610a8860698484612014565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b6000610acc82611a7b565b92915050565b610ada611944565b73ffffffffffffffffffffffffffffffffffffffff16610af8610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610b7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610c145750610c14611aa3565b80610c22575060005460ff16155b610c77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015610cdd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610ce5611ab4565b8015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108295780601f106107fe57610100808354040283529160200191610829565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dde611944565b73ffffffffffffffffffffffffffffffffffffffff16610dfc610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109c38282611ba6565b600061084033846108b6856040518060600160405280602581526020016122476025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529020549190611818565b6000610840338484611646565b610efb3334611948565b565b83421115610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610fee57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f00000000000000000000000000000000000000000000000000000000000000006110a7611404565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611141573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b6020526040902060018501905561121d8b8b8b6114ff565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61126a611944565b73ffffffffffffffffffffffffffffffffffffffff16611288610d17565b73ffffffffffffffffffffffffffffffffffffffff161461130a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611376576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806121196026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561148b5780601f1061146957610100808354040283529182019161148b565b820191906000526020600020905b815481529060010190602001808311611477575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b600081565b73ffffffffffffffffffffffffffffffffffffffff831661156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806122236024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061213f6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806121fe6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661171e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120d46023913960400191505060405180910390fd5b611729838383611cf0565b611773816040518060600160405280602681526020016121616026913973ffffffffffffffffffffffffffffffffffffffff86166000908152606560205260409020549190611818565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526065602052604080822093909355908416815220546117af90826118c9565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561188657818101518382015260200161186e565b50505050905090810190601f1680156118b35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561193d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff82166119ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6119d660008383611cf0565b6067546119e390826118c9565b60675573ffffffffffffffffffffffffffffffffffffffff8216600090815260656020526040902054611a1690826118c9565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b6000611aae30611cf5565b15905090565b600054610100900460ff1680611acd5750611acd611aa3565b80611adb575060005460ff16155b611b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015611b9657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611b9e611cfb565b610ce5611e0d565b73ffffffffffffffffffffffffffffffffffffffff8216611c12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121dd6021913960400191505060405180910390fd5b611c1e82600083611cf0565b611c68816040518060600160405280602281526020016120f76022913973ffffffffffffffffffffffffffffffffffffffff85166000908152606560205260409020549190611818565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611c9b9082611f9d565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611d145750611d14611aa3565b80611d22575060005460ff16155b611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015610ce557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611e265750611e26611aa3565b80611e34575060005460ff16155b611e89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015611eef57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611ef9611944565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008282111561200e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261204a57600085556120ae565b82601f10612081578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008235161785556120ae565b828001600101855582156120ae579182015b828111156120ae578235825591602001919060010190612093565b506120ba9291506120be565b5090565b5b808211156120ba57600081556001016120bf56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202a8d0abff011cd67e77f3d2b5cd1489dce98f52ebd8a785221a0504cc4a0c47b64736f6c63430007060033"; + "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c6122a16100a5600039806110805250806114a6525080610db4528061101c52506122a16000f3fe60806040526004361061018b5760003560e01c80638da5cb5b116100d6578063d0e30db01161007f578063f2fde38b11610059578063f2fde38b14610715578063f698da2514610755578063ffa1ad741461076a5761018b565b8063d0e30db01461065a578063d505accf14610662578063dd62ed3e146106cd5761018b565b80639dc29fac116100b05780639dc29fac14610588578063a457c2d7146105ce578063a9059cbb146106145761018b565b80638da5cb5b1461052057806395d89b411461055e578063982aaf6b146105735761018b565b806340c10f1911610138578063715018a611610112578063715018a6146104b65780637ecebe00146104cb5780638129fc1c1461050b5761018b565b806340c10f191461035c578063654935f4146103a457806370a08231146104765761018b565b806323b872dd1161016957806323b872dd1461029b578063313ce567146102eb57806339509351146103165761018b565b806306fdde0314610190578063095ea7b31461021a57806318160ddd14610274575b600080fd5b34801561019c57600080fd5b506101a561077f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101df5781810151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022657600080fd5b506102606004803603604081101561023d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610833565b604080519115158252519081900360200190f35b34801561028057600080fd5b50610289610849565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610260600480360360608110156102be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561084f565b3480156102f757600080fd5b506103006108c5565b6040805160ff9092168252519081900360200190f35b34801561032257600080fd5b506102606004803603604081101561033957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108ce565b34801561036857600080fd5b506103a26004803603604081101561037f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610911565b005b3480156103b057600080fd5b506103a2600480360360608110156103c757600080fd5b8101906020810181356401000000008111156103e257600080fd5b8201836020820111156103f457600080fd5b8035906020019184600183028401116401000000008311171561041657600080fd5b91939092909160208101903564010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91935091503560ff166109c7565b34801561048257600080fd5b506102896004803603602081101561049957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ac1565b3480156104c257600080fd5b506103a2610ad2565b3480156104d757600080fd5b50610289600480360360208110156104ee57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610be9565b34801561051757600080fd5b506103a2610bfb565b34801561052c57600080fd5b50610535610d17565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561056a57600080fd5b506101a5610d33565b34801561057f57600080fd5b50610289610db2565b34801561059457600080fd5b506103a2600480360360408110156105ab57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610dd6565b3480156105da57600080fd5b50610260600480360360408110156105f157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e88565b34801561062057600080fd5b506102606004803603604081101561063757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ee4565b6103a2610ef1565b34801561066e57600080fd5b506103a2600480360360e081101561068557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610efd565b3480156106d957600080fd5b50610289600480360360408110156106f057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661122a565b34801561072157600080fd5b506103a26004803603602081101561073857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611262565b34801561076157600080fd5b50610289611404565b34801561077657600080fd5b506103006114fa565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108295780601f106107fe57610100808354040283529160200191610829565b820191906000526020600020905b81548152906001019060200180831161080c57829003601f168201915b5050505050905090565b60006108403384846114ff565b50600192915050565b60675490565b600061085c848484611646565b6108bb84336108b6856040518060600160405280602881526020016121b56028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526066602090815260408083203384529091529020549190611818565b6114ff565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916108409185906108b690866118c9565b610919611944565b73ffffffffffffffffffffffffffffffffffffffff16610937610d17565b73ffffffffffffffffffffffffffffffffffffffff16146109b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109c38282611948565b5050565b6109cf611944565b73ffffffffffffffffffffffffffffffffffffffff166109ed610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610a6f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a7b60688686612014565b50610a8860698484612014565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b6000610acc82611a7b565b92915050565b610ada611944565b73ffffffffffffffffffffffffffffffffffffffff16610af8610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610b7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610c145750610c14611aa3565b80610c22575060005460ff16155b610c77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015610cdd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610ce5611ab4565b8015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108295780601f106107fe57610100808354040283529160200191610829565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dde611944565b73ffffffffffffffffffffffffffffffffffffffff16610dfc610d17565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109c38282611ba6565b600061084033846108b6856040518060600160405280602581526020016122476025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529020549190611818565b6000610840338484611646565b610efb3334611948565b565b83421115610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610fee57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f00000000000000000000000000000000000000000000000000000000000000006110a7611404565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611141573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b6020526040902060018501905561121d8b8b8b6114ff565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61126a611944565b73ffffffffffffffffffffffffffffffffffffffff16611288610d17565b73ffffffffffffffffffffffffffffffffffffffff161461130a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611376576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806121196026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561148b5780601f1061146957610100808354040283529182019161148b565b820191906000526020600020905b815481529060010190602001808311611477575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b600081565b73ffffffffffffffffffffffffffffffffffffffff831661156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806122236024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061213f6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806121fe6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661171e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120d46023913960400191505060405180910390fd5b611729838383611cf0565b611773816040518060600160405280602681526020016121616026913973ffffffffffffffffffffffffffffffffffffffff86166000908152606560205260409020549190611818565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526065602052604080822093909355908416815220546117af90826118c9565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561188657818101518382015260200161186e565b50505050905090810190601f1680156118b35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561193d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff82166119ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6119d660008383611cf0565b6067546119e390826118c9565b60675573ffffffffffffffffffffffffffffffffffffffff8216600090815260656020526040902054611a1690826118c9565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b6000611aae30611cf5565b15905090565b600054610100900460ff1680611acd5750611acd611aa3565b80611adb575060005460ff16155b611b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015611b9657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611b9e611cfb565b610ce5611e0d565b73ffffffffffffffffffffffffffffffffffffffff8216611c12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121dd6021913960400191505060405180910390fd5b611c1e82600083611cf0565b611c68816040518060600160405280602281526020016120f76022913973ffffffffffffffffffffffffffffffffffffffff85166000908152606560205260409020549190611818565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611c9b9082611f9d565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611d145750611d14611aa3565b80611d22575060005460ff16155b611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015610ce557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611e265750611e26611aa3565b80611e34575060005460ff16155b611e89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612187602e913960400191505060405180910390fd5b600054610100900460ff16158015611eef57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611ef9611944565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610d1457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008282111561200e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261204a57600085556120ae565b82601f10612081578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008235161785556120ae565b828001600101855582156120ae579182015b828111156120ae578235825591602001919060010190612093565b506120ba9291506120be565b5090565b5b808211156120ba57600081556001016120bf56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a0177c1b8b94038ad8239d17cda5eebfb47c7a8e533bba4682f3a0afd856b73d64736f6c63430007060033"; export class MockWeth__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/Replica__factory.ts b/typescript/typechain/abacus-xapps/factories/Replica__factory.ts index 696f01aa4..37d3d66e5 100644 --- a/typescript/typechain/abacus-xapps/factories/Replica__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/Replica__factory.ts @@ -533,7 +533,7 @@ const _abi = [ ]; const _bytecode = - "0x60e060405234801561001057600080fd5b5060405162002dd938038062002dd98339818101604052606081101561003557600080fd5b50805160208201516040909201516001600160e01b031960e083901b16608052909190620cf85082101561009f576040805162461bcd60e51b815260206004820152600c60248201526b2170726f636573732067617360a01b604482015290519081900360640190fd5b613a988110156100e5576040805162461bcd60e51b815260206004820152600c60248201526b21726573657276652067617360a01b604482015290519081900360640190fd5b60a082905260c081905260805160e01c9250612caa6200012f600039806108e65280610da8525080610d875280610e7f5280611509525080610b035280610b575250612caa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063928bc4b2116100d8578063c19d93fb1161008c578063e7e7a7b711610066578063e7e7a7b7146105e9578063f2fde38b14610634578063ffa1ad741461066757610182565b8063c19d93fb146105d1578063d88beda2146105d9578063df034cd0146105e157610182565b80639d54f419116100bd5780639d54f419146104cf578063a3f81d6814610502578063b31c01fb1461051f57610182565b8063928bc4b214610421578063961681dc146104c757610182565b806345630b1a1161013a57806371bfb7b81161011457806371bfb7b8146103b25780638d3638f4146103cf5780638da5cb5b146103f057610182565b806345630b1a146102f45780636188af0e146102fc57806367a6771d146103aa57610182565b80632bbd59ca1161016b5780632bbd59ca14610270578063371d3071146102ae57806339992668146102ec57610182565b806319d9d21a1461018757806325e3beda14610256575b600080fd5b610254600480360360a081101561019d57600080fd5b81359160208101918101906080810160608201356401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91939092909160208101903564010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b509092509050610685565b005b61025e6108e4565b60408051918252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610908565b6040518082600281111561029d57fe5b815260200191505060405180910390f35b6102d860048036036104408110156102c557600080fd5b508035906020810190610420013561091d565b604080519115158252519081900360200190f35b61025e610a3d565b61025e610a43565b610254600480360361044081101561031357600080fd5b81019060208101813564010000000081111561032e57600080fd5b82018360208201111561034057600080fd5b8035906020019184600183028401116401000000008311171561036257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a5d565b61025e610ae9565b61025e600480360360208110156103c857600080fd5b5035610aef565b6103d7610b01565b6040805163ffffffff9092168252519081900360200190f35b6103f8610b25565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102d86004803603602081101561043757600080fd5b81019060208101813564010000000081111561045257600080fd5b82018360208201111561046457600080fd5b8035906020019184600183028401116401000000008311171561048657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b41945050505050565b6103d7611184565b610254600480360360208110156104e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611190565b6102d86004803603602081101561051857600080fd5b503561126b565b6102546004803603606081101561053557600080fd5b81359160208101359181019060608101604082013564010000000081111561055c57600080fd5b82018360208201111561056e57600080fd5b8035906020019184600183028401116401000000008311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b61028d6114e4565b61025e611507565b6103f861152b565b610254600480360360808110156105ff57600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561154d565b6102546004803603602081101561064a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ed565b61066f6118cc565b6040805160ff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156106b257fe5b141561071f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261076191889188359188908890819084018382808284376000920191909152506118d192505050565b80156107b057506107b086866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d192505050565b80156107c157508435602086013514155b156108dc576107ce611969565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff16600281111561093d57fe5b146109a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109df8585602080602002604051908101604052809291908260208002808284376000920191909152508791506119739050565b90506109ea8161126b565b15610a30575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a36565b60009150505b9392505050565b60325481565b603154600090610a589063ffffffff16611a1e565b905090565b610a6f8380519060200120838361091d565b610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae383610b41565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610b4e8382611a93565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610ba27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611ab9565b63ffffffff1614610c1457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610c417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611aea565b9050600160008281526035602052604090205460ff166002811115610c6257fe5b14610cce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610d4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a1015610e3857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b29565b6040805161010080825261012082019092529192506000917f0000000000000000000000000000000000000000000000000000000000000000908390836020820181803683370190505090506000610ede7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611b3c565b610f097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611b6c565b610f5e610f377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611b9d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611c0e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610fb0578181015183820152602001610f98565b50505050905090810190601f168015610fdd5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d94508385111561107c578394505b848252846000602084013e816040518082805190602001908083835b602083106110d557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611098565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061119a610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111f0575060006111d8610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061125e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61126782611c52565b5050565b6000818152603460205260408120548061128957600091505061128f565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156112c157fe5b141561132e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461139e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6113a98383836118d1565b61141457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61141c611971565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806115665750611566611cd3565b80611574575060005460ff16155b6115c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff1615801561162f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61163884611ce4565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905583815560008481526034602052604090205560328290556116b7336116ed565b80156116e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006116f7610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061174d57506000611735610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b9050806117bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661183d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b6000806118dc610a43565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061191d81611e78565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff166119498285611ec9565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611971611f63565b565b8260005b6020811015611a1657600183821c16600085836020811061199457fe5b6020020151905081600114156119da5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611a0c565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611977565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611aae64ffffffffff85168284611fa6565b925050505b92915050565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612005565b600080611af683612026565b6bffffffffffffffffffffffff1690506000611b118461203a565b6bffffffffffffffffffffffff169091209392505050565b6000611ab3611b378361204e565b61207f565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612005565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612082565b6000611ab3604c80611bd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661203a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061222d565b6060600080611c1c8461203a565b6bffffffffffffffffffffffff1690506040519150819250611c4184836020016122bf565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b6000611cde306123eb565b15905090565b600054610100900460ff1680611cfd5750611cfd611cd3565b80611d0b575060005460ff16155b611d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff16158015611dc657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561126757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611f3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a611f59868285856123f1565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611fb384846125df565b9050604051811115611fc3575060005b80611ff1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a36565b611ffc858585612651565b95945050505050565b60008160200360080260ff1661201c858585612082565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020612082565b90565b600060ff821661209457506000610a36565b61209d8461203a565b6bffffffffffffffffffffffff166120b88460ff85166125df565b1115612197576120f96120ca85612026565b6bffffffffffffffffffffffff166120e18661203a565b6bffffffffffffffffffffffff16858560ff16612664565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215c578181015183820152602001612144565b50505050905090810190601f1680156121895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612bb3603a913960400191505060405180910390fd5b60088202600061220386612026565b6bffffffffffffffffffffffff169050600061221e836127bf565b91909501511695945050505050565b60008061223986612026565b6bffffffffffffffffffffffff16905061225286612808565b6122668561226084896125df565b906125df565b1115612295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506122b7565b61229f81866125df565b90506122b38364ffffffffff168286611fa6565b9150505b949350505050565b60006122ca83612832565b61231f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bed6028913960400191505060405180910390fd5b61232883612844565b61237d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c15602b913960400191505060405180910390fd5b60006123888461203a565b6bffffffffffffffffffffffff16905060006123a385612026565b6bffffffffffffffffffffffff16905060006040519050848111156123c85760206060fd5b8285848460045afa50611f596123dd87612881565b64ffffffffff168685612651565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b206022913960400191505060405180910390fd5b8360ff16601b148061248157508360ff16601c145b6124d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b916022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612532573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ffc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b6060600061267186612887565b915050600061267f86612887565b915050600061268d86612887565b915050600061269b86612887565b915050838383836040516020018080612c40603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612b4282397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b60006128138261203a565b61281c83612026565b016bffffffffffffffffffffffff169050919050565b600061283d8261295b565b1592915050565b600061284f82612881565b64ffffffffff1664ffffffffff141561286a5750600061128f565b600061287583612808565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff1611156128ef5760ff600882021684901c6128ac81612983565b61ffff16841793508160ff166010146128c757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161288d565b50600f5b60ff8160ff1610156129555760ff600882021684901c61291281612983565b61ffff16831792508160ff1660001461292d57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016128f3565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061299560048360ff16901c6129b3565b60ff161760081b62ffff00166129aa826129b3565b60ff1617919050565b600060f08083179060ff821614156129cf57603091505061128f565b8060ff1660f114156129e557603191505061128f565b8060ff1660f214156129fb57603291505061128f565b8060ff1660f31415612a1157603391505061128f565b8060ff1660f41415612a2757603491505061128f565b8060ff1660f51415612a3d57603591505061128f565b8060ff1660f61415612a5357603691505061128f565b8060ff1660f71415612a6957603791505061128f565b8060ff1660f81415612a7f57603891505061128f565b8060ff1660f91415612a9557603991505061128f565b8060ff1660fa1415612aab57606191505061128f565b8060ff1660fb1415612ac157606291505061128f565b8060ff1660fc1415612ad757606391505061128f565b8060ff1660fd1415612aed57606491505061128f565b8060ff1660fe1415612b0357606591505061128f565b8060ff1660ff1415612b1957606691505061128f565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122044b942865d67854c8e0904b7c2f1a13c93c04462dbeed4aafad291a63301a0b364736f6c63430007060033"; + "0x60e060405234801561001057600080fd5b5060405162002dd938038062002dd98339818101604052606081101561003557600080fd5b50805160208201516040909201516001600160e01b031960e083901b16608052909190620cf85082101561009f576040805162461bcd60e51b815260206004820152600c60248201526b2170726f636573732067617360a01b604482015290519081900360640190fd5b613a988110156100e5576040805162461bcd60e51b815260206004820152600c60248201526b21726573657276652067617360a01b604482015290519081900360640190fd5b60a082905260c081905260805160e01c9250612caa6200012f600039806108e65280610da8525080610d875280610e7f5280611509525080610b035280610b575250612caa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063928bc4b2116100d8578063c19d93fb1161008c578063e7e7a7b711610066578063e7e7a7b7146105e9578063f2fde38b14610634578063ffa1ad741461066757610182565b8063c19d93fb146105d1578063d88beda2146105d9578063df034cd0146105e157610182565b80639d54f419116100bd5780639d54f419146104cf578063a3f81d6814610502578063b31c01fb1461051f57610182565b8063928bc4b214610421578063961681dc146104c757610182565b806345630b1a1161013a57806371bfb7b81161011457806371bfb7b8146103b25780638d3638f4146103cf5780638da5cb5b146103f057610182565b806345630b1a146102f45780636188af0e146102fc57806367a6771d146103aa57610182565b80632bbd59ca1161016b5780632bbd59ca14610270578063371d3071146102ae57806339992668146102ec57610182565b806319d9d21a1461018757806325e3beda14610256575b600080fd5b610254600480360360a081101561019d57600080fd5b81359160208101918101906080810160608201356401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91939092909160208101903564010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b509092509050610685565b005b61025e6108e4565b60408051918252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610908565b6040518082600281111561029d57fe5b815260200191505060405180910390f35b6102d860048036036104408110156102c557600080fd5b508035906020810190610420013561091d565b604080519115158252519081900360200190f35b61025e610a3d565b61025e610a43565b610254600480360361044081101561031357600080fd5b81019060208101813564010000000081111561032e57600080fd5b82018360208201111561034057600080fd5b8035906020019184600183028401116401000000008311171561036257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a5d565b61025e610ae9565b61025e600480360360208110156103c857600080fd5b5035610aef565b6103d7610b01565b6040805163ffffffff9092168252519081900360200190f35b6103f8610b25565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102d86004803603602081101561043757600080fd5b81019060208101813564010000000081111561045257600080fd5b82018360208201111561046457600080fd5b8035906020019184600183028401116401000000008311171561048657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b41945050505050565b6103d7611184565b610254600480360360208110156104e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611190565b6102d86004803603602081101561051857600080fd5b503561126b565b6102546004803603606081101561053557600080fd5b81359160208101359181019060608101604082013564010000000081111561055c57600080fd5b82018360208201111561056e57600080fd5b8035906020019184600183028401116401000000008311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b61028d6114e4565b61025e611507565b6103f861152b565b610254600480360360808110156105ff57600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561154d565b6102546004803603602081101561064a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ed565b61066f6118cc565b6040805160ff9092168252519081900360200190f35b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156106b257fe5b141561071f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261076191889188359188908890819084018382808284376000920191909152506118d192505050565b80156107b057506107b086866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d192505050565b80156107c157508435602086013514155b156108dc576107ce611969565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60356020526000908152604090205460ff1681565b60008060008581526035602052604090205460ff16600281111561093d57fe5b146109a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109df8585602080602002604051908101604052809291908260208002808284376000920191909152508791506119739050565b90506109ea8161126b565b15610a30575050600083815260356020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a36565b60009150505b9392505050565b60325481565b603154600090610a589063ffffffff16611a1e565b905090565b610a6f8380519060200120838361091d565b610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae383610b41565b50505050565b60015481565b60346020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60365473ffffffffffffffffffffffffffffffffffffffff1690565b600080610b4e8382611a93565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610ba27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611ab9565b63ffffffff1614610c1457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610c417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611aea565b9050600160008281526035602052604090205460ff166002811115610c6257fe5b14610cce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60335460ff16600114610d4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556000828152603560205260409020805490911660021790557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000015a1015610e3857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b29565b6040805161010080825261012082019092529192506000917f0000000000000000000000000000000000000000000000000000000000000000908390836020820181803683370190505090506000610ede7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611b3c565b610f097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611b6c565b610f5e610f377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008c16611b9d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611c0e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610fb0578181015183820152602001610f98565b50505050905090810190601f168015610fdd5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d4750000000000000000000000000000000000000000000000000000000017815281519197506000965086955090935091508390508a88f198503d94508385111561107c578394505b848252846000602084013e816040518082805190602001908083835b602083106110d557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611098565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900382209350508b1515915089907fd42de95a9b26f1be134c8ecce389dc4fcfa18753d01661b7b361233569e8fe4890600090a45050603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550949695505050505050565b60315463ffffffff1681565b600061119a610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111f0575060006111d8610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061125e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61126782611c52565b5050565b6000818152603460205260408120548061128957600091505061128f565b42101590505b919050565b6002600054760100000000000000000000000000000000000000000000900460ff1660028111156112c157fe5b141561132e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600154831461139e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6113a98383836118d1565b61141457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61141c611971565b6032546000838152603460209081526040808320429094019093556001859055603154835182815285518184015285518795899563ffffffff909416947f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b29489949384938401928601918190849084905b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806115665750611566611cd3565b80611574575060005460ff16155b6115c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff1615801561162f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61163884611ce4565b6033805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155603180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905583815560008481526034602052604090205560328290556116b7336116ed565b80156116e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006116f7610b25565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061174d57506000611735610b25565b73ffffffffffffffffffffffffffffffffffffffff16145b9050806117bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e65720000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661183d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f216e65774f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60365460405173ffffffffffffffffffffffffffffffffffffffff8085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081565b6000806118dc610a43565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061191d81611e78565b60005490915062010000900473ffffffffffffffffffffffffffffffffffffffff166119498285611ec9565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611971611f63565b565b8260005b6020811015611a1657600183821c16600085836020811061199457fe5b6020020151905081600114156119da5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611a0c565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611977565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b815160009060208401611aae64ffffffffff85168284611fa6565b925050505b92915050565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612005565b600080611af683612026565b6bffffffffffffffffffffffff1690506000611b118461203a565b6bffffffffffffffffffffffff169091209392505050565b6000611ab3611b378361204e565b61207f565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612005565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612082565b6000611ab3604c80611bd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661203a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061222d565b6060600080611c1c8461203a565b6bffffffffffffffffffffffff1690506040519150819250611c4184836020016122bf565b508181016020016040529052919050565b6000805473ffffffffffffffffffffffffffffffffffffffff83166201000081027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9092169190911790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b6000611cde306123eb565b15905090565b600054610100900460ff1680611cfd5750611cfd611cd3565b80611d0b575060005460ff16155b611d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612b63602e913960400191505060405180910390fd5b600054610100900460ff16158015611dc657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055801561126757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611f3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a611f59868285856123f1565b9695505050505050565b600080547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760200000000000000000000000000000000000000000000179055565b600080611fb384846125df565b9050604051811115611fc3575060005b80611ff1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a36565b611ffc858585612651565b95945050505050565b60008160200360080260ff1661201c858585612082565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b6000611ab37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020612082565b90565b600060ff821661209457506000610a36565b61209d8461203a565b6bffffffffffffffffffffffff166120b88460ff85166125df565b1115612197576120f96120ca85612026565b6bffffffffffffffffffffffff166120e18661203a565b6bffffffffffffffffffffffff16858560ff16612664565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215c578181015183820152602001612144565b50505050905090810190601f1680156121895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156121f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612bb3603a913960400191505060405180910390fd5b60088202600061220386612026565b6bffffffffffffffffffffffff169050600061221e836127bf565b91909501511695945050505050565b60008061223986612026565b6bffffffffffffffffffffffff16905061225286612808565b6122668561226084896125df565b906125df565b1115612295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506122b7565b61229f81866125df565b90506122b38364ffffffffff168286611fa6565b9150505b949350505050565b60006122ca83612832565b61231f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bed6028913960400191505060405180910390fd5b61232883612844565b61237d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c15602b913960400191505060405180910390fd5b60006123888461203a565b6bffffffffffffffffffffffff16905060006123a385612026565b6bffffffffffffffffffffffff16905060006040519050848111156123c85760206060fd5b8285848460045afa50611f596123dd87612881565b64ffffffffff168685612651565b3b151590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b206022913960400191505060405180910390fd5b8360ff16601b148061248157508360ff16601c145b6124d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b916022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612532573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ffc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b6060600061267186612887565b915050600061267f86612887565b915050600061268d86612887565b915050600061269b86612887565b915050838383836040516020018080612c40603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021612b4282397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b60006128138261203a565b61281c83612026565b016bffffffffffffffffffffffff169050919050565b600061283d8261295b565b1592915050565b600061284f82612881565b64ffffffffff1664ffffffffff141561286a5750600061128f565b600061287583612808565b60405110199392505050565b60d81c90565b600080601f5b600f8160ff1611156128ef5760ff600882021684901c6128ac81612983565b61ffff16841793508160ff166010146128c757601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161288d565b50600f5b60ff8160ff1610156129555760ff600882021684901c61291281612983565b61ffff16831792508160ff1660001461292d57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016128f3565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061299560048360ff16901c6129b3565b60ff161760081b62ffff00166129aa826129b3565b60ff1617919050565b600060f08083179060ff821614156129cf57603091505061128f565b8060ff1660f114156129e557603191505061128f565b8060ff1660f214156129fb57603291505061128f565b8060ff1660f31415612a1157603391505061128f565b8060ff1660f41415612a2757603491505061128f565b8060ff1660f51415612a3d57603591505061128f565b8060ff1660f61415612a5357603691505061128f565b8060ff1660f71415612a6957603791505061128f565b8060ff1660f81415612a7f57603891505061128f565b8060ff1660f91415612a9557603991505061128f565b8060ff1660fa1415612aab57606191505061128f565b8060ff1660fb1415612ac157606291505061128f565b8060ff1660fc1415612ad757606391505061128f565b8060ff1660fd1415612aed57606491505061128f565b8060ff1660fe1415612b0357606591505061128f565b8060ff1660ff1415612b1957606691505061128f565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122066225e5a1d1ed389fc968e151d709326576dde8456e356fefeb2f6569a28715164736f6c63430007060033"; export class Replica__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/RouterTemplate__factory.ts b/typescript/typechain/abacus-xapps/factories/RouterTemplate__factory.ts index e16f8fc50..38ddecc88 100644 --- a/typescript/typechain/abacus-xapps/factories/RouterTemplate__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/RouterTemplate__factory.ts @@ -193,7 +193,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b506040516200197838038062001978833981810160405260208110156200003757600080fd5b505162000044816200004b565b50620003ac565b600054610100900460ff1680620000675750620000676200011b565b8062000076575060005460ff16155b620000b35760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620000df576000805460ff1961ff0019909116610100171660011790555b606580546001600160a01b0319166001600160a01b0384161790556200010462000139565b801562000117576000805461ff00191690555b5050565b60006200013330620001f760201b620009f31760201c565b15905090565b600054610100900460ff1680620001555750620001556200011b565b8062000164575060005460ff16155b620001a15760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620001cd576000805460ff1961ff0019909116610100171660011790555b620001d7620001fd565b620001e1620002a5565b8015620001f4576000805461ff00191690555b50565b3b151590565b600054610100900460ff1680620002195750620002196200011b565b8062000228575060005460ff16155b620002655760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620001e1576000805460ff1961ff0019909116610100171660011790558015620001f4576000805461ff001916905550565b600054610100900460ff1680620002c15750620002c16200011b565b80620002d0575060005460ff16155b6200030d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff1615801562000339576000805460ff1961ff0019909116610100171660011790555b600062000345620003a8565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620001f4576000805461ff001916905550565b3390565b61158e80620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063715018a6116100765780638da5cb5b1161005b5780638da5cb5b1461022c578063b49c53a714610234578063f2fde38b1461025d576100a3565b8063715018a6146101ef57806383bbb806146101f7576100a3565b80631984a330146100a85780633339df96146100d357806341bdc8b51461010457806356d5d47514610137575b600080fd5b6100d1600480360360408110156100be57600080fd5b5063ffffffff8135169060200135610290565b005b6100db61039a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100d16004803603602081101561011a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103b6565b6100d16004803603606081101561014d57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561017a57600080fd5b82018360208201111561018c57600080fd5b803590602001918460018302840111640100000000831117156101ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104a5945050505050565b6100d161064b565b61021a6004803603602081101561020d57600080fd5b503563ffffffff16610762565b60408051918252519081900360200190f35b6100db610774565b6100d16004803603604081101561024a57600080fd5b5063ffffffff8135169060200135610790565b6100d16004803603602081101561027357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610851565b600061029b836109fd565b905060006102a883610a7f565b90506102b2610ac4565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018584846040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561032e578181015183820152602001610316565b50505050905090810190601f16801561035b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561037c57600080fd5b505af1158015610390573d6000803e3d6000fd5b5050505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b6103be610b60565b73ffffffffffffffffffffffffffffffffffffffff166103dc610774565b73ffffffffffffffffffffffffffffffffffffffff161461045e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6104ae33610b64565b61051957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826105258282610c0d565b61059057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b600061059c8482610c2c565b90506105c97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610c50565b156105dc576105d781610c6f565b610643565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b610653610b60565b73ffffffffffffffffffffffffffffffffffffffff16610671610774565b73ffffffffffffffffffffffffffffffffffffffff16146106f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60976020526000908152604090205481565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b610798610b60565b73ffffffffffffffffffffffffffffffffffffffff166107b6610774565b73ffffffffffffffffffffffffffffffffffffffff161461083857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b610859610b60565b73ffffffffffffffffffffffffffffffffffffffff16610877610774565b73ffffffffffffffffffffffffffffffffffffffff16146108f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610965576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114756026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803b15155b919050565b63ffffffff8116600090815260976020526040902054806109f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f0100000000000000000000000000000000000000000000000000000000000000602082015260218082019390935281518082039093018352604101905290565b606554604080517f9fa92f9d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fa92f9d916004808301926020929190829003018186803b158015610b2f57600080fd5b505afa158015610b43573d6000803e3d6000fd5b505050506040513d6020811015610b5957600080fd5b5051905090565b3390565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b158015610bdb57600080fd5b505afa158015610bef573d6000803e3d6000fd5b505050506040513d6020811015610c0557600080fd5b505192915050565b63ffffffff821660009081526097602052604090205481145b92915050565b815160009060208401610c4764ffffffffff85168284610cd7565b95945050505050565b60006001610c5d83610d38565b6001811115610c6857fe5b1492915050565b6000610c9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610d73565b6040805182815290519192507f2b51a16951b17b51a53e06c3041d704232f26354acf317a5b7bfeab23f4ca629919081900360200190a15050565b600080610ce48484610e02565b9050604051811115610cf4575060005b80610d22577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d31565b610d2d858585610e74565b9150505b9392505050565b6000610d657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610e87565b60ff166001811115610c2657fe5b6000610d7e82610c50565b610dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061149b602e913960400191505060405180910390fd5b610c267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660006020610e8d565b81810182811015610c2657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b600060ff8216610e9f57506000610d31565b610ea884611038565b6bffffffffffffffffffffffff16610ec38460ff8516610e02565b1115610fa257610f04610ed58561104c565b6bffffffffffffffffffffffff16610eec86611038565b6bffffffffffffffffffffffff16858560ff16611060565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f67578181015183820152602001610f4f565b50505050905090810190601f168015610f945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610fff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806114ea603a913960400191505060405180910390fd5b60088202600061100e8661104c565b6bffffffffffffffffffffffff1690506000611029836111bb565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b60781c6bffffffffffffffffffffffff1690565b6060600061106d86611204565b915050600061107b86611204565b915050600061108986611204565b915050600061109786611204565b915050838383836040516020018080611524603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114c982397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff16111561126c5760ff600882021684901c611229816112d8565b61ffff16841793508160ff1660101461124457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161120a565b50600f5b60ff8160ff1610156112d25760ff600882021684901c61128f816112d8565b61ffff16831792508160ff166000146112aa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611270565b50915091565b60006112ea60048360ff16901c611308565b60ff161760081b62ffff00166112ff82611308565b60ff1617919050565b600060f08083179060ff821614156113245760309150506109f8565b8060ff1660f1141561133a5760319150506109f8565b8060ff1660f214156113505760329150506109f8565b8060ff1660f314156113665760339150506109f8565b8060ff1660f4141561137c5760349150506109f8565b8060ff1660f514156113925760359150506109f8565b8060ff1660f614156113a85760369150506109f8565b8060ff1660f714156113be5760379150506109f8565b8060ff1660f814156113d45760389150506109f8565b8060ff1660f914156113ea5760399150506109f8565b8060ff1660fa14156114005760619150506109f8565b8060ff1660fb14156114165760629150506109f8565b8060ff1660fc141561142c5760639150506109f8565b8060ff1660fd14156114425760649150506109f8565b8060ff1660fe14156114585760659150506109f8565b8060ff1660ff141561146e5760669150506109f8565b5091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d65737361676554656d706c6174652f6e756d6265723a2076696577206d757374206265206f66207479706520412e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220219f041a95b3bf1f9e6fa5f091f0d6825d6ff8d29b2cc93c9043659e8467fdf764736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; + "0x60806040523480156200001157600080fd5b506040516200197838038062001978833981810160405260208110156200003757600080fd5b505162000044816200004b565b50620003ac565b600054610100900460ff1680620000675750620000676200011b565b8062000076575060005460ff16155b620000b35760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620000df576000805460ff1961ff0019909116610100171660011790555b606580546001600160a01b0319166001600160a01b0384161790556200010462000139565b801562000117576000805461ff00191690555b5050565b60006200013330620001f760201b620009f31760201c565b15905090565b600054610100900460ff1680620001555750620001556200011b565b8062000164575060005460ff16155b620001a15760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620001cd576000805460ff1961ff0019909116610100171660011790555b620001d7620001fd565b620001e1620002a5565b8015620001f4576000805461ff00191690555b50565b3b151590565b600054610100900460ff1680620002195750620002196200011b565b8062000228575060005460ff16155b620002655760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff16158015620001e1576000805460ff1961ff0019909116610100171660011790558015620001f4576000805461ff001916905550565b600054610100900460ff1680620002c15750620002c16200011b565b80620002d0575060005460ff16155b6200030d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806200194a602e913960400191505060405180910390fd5b600054610100900460ff1615801562000339576000805460ff1961ff0019909116610100171660011790555b600062000345620003a8565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620001f4576000805461ff001916905550565b3390565b61158e80620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063715018a6116100765780638da5cb5b1161005b5780638da5cb5b1461022c578063b49c53a714610234578063f2fde38b1461025d576100a3565b8063715018a6146101ef57806383bbb806146101f7576100a3565b80631984a330146100a85780633339df96146100d357806341bdc8b51461010457806356d5d47514610137575b600080fd5b6100d1600480360360408110156100be57600080fd5b5063ffffffff8135169060200135610290565b005b6100db61039a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100d16004803603602081101561011a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103b6565b6100d16004803603606081101561014d57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561017a57600080fd5b82018360208201111561018c57600080fd5b803590602001918460018302840111640100000000831117156101ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104a5945050505050565b6100d161064b565b61021a6004803603602081101561020d57600080fd5b503563ffffffff16610762565b60408051918252519081900360200190f35b6100db610774565b6100d16004803603604081101561024a57600080fd5b5063ffffffff8135169060200135610790565b6100d16004803603602081101561027357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610851565b600061029b836109fd565b905060006102a883610a7f565b90506102b2610ac4565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018584846040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561032e578181015183820152602001610316565b50505050905090810190601f16801561035b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561037c57600080fd5b505af1158015610390573d6000803e3d6000fd5b5050505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b6103be610b60565b73ffffffffffffffffffffffffffffffffffffffff166103dc610774565b73ffffffffffffffffffffffffffffffffffffffff161461045e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6104ae33610b64565b61051957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826105258282610c0d565b61059057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b600061059c8482610c2c565b90506105c97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610c50565b156105dc576105d781610c6f565b610643565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b610653610b60565b73ffffffffffffffffffffffffffffffffffffffff16610671610774565b73ffffffffffffffffffffffffffffffffffffffff16146106f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60976020526000908152604090205481565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b610798610b60565b73ffffffffffffffffffffffffffffffffffffffff166107b6610774565b73ffffffffffffffffffffffffffffffffffffffff161461083857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b610859610b60565b73ffffffffffffffffffffffffffffffffffffffff16610877610774565b73ffffffffffffffffffffffffffffffffffffffff16146108f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610965576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114756026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803b15155b919050565b63ffffffff8116600090815260976020526040902054806109f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f0100000000000000000000000000000000000000000000000000000000000000602082015260218082019390935281518082039093018352604101905290565b606554604080517f9fa92f9d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fa92f9d916004808301926020929190829003018186803b158015610b2f57600080fd5b505afa158015610b43573d6000803e3d6000fd5b505050506040513d6020811015610b5957600080fd5b5051905090565b3390565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b158015610bdb57600080fd5b505afa158015610bef573d6000803e3d6000fd5b505050506040513d6020811015610c0557600080fd5b505192915050565b63ffffffff821660009081526097602052604090205481145b92915050565b815160009060208401610c4764ffffffffff85168284610cd7565b95945050505050565b60006001610c5d83610d38565b6001811115610c6857fe5b1492915050565b6000610c9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610d73565b6040805182815290519192507f2b51a16951b17b51a53e06c3041d704232f26354acf317a5b7bfeab23f4ca629919081900360200190a15050565b600080610ce48484610e02565b9050604051811115610cf4575060005b80610d22577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d31565b610d2d858585610e74565b9150505b9392505050565b6000610d657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610e87565b60ff166001811115610c2657fe5b6000610d7e82610c50565b610dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061149b602e913960400191505060405180910390fd5b610c267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660006020610e8d565b81810182811015610c2657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b600060ff8216610e9f57506000610d31565b610ea884611038565b6bffffffffffffffffffffffff16610ec38460ff8516610e02565b1115610fa257610f04610ed58561104c565b6bffffffffffffffffffffffff16610eec86611038565b6bffffffffffffffffffffffff16858560ff16611060565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f67578181015183820152602001610f4f565b50505050905090810190601f168015610f945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610fff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806114ea603a913960400191505060405180910390fd5b60088202600061100e8661104c565b6bffffffffffffffffffffffff1690506000611029836111bb565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b60781c6bffffffffffffffffffffffff1690565b6060600061106d86611204565b915050600061107b86611204565b915050600061108986611204565b915050600061109786611204565b915050838383836040516020018080611524603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114c982397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff16111561126c5760ff600882021684901c611229816112d8565b61ffff16841793508160ff1660101461124457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161120a565b50600f5b60ff8160ff1610156112d25760ff600882021684901c61128f816112d8565b61ffff16831792508160ff166000146112aa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611270565b50915091565b60006112ea60048360ff16901c611308565b60ff161760081b62ffff00166112ff82611308565b60ff1617919050565b600060f08083179060ff821614156113245760309150506109f8565b8060ff1660f1141561133a5760319150506109f8565b8060ff1660f214156113505760329150506109f8565b8060ff1660f314156113665760339150506109f8565b8060ff1660f4141561137c5760349150506109f8565b8060ff1660f514156113925760359150506109f8565b8060ff1660f614156113a85760369150506109f8565b8060ff1660f714156113be5760379150506109f8565b8060ff1660f814156113d45760389150506109f8565b8060ff1660f914156113ea5760399150506109f8565b8060ff1660fa14156114005760619150506109f8565b8060ff1660fb14156114165760629150506109f8565b8060ff1660fc141561142c5760639150506109f8565b8060ff1660fd14156114425760649150506109f8565b8060ff1660fe14156114585760659150506109f8565b8060ff1660ff141561146e5760669150506109f8565b5091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d65737361676554656d706c6174652f6e756d6265723a2076696577206d757374206265206f66207479706520412e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220dbe7964fa9957e834c98c861deae4a1e48698c423e21faf4439a05e08c086f6664736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; export class RouterTemplate__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/factories/XAppConnectionManager__factory.ts b/typescript/typechain/abacus-xapps/factories/XAppConnectionManager__factory.ts index 2ef1aed4c..5a946dfee 100644 --- a/typescript/typechain/abacus-xapps/factories/XAppConnectionManager__factory.ts +++ b/typescript/typechain/abacus-xapps/factories/XAppConnectionManager__factory.ts @@ -330,7 +330,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220e93163a132c9ce2df1ab618d2a7563ee3f006a530a4a580aed5d5bad951afbe464736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212207bbb01114060ab4f4222e70fe5aca161030171f05a97f8c57b0b75e6b403718e64736f6c63430007060033"; export class XAppConnectionManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/abacus-xapps/hardhat.d.ts b/typescript/typechain/abacus-xapps/hardhat.d.ts index 5663f6986..605509a58 100644 --- a/typescript/typechain/abacus-xapps/hardhat.d.ts +++ b/typescript/typechain/abacus-xapps/hardhat.d.ts @@ -80,10 +80,6 @@ declare module "hardhat/types/runtime" { name: "ETHHelper", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; - getContractFactory( - name: "MockCore", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; getContractFactory( name: "MockWeth", signerOrOptions?: ethers.Signer | FactoryOptions diff --git a/typescript/typechain/abacus-xapps/index.ts b/typescript/typechain/abacus-xapps/index.ts index 3fbf0c6e7..6ca84d25d 100644 --- a/typescript/typechain/abacus-xapps/index.ts +++ b/typescript/typechain/abacus-xapps/index.ts @@ -18,7 +18,6 @@ export type { TypedMemView } from "./TypedMemView"; export type { BridgeRouter } from "./BridgeRouter"; export type { BridgeToken } from "./BridgeToken"; export type { ETHHelper } from "./ETHHelper"; -export type { MockCore } from "./MockCore"; export type { MockWeth } from "./MockWeth"; export type { TestBridgeMessage } from "./TestBridgeMessage"; export type { TestEncoding } from "./TestEncoding"; @@ -48,7 +47,6 @@ export { TypedMemView__factory } from "./factories/TypedMemView__factory"; export { BridgeRouter__factory } from "./factories/BridgeRouter__factory"; export { BridgeToken__factory } from "./factories/BridgeToken__factory"; export { ETHHelper__factory } from "./factories/ETHHelper__factory"; -export { MockCore__factory } from "./factories/MockCore__factory"; export { MockWeth__factory } from "./factories/MockWeth__factory"; export { TestBridgeMessage__factory } from "./factories/TestBridgeMessage__factory"; export { TestEncoding__factory } from "./factories/TestEncoding__factory";