diff --git a/package.json b/package.json index e057a27..72a9b01 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "ds-test": "github:dapphub/ds-test", "forge-std": "github:foundry-rs/forge-std#60acb7aaadcce2d68e52986a0a66fe79f07d138f", "frax-standard-solidity": "github:FraxFinance/frax-standard-solidity", - "solidity-bytes-utils": "github:GNSPS/solidity-bytes-utils" + "solidity-bytes-utils": "github:GNSPS/solidity-bytes-utils", + "viem": "^2.37.8" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 398b933..56ddd76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,10 +1,11 @@ -lockfileVersion: "9.0" +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false importers: + .: dependencies: ds-test: @@ -19,8 +20,11 @@ importers: solidity-bytes-utils: specifier: github:GNSPS/solidity-bytes-utils version: https://codeload.github.com/GNSPS/solidity-bytes-utils/tar.gz/fc502455bb2a7e26a743378df042612dd50d1eb9 + viem: + specifier: ^2.37.8 + version: 2.37.8(typescript@5.8.3) devDependencies: - "@openzeppelin/contracts": + '@openzeppelin/contracts': specifier: ^5.4.0 version: 5.4.0 husky: @@ -52,1180 +56,1049 @@ importers: version: 5.8.3 packages: - "@ampproject/remapping@2.3.0": - resolution: - { integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== } - engines: { node: ">=6.0.0" } - - "@babel/code-frame@7.27.1": - resolution: - { integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== } - engines: { node: ">=6.9.0" } - - "@babel/helper-validator-identifier@7.27.1": - resolution: - { integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== } - engines: { node: ">=6.9.0" } - - "@babel/runtime@7.28.2": - resolution: - { integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA== } - engines: { node: ">=6.9.0" } - - "@cspotcode/source-map-support@0.8.1": - resolution: - { integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== } - engines: { node: ">=12" } - - "@jridgewell/gen-mapping@0.3.12": - resolution: - { integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg== } - - "@jridgewell/resolve-uri@3.1.2": - resolution: - { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== } - engines: { node: ">=6.0.0" } - - "@jridgewell/sourcemap-codec@1.5.4": - resolution: - { integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw== } - - "@jridgewell/trace-mapping@0.3.29": - resolution: - { integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ== } - - "@jridgewell/trace-mapping@0.3.9": - resolution: - { integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== } - - "@openzeppelin/contracts@5.4.0": - resolution: - { integrity: sha512-eCYgWnLg6WO+X52I16TZt8uEjbtdkgLC0SUX/xnAksjjrQI4Xfn4iBRoI5j55dmlOhDv1Y7BoR3cU7e3WWhC6A== } - - "@prettier/sync@0.3.0": - resolution: - { integrity: sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw== } + + '@adraffy/ens-normalize@1.11.1': + resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.28.2': + resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} + engines: {node: '>=6.9.0'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.4': + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} + + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@noble/ciphers@1.3.0': + resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.9.1': + resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@openzeppelin/contracts@5.4.0': + resolution: {integrity: sha512-eCYgWnLg6WO+X52I16TZt8uEjbtdkgLC0SUX/xnAksjjrQI4Xfn4iBRoI5j55dmlOhDv1Y7BoR3cU7e3WWhC6A==} + + '@prettier/sync@0.3.0': + resolution: {integrity: sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw==} peerDependencies: prettier: ^3.0.0 - "@solidity-parser/parser@0.16.2": - resolution: - { integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg== } + '@scure/base@1.2.6': + resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} + + '@scure/bip32@1.7.0': + resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} - "@solidity-parser/parser@0.20.2": - resolution: - { integrity: sha512-rbu0bzwNvMcwAjH86hiEAcOeRI2EeK8zCkHDrFykh/Al8mvJeFmjy3UrE7GYQjNwOgbGUUtCn5/k8CB8zIu7QA== } + '@scure/bip39@1.6.0': + resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} - "@sveltejs/acorn-typescript@1.0.5": - resolution: - { integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ== } + '@solidity-parser/parser@0.16.2': + resolution: {integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==} + + '@solidity-parser/parser@0.20.2': + resolution: {integrity: sha512-rbu0bzwNvMcwAjH86hiEAcOeRI2EeK8zCkHDrFykh/Al8mvJeFmjy3UrE7GYQjNwOgbGUUtCn5/k8CB8zIu7QA==} + + '@sveltejs/acorn-typescript@1.0.5': + resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==} peerDependencies: acorn: ^8.9.0 - "@tsconfig/node10@1.0.11": - resolution: - { integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== } + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - "@tsconfig/node12@1.0.11": - resolution: - { integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== } + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - "@tsconfig/node14@1.0.3": - resolution: - { integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== } + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - "@tsconfig/node16@1.0.4": - resolution: - { integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== } + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - "@types/estree@1.0.8": - resolution: - { integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== } + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - "@types/fs-extra@11.0.4": - resolution: - { integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== } + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - "@types/jsonfile@6.1.4": - resolution: - { integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== } + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - "@types/node@18.19.120": - resolution: - { integrity: sha512-WtCGHFXnVI8WHLxDAt5TbnCM4eSE+nI0QN2NJtwzcgMhht2eNz6V9evJrk+lwC8bCY8OWV5Ym8Jz7ZEyGnKnMA== } + '@types/node@18.19.120': + resolution: {integrity: sha512-WtCGHFXnVI8WHLxDAt5TbnCM4eSE+nI0QN2NJtwzcgMhht2eNz6V9evJrk+lwC8bCY8OWV5Ym8Jz7ZEyGnKnMA==} + + abitype@1.1.0: + resolution: {integrity: sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true acorn-walk@8.3.4: - resolution: - { integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== } - engines: { node: ">=0.4.0" } + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} acorn@8.15.0: - resolution: - { integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== } - engines: { node: ">=0.4.0" } + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} hasBin: true ajv@6.12.6: - resolution: - { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} ajv@8.17.1: - resolution: - { integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== } + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-escapes@5.0.0: - resolution: - { integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== } - engines: { node: ">=12" } + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} ansi-escapes@7.0.0: - resolution: - { integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== } - engines: { node: ">=18" } + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} ansi-regex@5.0.1: - resolution: - { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } - engines: { node: ">=8" } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} ansi-regex@6.1.0: - resolution: - { integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== } - engines: { node: ">=12" } + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} ansi-styles@4.3.0: - resolution: - { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } - engines: { node: ">=8" } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} ansi-styles@6.2.1: - resolution: - { integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== } - engines: { node: ">=12" } + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} antlr4@4.13.2: - resolution: - { integrity: sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg== } - engines: { node: ">=16" } + resolution: {integrity: sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==} + engines: {node: '>=16'} antlr4ts@0.5.0-alpha.4: - resolution: - { integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== } + resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} arg@4.1.3: - resolution: - { integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== } + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} argparse@2.0.1: - resolution: - { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} aria-query@5.3.2: - resolution: - { integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} ast-parents@0.0.1: - resolution: - { integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== } + resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} astral-regex@2.0.0: - resolution: - { integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== } - engines: { node: ">=8" } + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} axobject-query@4.1.0: - resolution: - { integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} balanced-match@1.0.2: - resolution: - { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} brace-expansion@2.0.2: - resolution: - { integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== } + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: - resolution: - { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } - engines: { node: ">=8" } + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} callsites@3.1.0: - resolution: - { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } - engines: { node: ">=6" } + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} camel-case@4.1.2: - resolution: - { integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== } + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} capital-case@1.0.4: - resolution: - { integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== } + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} chalk@4.1.2: - resolution: - { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } - engines: { node: ">=10" } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} chalk@5.3.0: - resolution: - { integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} chalk@5.4.1: - resolution: - { integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@4.1.2: - resolution: - { integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== } + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} cli-cursor@4.0.0: - resolution: - { integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cli-cursor@5.0.0: - resolution: - { integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== } - engines: { node: ">=18" } + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} cli-truncate@3.1.0: - resolution: - { integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cli-truncate@4.0.0: - resolution: - { integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== } - engines: { node: ">=18" } + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} clsx@2.1.1: - resolution: - { integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== } - engines: { node: ">=6" } + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} color-convert@2.0.1: - resolution: - { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } - engines: { node: ">=7.0.0" } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} color-name@1.1.4: - resolution: - { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} colorette@2.0.20: - resolution: - { integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== } + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} command-exists@1.2.9: - resolution: - { integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== } + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} commander@10.0.1: - resolution: - { integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== } - engines: { node: ">=14" } + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} commander@11.0.0: - resolution: - { integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== } - engines: { node: ">=16" } + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} commander@14.0.0: - resolution: - { integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA== } - engines: { node: ">=20" } + resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} + engines: {node: '>=20'} commander@8.3.0: - resolution: - { integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== } - engines: { node: ">= 12" } + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} constant-case@3.0.4: - resolution: - { integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== } + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} cosmiconfig@8.3.6: - resolution: - { integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== } - engines: { node: ">=14" } + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} peerDependencies: - typescript: ">=4.9.5" + typescript: '>=4.9.5' peerDependenciesMeta: typescript: optional: true create-require@1.1.1: - resolution: - { integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== } + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} cross-spawn@7.0.6: - resolution: - { integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== } - engines: { node: ">= 8" } + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} date-fns@2.30.0: - resolution: - { integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== } - engines: { node: ">=0.11" } + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} debug@4.3.4: - resolution: - { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== } - engines: { node: ">=6.0" } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true debug@4.4.1: - resolution: - { integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== } - engines: { node: ">=6.0" } + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true diff@4.0.2: - resolution: - { integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== } - engines: { node: ">=0.3.1" } + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} dot-case@3.0.4: - resolution: - { integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== } + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} ds-test@https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0: - resolution: { tarball: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0 } + resolution: {tarball: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0} version: 1.0.0 eastasianwidth@0.2.0: - resolution: - { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== } + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} emoji-regex@10.4.0: - resolution: - { integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== } + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} emoji-regex@8.0.0: - resolution: - { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: - resolution: - { integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== } + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} environment@1.1.0: - resolution: - { integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== } - engines: { node: ">=18" } + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} error-ex@1.3.2: - resolution: - { integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== } + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} esm-env@1.2.2: - resolution: - { integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA== } + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} esrap@2.1.0: - resolution: - { integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA== } + resolution: {integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==} eventemitter3@5.0.1: - resolution: - { integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== } + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} execa@7.2.0: - resolution: - { integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== } - engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} fast-deep-equal@3.1.3: - resolution: - { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-diff@1.3.0: - resolution: - { integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== } + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} fast-json-stable-stringify@2.1.0: - resolution: - { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-uri@3.0.6: - resolution: - { integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== } + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} fill-range@7.1.1: - resolution: - { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } - engines: { node: ">=8" } + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} follow-redirects@1.15.9: - resolution: - { integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== } - engines: { node: ">=4.0" } + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} peerDependencies: - debug: "*" + debug: '*' peerDependenciesMeta: debug: optional: true forge-std@https://codeload.github.com/foundry-rs/forge-std/tar.gz/60acb7aaadcce2d68e52986a0a66fe79f07d138f: - resolution: - { tarball: https://codeload.github.com/foundry-rs/forge-std/tar.gz/60acb7aaadcce2d68e52986a0a66fe79f07d138f } + resolution: {tarball: https://codeload.github.com/foundry-rs/forge-std/tar.gz/60acb7aaadcce2d68e52986a0a66fe79f07d138f} version: 1.9.7 frax-standard-solidity@https://codeload.github.com/FraxFinance/frax-standard-solidity/tar.gz/edd667c2be4b455176a799cff9b932386393ef8d: - resolution: - { - tarball: https://codeload.github.com/FraxFinance/frax-standard-solidity/tar.gz/edd667c2be4b455176a799cff9b932386393ef8d, - } + resolution: {tarball: https://codeload.github.com/FraxFinance/frax-standard-solidity/tar.gz/edd667c2be4b455176a799cff9b932386393ef8d} version: 1.1.0 fs-extra@11.3.0: - resolution: - { integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== } - engines: { node: ">=14.14" } + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} fs.realpath@1.0.0: - resolution: - { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} get-east-asian-width@1.3.0: - resolution: - { integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== } - engines: { node: ">=18" } + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} get-stream@6.0.1: - resolution: - { integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== } - engines: { node: ">=10" } + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} glob@8.1.0: - resolution: - { integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== } - engines: { node: ">=12" } + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported graceful-fs@4.2.11: - resolution: - { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== } + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} has-flag@4.0.0: - resolution: - { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } - engines: { node: ">=8" } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} header-case@2.0.4: - resolution: - { integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== } + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} human-signals@4.3.1: - resolution: - { integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== } - engines: { node: ">=14.18.0" } + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} husky@8.0.3: - resolution: - { integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== } - engines: { node: ">=14" } + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} hasBin: true ignore@5.3.2: - resolution: - { integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== } - engines: { node: ">= 4" } + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} import-fresh@3.3.1: - resolution: - { integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== } - engines: { node: ">=6" } + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} inflight@1.0.6: - resolution: - { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: - resolution: - { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} is-arrayish@0.2.1: - resolution: - { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} is-fullwidth-code-point@3.0.0: - resolution: - { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } - engines: { node: ">=8" } + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} is-fullwidth-code-point@4.0.0: - resolution: - { integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== } - engines: { node: ">=12" } + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} is-fullwidth-code-point@5.0.0: - resolution: - { integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== } - engines: { node: ">=18" } + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} is-number@7.0.0: - resolution: - { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } - engines: { node: ">=0.12.0" } + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} is-reference@3.0.3: - resolution: - { integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw== } + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} is-stream@3.0.0: - resolution: - { integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} isexe@2.0.0: - resolution: - { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isows@1.0.7: + resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} + peerDependencies: + ws: '*' js-sha3@0.8.0: - resolution: - { integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== } + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} js-tokens@4.0.0: - resolution: - { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} js-yaml@4.1.0: - resolution: - { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true json-parse-even-better-errors@2.3.1: - resolution: - { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} json-schema-traverse@0.4.1: - resolution: - { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} json-schema-traverse@1.0.0: - resolution: - { integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== } + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} jsonfile@6.1.0: - resolution: - { integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== } + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} lilconfig@2.1.0: - resolution: - { integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== } - engines: { node: ">=10" } + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} lilconfig@3.1.3: - resolution: - { integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== } - engines: { node: ">=14" } + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} lines-and-columns@1.2.4: - resolution: - { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} lint-staged@13.3.0: - resolution: - { integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ== } - engines: { node: ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true lint-staged@16.1.2: - resolution: - { integrity: sha512-sQKw2Si2g9KUZNY3XNvRuDq4UJqpHwF0/FQzZR2M7I5MvtpWvibikCjUVJzZdGE0ByurEl3KQNvsGetd1ty1/Q== } - engines: { node: ">=20.17" } + resolution: {integrity: sha512-sQKw2Si2g9KUZNY3XNvRuDq4UJqpHwF0/FQzZR2M7I5MvtpWvibikCjUVJzZdGE0ByurEl3KQNvsGetd1ty1/Q==} + engines: {node: '>=20.17'} hasBin: true listr2@6.6.1: - resolution: - { integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== } - engines: { node: ">=16.0.0" } + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} peerDependencies: - enquirer: ">= 2.3.0 < 3" + enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: enquirer: optional: true listr2@8.3.3: - resolution: - { integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ== } - engines: { node: ">=18.0.0" } + resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} + engines: {node: '>=18.0.0'} locate-character@3.0.0: - resolution: - { integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== } + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} lodash.truncate@4.4.2: - resolution: - { integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== } + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} lodash@4.17.21: - resolution: - { integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== } + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} log-update@5.0.1: - resolution: - { integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} log-update@6.1.0: - resolution: - { integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== } - engines: { node: ">=18" } + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} lower-case@2.0.2: - resolution: - { integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== } + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} magic-string@0.30.17: - resolution: - { integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== } + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} make-error@1.3.6: - resolution: - { integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== } + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} memorystream@0.3.1: - resolution: - { integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== } - engines: { node: ">= 0.10.0" } + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} merge-stream@2.0.0: - resolution: - { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} micromatch@4.0.5: - resolution: - { integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== } - engines: { node: ">=8.6" } + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} micromatch@4.0.8: - resolution: - { integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== } - engines: { node: ">=8.6" } + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} mimic-fn@2.1.0: - resolution: - { integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== } - engines: { node: ">=6" } + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} mimic-fn@4.0.0: - resolution: - { integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== } - engines: { node: ">=12" } + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} mimic-function@5.0.1: - resolution: - { integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== } - engines: { node: ">=18" } + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} minimatch@5.1.6: - resolution: - { integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== } - engines: { node: ">=10" } + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} ms@2.1.2: - resolution: - { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} ms@2.1.3: - resolution: - { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} nano-spawn@1.0.2: - resolution: - { integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg== } - engines: { node: ">=20.17" } + resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==} + engines: {node: '>=20.17'} no-case@3.0.4: - resolution: - { integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== } + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} npm-run-path@5.3.0: - resolution: - { integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} once@1.4.0: - resolution: - { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} onetime@5.1.2: - resolution: - { integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== } - engines: { node: ">=6" } + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} onetime@6.0.0: - resolution: - { integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== } - engines: { node: ">=12" } + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} onetime@7.0.0: - resolution: - { integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== } - engines: { node: ">=18" } + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} os-tmpdir@1.0.2: - resolution: - { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + ox@0.9.6: + resolution: {integrity: sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true param-case@3.0.4: - resolution: - { integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== } + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} parent-module@1.0.1: - resolution: - { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } - engines: { node: ">=6" } + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} parse-json@5.2.0: - resolution: - { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } - engines: { node: ">=8" } + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} pascal-case@3.1.2: - resolution: - { integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== } + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} path-case@3.0.4: - resolution: - { integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== } + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} path-key@3.1.1: - resolution: - { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } - engines: { node: ">=8" } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} path-key@4.0.0: - resolution: - { integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== } - engines: { node: ">=12" } + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} path-type@4.0.0: - resolution: - { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } - engines: { node: ">=8" } + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} picocolors@1.1.1: - resolution: - { integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== } + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: - resolution: - { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } - engines: { node: ">=8.6" } + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} pidtree@0.6.0: - resolution: - { integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== } - engines: { node: ">=0.10" } + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} hasBin: true pluralize@8.0.0: - resolution: - { integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== } - engines: { node: ">=4" } + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} prettier-linter-helpers@1.0.0: - resolution: - { integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== } - engines: { node: ">=6.0.0" } + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} prettier-plugin-solidity@1.4.3: - resolution: - { integrity: sha512-Mrr/iiR9f9IaeGRMZY2ApumXcn/C5Gs3S7B7hWB3gigBFML06C0yEyW86oLp0eqiA0qg+46FaChgLPJCj/pIlg== } - engines: { node: ">=18" } + resolution: {integrity: sha512-Mrr/iiR9f9IaeGRMZY2ApumXcn/C5Gs3S7B7hWB3gigBFML06C0yEyW86oLp0eqiA0qg+46FaChgLPJCj/pIlg==} + engines: {node: '>=18'} peerDependencies: - prettier: ">=2.3.0" + prettier: '>=2.3.0' prettier-plugin-svelte@3.4.0: - resolution: - { integrity: sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ== } + resolution: {integrity: sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 prettier@2.8.8: - resolution: - { integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== } - engines: { node: ">=10.13.0" } + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} hasBin: true prettier@3.6.2: - resolution: - { integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== } - engines: { node: ">=14" } + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + engines: {node: '>=14'} hasBin: true punycode@2.3.1: - resolution: - { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } - engines: { node: ">=6" } + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} require-from-string@2.0.2: - resolution: - { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} resolve-from@4.0.0: - resolution: - { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } - engines: { node: ">=4" } + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} restore-cursor@4.0.0: - resolution: - { integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} restore-cursor@5.1.0: - resolution: - { integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== } - engines: { node: ">=18" } + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} rfdc@1.4.1: - resolution: - { integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== } + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} semver@5.7.2: - resolution: - { integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== } + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true semver@7.7.2: - resolution: - { integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== } - engines: { node: ">=10" } + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} hasBin: true sentence-case@3.0.4: - resolution: - { integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== } + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} shebang-command@2.0.0: - resolution: - { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } - engines: { node: ">=8" } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} shebang-regex@3.0.0: - resolution: - { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } - engines: { node: ">=8" } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} signal-exit@3.0.7: - resolution: - { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} signal-exit@4.1.0: - resolution: - { integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== } - engines: { node: ">=14" } + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} slice-ansi@4.0.0: - resolution: - { integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== } - engines: { node: ">=10" } + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} slice-ansi@5.0.0: - resolution: - { integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== } - engines: { node: ">=12" } + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} slice-ansi@7.1.0: - resolution: - { integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== } - engines: { node: ">=18" } + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} snake-case@3.0.4: - resolution: - { integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== } + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} solc@0.8.30: - resolution: - { integrity: sha512-9Srk/gndtBmoUbg4CE6ypAzPQlElv8ntbnl6SigUBAzgXKn35v87sj04uZeoZWjtDkdzT0qKFcIo/wl63UMxdw== } - engines: { node: ">=12.0.0" } + resolution: {integrity: sha512-9Srk/gndtBmoUbg4CE6ypAzPQlElv8ntbnl6SigUBAzgXKn35v87sj04uZeoZWjtDkdzT0qKFcIo/wl63UMxdw==} + engines: {node: '>=12.0.0'} hasBin: true solhint-plugin-prettier@0.1.0: - resolution: - { integrity: sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw== } + resolution: {integrity: sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw==} peerDependencies: prettier: ^3.0.0 prettier-plugin-solidity: ^1.0.0 solhint@3.6.2: - resolution: - { integrity: sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== } + resolution: {integrity: sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==} hasBin: true solidity-bytes-utils@0.8.4: - resolution: - { integrity: sha512-/bjac5YR12i0plOKvGlhE51F5IWGP6rI8DJetCQlXcnwKWz/Hgf/vr+Qlk1BWz56xVcwVhmhCaDkTMnx5xvt0g== } + resolution: {integrity: sha512-/bjac5YR12i0plOKvGlhE51F5IWGP6rI8DJetCQlXcnwKWz/Hgf/vr+Qlk1BWz56xVcwVhmhCaDkTMnx5xvt0g==} solidity-bytes-utils@https://codeload.github.com/GNSPS/solidity-bytes-utils/tar.gz/fc502455bb2a7e26a743378df042612dd50d1eb9: - resolution: - { - tarball: https://codeload.github.com/GNSPS/solidity-bytes-utils/tar.gz/fc502455bb2a7e26a743378df042612dd50d1eb9, - } + resolution: {tarball: https://codeload.github.com/GNSPS/solidity-bytes-utils/tar.gz/fc502455bb2a7e26a743378df042612dd50d1eb9} version: 0.8.4 string-argv@0.3.2: - resolution: - { integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== } - engines: { node: ">=0.6.19" } + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} string-width@4.2.3: - resolution: - { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } - engines: { node: ">=8" } + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} string-width@5.1.2: - resolution: - { integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== } - engines: { node: ">=12" } + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} string-width@7.2.0: - resolution: - { integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== } - engines: { node: ">=18" } + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} strip-ansi@6.0.1: - resolution: - { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } - engines: { node: ">=8" } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} strip-ansi@7.1.0: - resolution: - { integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== } - engines: { node: ">=12" } + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} strip-final-newline@3.0.0: - resolution: - { integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== } - engines: { node: ">=12" } + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} supports-color@7.2.0: - resolution: - { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } - engines: { node: ">=8" } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} svelte@5.36.16: - resolution: - { integrity: sha512-C7HnyISfvZEofs7T4p7+bmjrbQlhd6lZfgV2tLYg6Eb3nUFM/Zu9dGlSg+GWbUBU/WPw6zDPOFNZAx9qXsoCkg== } - engines: { node: ">=18" } + resolution: {integrity: sha512-C7HnyISfvZEofs7T4p7+bmjrbQlhd6lZfgV2tLYg6Eb3nUFM/Zu9dGlSg+GWbUBU/WPw6zDPOFNZAx9qXsoCkg==} + engines: {node: '>=18'} table@6.9.0: - resolution: - { integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== } - engines: { node: ">=10.0.0" } + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} text-table@0.2.0: - resolution: - { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} tmp@0.0.33: - resolution: - { integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== } - engines: { node: ">=0.6.0" } + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} to-regex-range@5.0.1: - resolution: - { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } - engines: { node: ">=8.0" } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} toml@3.0.0: - resolution: - { integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== } + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} ts-node@10.9.2: - resolution: - { integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== } + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' peerDependenciesMeta: - "@swc/core": + '@swc/core': optional: true - "@swc/wasm": + '@swc/wasm': optional: true tslib@2.8.1: - resolution: - { integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== } + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} type-fest@1.4.0: - resolution: - { integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== } - engines: { node: ">=10" } + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} typescript@5.8.3: - resolution: - { integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== } - engines: { node: ">=14.17" } + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} hasBin: true undici-types@5.26.5: - resolution: - { integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== } + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} universalify@2.0.1: - resolution: - { integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== } - engines: { node: ">= 10.0.0" } + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} upper-case-first@2.0.2: - resolution: - { integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== } + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} upper-case@2.0.2: - resolution: - { integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== } + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} uri-js@4.4.1: - resolution: - { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} v8-compile-cache-lib@3.0.1: - resolution: - { integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== } + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + viem@2.37.8: + resolution: {integrity: sha512-mL+5yvCQbRIR6QvngDQMfEiZTfNWfd+/QL5yFaOoYbpH3b1Q2ddwF7YG2eI2AcYSh9LE1gtUkbzZLFUAVyj4oQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true which@2.0.2: - resolution: - { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } - engines: { node: ">= 8" } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true wrap-ansi@8.1.0: - resolution: - { integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== } - engines: { node: ">=12" } + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} wrap-ansi@9.0.0: - resolution: - { integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== } - engines: { node: ">=18" } + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} wrappy@1.0.2: - resolution: - { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true yaml@2.3.1: - resolution: - { integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== } - engines: { node: ">= 14" } + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} yaml@2.8.0: - resolution: - { integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ== } - engines: { node: ">= 14.6" } + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} hasBin: true yn@3.1.1: - resolution: - { integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== } - engines: { node: ">=6" } + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} zimmerframe@1.1.2: - resolution: - { integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w== } + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} snapshots: - "@ampproject/remapping@2.3.0": + + '@adraffy/ens-normalize@1.11.1': {} + + '@ampproject/remapping@2.3.0': dependencies: - "@jridgewell/gen-mapping": 0.3.12 - "@jridgewell/trace-mapping": 0.3.29 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 - "@babel/code-frame@7.27.1": + '@babel/code-frame@7.27.1': dependencies: - "@babel/helper-validator-identifier": 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 - "@babel/helper-validator-identifier@7.27.1": {} + '@babel/helper-validator-identifier@7.27.1': {} - "@babel/runtime@7.28.2": {} + '@babel/runtime@7.28.2': {} - "@cspotcode/source-map-support@0.8.1": + '@cspotcode/source-map-support@0.8.1': dependencies: - "@jridgewell/trace-mapping": 0.3.9 + '@jridgewell/trace-mapping': 0.3.9 - "@jridgewell/gen-mapping@0.3.12": + '@jridgewell/gen-mapping@0.3.12': dependencies: - "@jridgewell/sourcemap-codec": 1.5.4 - "@jridgewell/trace-mapping": 0.3.29 + '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/trace-mapping': 0.3.29 - "@jridgewell/resolve-uri@3.1.2": {} + '@jridgewell/resolve-uri@3.1.2': {} - "@jridgewell/sourcemap-codec@1.5.4": {} + '@jridgewell/sourcemap-codec@1.5.4': {} - "@jridgewell/trace-mapping@0.3.29": + '@jridgewell/trace-mapping@0.3.29': dependencies: - "@jridgewell/resolve-uri": 3.1.2 - "@jridgewell/sourcemap-codec": 1.5.4 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.4 - "@jridgewell/trace-mapping@0.3.9": + '@jridgewell/trace-mapping@0.3.9': dependencies: - "@jridgewell/resolve-uri": 3.1.2 - "@jridgewell/sourcemap-codec": 1.5.4 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.4 - "@openzeppelin/contracts@5.4.0": {} + '@noble/ciphers@1.3.0': {} - "@prettier/sync@0.3.0(prettier@3.6.2)": + '@noble/curves@1.9.1': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.8.0': {} + + '@openzeppelin/contracts@5.4.0': {} + + '@prettier/sync@0.3.0(prettier@3.6.2)': dependencies: prettier: 3.6.2 - "@solidity-parser/parser@0.16.2": + '@scure/base@1.2.6': {} + + '@scure/bip32@1.7.0': + dependencies: + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + + '@scure/bip39@1.6.0': + dependencies: + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + + '@solidity-parser/parser@0.16.2': dependencies: antlr4ts: 0.5.0-alpha.4 - "@solidity-parser/parser@0.20.2": {} + '@solidity-parser/parser@0.20.2': {} - "@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)": + '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': dependencies: acorn: 8.15.0 - "@tsconfig/node10@1.0.11": {} + '@tsconfig/node10@1.0.11': {} - "@tsconfig/node12@1.0.11": {} + '@tsconfig/node12@1.0.11': {} - "@tsconfig/node14@1.0.3": {} + '@tsconfig/node14@1.0.3': {} - "@tsconfig/node16@1.0.4": {} + '@tsconfig/node16@1.0.4': {} - "@types/estree@1.0.8": {} + '@types/estree@1.0.8': {} - "@types/fs-extra@11.0.4": + '@types/fs-extra@11.0.4': dependencies: - "@types/jsonfile": 6.1.4 - "@types/node": 18.19.120 + '@types/jsonfile': 6.1.4 + '@types/node': 18.19.120 - "@types/jsonfile@6.1.4": + '@types/jsonfile@6.1.4': dependencies: - "@types/node": 18.19.120 + '@types/node': 18.19.120 - "@types/node@18.19.120": + '@types/node@18.19.120': dependencies: undici-types: 5.26.5 + abitype@1.1.0(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + acorn-walk@8.3.4: dependencies: acorn: 8.15.0 @@ -1390,7 +1263,7 @@ snapshots: date-fns@2.30.0: dependencies: - "@babel/runtime": 7.28.2 + '@babel/runtime': 7.28.2 debug@4.3.4: dependencies: @@ -1427,7 +1300,7 @@ snapshots: esrap@2.1.0: dependencies: - "@jridgewell/sourcemap-codec": 1.5.4 + '@jridgewell/sourcemap-codec': 1.5.4 eventemitter3@5.0.1: {} @@ -1461,9 +1334,9 @@ snapshots: frax-standard-solidity@https://codeload.github.com/FraxFinance/frax-standard-solidity/tar.gz/edd667c2be4b455176a799cff9b932386393ef8d: dependencies: - "@openzeppelin/contracts": 5.4.0 - "@types/fs-extra": 11.0.4 - "@types/node": 18.19.120 + '@openzeppelin/contracts': 5.4.0 + '@types/fs-extra': 11.0.4 + '@types/node': 18.19.120 change-case: 4.1.2 commander: 10.0.1 date-fns: 2.30.0 @@ -1482,8 +1355,8 @@ snapshots: ts-node: 10.9.2(@types/node@18.19.120)(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - - "@swc/core" - - "@swc/wasm" + - '@swc/core' + - '@swc/wasm' - debug - supports-color @@ -1548,12 +1421,16 @@ snapshots: is-reference@3.0.3: dependencies: - "@types/estree": 1.0.8 + '@types/estree': 1.0.8 is-stream@3.0.0: {} isexe@2.0.0: {} + isows@1.0.7(ws@8.18.3): + dependencies: + ws: 8.18.3 + js-sha3@0.8.0: {} js-tokens@4.0.0: {} @@ -1657,7 +1534,7 @@ snapshots: magic-string@0.30.17: dependencies: - "@jridgewell/sourcemap-codec": 1.5.4 + '@jridgewell/sourcemap-codec': 1.5.4 make-error@1.3.6: {} @@ -1718,6 +1595,21 @@ snapshots: os-tmpdir@1.0.2: {} + ox@0.9.6(typescript@5.8.3): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.1.0(typescript@5.8.3) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - zod + param-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -1729,7 +1621,7 @@ snapshots: parse-json@5.2.0: dependencies: - "@babel/code-frame": 7.27.1 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -1764,7 +1656,7 @@ snapshots: prettier-plugin-solidity@1.4.3(prettier@3.6.2): dependencies: - "@solidity-parser/parser": 0.20.2 + '@solidity-parser/parser': 0.20.2 prettier: 3.6.2 semver: 7.7.2 @@ -1851,14 +1743,14 @@ snapshots: solhint-plugin-prettier@0.1.0(prettier-plugin-solidity@1.4.3(prettier@3.6.2))(prettier@3.6.2): dependencies: - "@prettier/sync": 0.3.0(prettier@3.6.2) + '@prettier/sync': 0.3.0(prettier@3.6.2) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 prettier-plugin-solidity: 1.4.3(prettier@3.6.2) solhint@3.6.2(typescript@5.8.3): dependencies: - "@solidity-parser/parser": 0.16.2 + '@solidity-parser/parser': 0.16.2 ajv: 6.12.6 antlr4: 4.13.2 ast-parents: 0.0.1 @@ -1882,8 +1774,7 @@ snapshots: solidity-bytes-utils@0.8.4: {} - solidity-bytes-utils@https://codeload.github.com/GNSPS/solidity-bytes-utils/tar.gz/fc502455bb2a7e26a743378df042612dd50d1eb9: - {} + solidity-bytes-utils@https://codeload.github.com/GNSPS/solidity-bytes-utils/tar.gz/fc502455bb2a7e26a743378df042612dd50d1eb9: {} string-argv@0.3.2: {} @@ -1921,10 +1812,10 @@ snapshots: svelte@5.36.16: dependencies: - "@ampproject/remapping": 2.3.0 - "@jridgewell/sourcemap-codec": 1.5.4 - "@sveltejs/acorn-typescript": 1.0.5(acorn@8.15.0) - "@types/estree": 1.0.8 + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.4 + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) + '@types/estree': 1.0.8 acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 @@ -1958,12 +1849,12 @@ snapshots: ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3): dependencies: - "@cspotcode/source-map-support": 0.8.1 - "@tsconfig/node10": 1.0.11 - "@tsconfig/node12": 1.0.11 - "@tsconfig/node14": 1.0.3 - "@tsconfig/node16": 1.0.4 - "@types/node": 18.19.120 + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.19.120 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -1998,6 +1889,23 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + viem@2.37.8(typescript@5.8.3): + dependencies: + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.1.0(typescript@5.8.3) + isows: 1.0.7(ws@8.18.3) + ox: 0.9.6(typescript@5.8.3) + ws: 8.18.3 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + which@2.0.2: dependencies: isexe: 2.0.0 @@ -2016,6 +1924,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.18.3: {} + yaml@2.3.1: {} yaml@2.8.0: {} diff --git a/scripts/constants/TEMPLATE.ts b/scripts/constants/TEMPLATE.ts index f9570ee..07a0427 100644 --- a/scripts/constants/TEMPLATE.ts +++ b/scripts/constants/TEMPLATE.ts @@ -15,3 +15,7 @@ // Multisigs // PoolRelatedTokens + +// LayerZero + +// FraxtalLZHop \ No newline at end of file diff --git a/scripts/constants/abstract.ts b/scripts/constants/abstract.ts new file mode 100644 index 0000000..c1dbf58 --- /dev/null +++ b/scripts/constants/abstract.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E"; +export const FRXETHOFT = "0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440"; +export const FRXUSDOFT = "0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d"; +export const SFRXETHOFT = "0xFD78FD3667DeF2F1097Ed221ec503AE477155394"; +export const SFRXUSDOFT = "0x9F87fbb47C33Cd0614E43500b9511018116F79eE"; +export const WFRAXOFT = "0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F"; + +// FraxtalLZHop +export const REMOTEHOP = "0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb"; +export const REMOTEMINTREDEEMHOP = "0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b"; \ No newline at end of file diff --git a/scripts/constants/aptos.ts b/scripts/constants/aptos.ts new file mode 100644 index 0000000..933ad7a --- /dev/null +++ b/scripts/constants/aptos.ts @@ -0,0 +1,15 @@ +// Canonicals +export const FPI = "0x15607151cc023512886f5af24d4f77e6e7a5d6fb8a482dfb56b9c4f5c1fca0b2"; +export const FRXETH = "0x8645126a60d36e138d435a28875a2aeef253bf80aae22bebcd411ad4251f1585"; +export const FRXUSD = "0xe4354602aa4311f36240dd57f3f3435ffccdbd0cd2963f1a69da39a2dbcd59b5"; +export const SFRXETH = "0x80d729c4632bcc6279b7bed2542e01e2cebd34ca9f3f15963c29d1621efc221a"; +export const SFRXUSD = "0xbf2efbffbbd7083aaf006379d96b866b73bb4eb9684a7504c62feafe670962c2"; +export const WFRAX = "0x4e4cce8f877d7ad45c896c1823017fe07874f3d8db6e15960eda26e211151300"; + +// LayerZero +export const FPIOFT = "0xadf0ffffa5ee44a94f0c65be05e701951e65e276419f7460286a139d9403e864"; +export const FRXETHOFT = "0xecb3a766f12981919158fc8ec3b98dd3f8b39a59280e62e80c600cea1b2c0f9c"; +export const FRXUSDOFT = "0xe067037681385b86d8344e6b7746023604c6ac90ddc997ba3c58396c258ad17b"; +export const SFRXETHOFT = "0x28b7264258592031a024ed8e1632090648ec53797c269ac91aa0c9ed94268356"; +export const SFRXUSDOFT = "0xc9bdfdc965bb7fcdcfa6b45870eab33bfaf8f4e8e3f6b89d3e0203aba634a1c9"; +export const WFRAXOFT = "0x267749b1a80d9d582019e6b0572c1dbc98648e24101b0861395cdbed095ceff2"; diff --git a/scripts/constants/arbitrum.ts b/scripts/constants/arbitrum.ts index 0da206f..f599455 100644 --- a/scripts/constants/arbitrum.ts +++ b/scripts/constants/arbitrum.ts @@ -151,3 +151,15 @@ export const USDPLUSFRAXBP_GAUGE = "0x4645e6476D3A5595Be9Efd39426cc10586a8393D"; export const USDPLUSFRAXBP_POOL = "0xb34a7d1444a707349Bc7b981B7F2E1f20F81F013"; export const VECHR = "0x9A01857f33aa382b1d5bb96C3180347862432B0d"; export const VERAM = "0xAAA343032aA79eE9a6897Dab03bef967c3289a06"; + +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x29F5DBD0FE72d8f11271FCBE79Cb87E18a83C70A"; +export const REMOTEMINTREDEEMHOP = "0xa46A266dCBf199a71532c76967e200994C5A0D6d"; \ No newline at end of file diff --git a/scripts/constants/aurora.ts b/scripts/constants/aurora.ts new file mode 100644 index 0000000..03321e6 --- /dev/null +++ b/scripts/constants/aurora.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x53e36C8380Ff62D7964BFa4868A0045E58A52344"; +export const REMOTEMINTREDEEMHOP = "0x8EbB34b1880B2EA5e458082590B3A2c9Ea7C41A2"; \ No newline at end of file diff --git a/scripts/constants/avalanche.ts b/scripts/constants/avalanche.ts index 295ead0..ec46876 100644 --- a/scripts/constants/avalanche.ts +++ b/scripts/constants/avalanche.ts @@ -60,3 +60,15 @@ export const PANGOLIN_CANFRAX_USDC_E = "0x0c8249757b8d66cB2b6155281A5e4f8F53C94c export const PANGOLIN_CANFRAX_WAVAX = "0x0CE543c0f81ac9AAa665cCaAe5EeC70861a6b559"; export const PANGOLIN_CANFXS_USDC_E = "0x8614F7ca1f4b08Ef2C158a3027EA55fAA8384aC8"; export const TRADER_JOE_FRAX_WAVAX = "0x0d84595e8638dBc631076c51000B2d31120D8aa1"; + +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A"; +export const REMOTEMINTREDEEMHOP = "0x452420df4AC1e3db5429b5FD629f3047482C543C"; diff --git a/scripts/constants/base.ts b/scripts/constants/base.ts new file mode 100644 index 0000000..945a9a0 --- /dev/null +++ b/scripts/constants/base.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0xEEdd3A0DDDF977462A97C1F0eBb89C3fbe8D084B"; +export const FRXETHOFT = "0x7eb8d1E4E2D0C8b9bEDA7a97b305cF49F3eeE8dA"; +export const FRXUSDOFT = "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6"; +export const SFRXETHOFT = "0x192e0C7Cc9B263D93fa6d472De47bBefe1Fb12bA"; +export const SFRXUSDOFT = "0x91A3f8a8d7a881fBDfcfEcd7A2Dc92a46DCfa14e"; +export const WFRAXOFT = "0x0CEAC003B0d2479BebeC9f4b2EBAd0a803759bbf"; + +// FraxtalLZHop +export const REMOTEHOP = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const REMOTEMINTREDEEMHOP = "0x73382eb28F35d80Df8C3fe04A3EED71b1aFce5dE"; \ No newline at end of file diff --git a/scripts/constants/bera.ts b/scripts/constants/bera.ts new file mode 100644 index 0000000..48b4cb8 --- /dev/null +++ b/scripts/constants/bera.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0xc71BF5Ee4740405030eF521F18A96eA14fec802D"; +export const REMOTEMINTREDEEMHOP = "0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263"; \ No newline at end of file diff --git a/scripts/constants/blast.ts b/scripts/constants/blast.ts new file mode 100644 index 0000000..f6f399a --- /dev/null +++ b/scripts/constants/blast.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0xe93Cb38f97469eac2f284a87813D0d701b28E58e"; +export const REMOTEMINTREDEEMHOP = "0x85b1714b25f40FD5025423124c076476073180b3"; \ No newline at end of file diff --git a/scripts/constants/bsc.ts b/scripts/constants/bsc.ts index 01e8591..a2cff5a 100644 --- a/scripts/constants/bsc.ts +++ b/scripts/constants/bsc.ts @@ -56,3 +56,15 @@ export const APESWAP_CANFRAX_WBNB = "0x16BDb03E6074759943149eBB1526DDfD1AA5fc56" export const APESWAP_CANFRAX_USDC = "0x885BE9bCbCdcB70c59F56A78ae64A820e0448589"; export const APESWAP_CANFXS_USDC = "0x84f2781E4E60f97D2963260A7b20D883F04F0d20"; export const SADDLE_FRAX_BUSD = "0xBD0091CC77Fd3bDb620985a1dD8D3f94E071CCE3"; + +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x452420df4AC1e3db5429b5FD629f3047482C543C"; +export const REMOTEMINTREDEEMHOP = "0xdee45510b42Cb0678C8A61D043C698aF66b0d852"; \ No newline at end of file diff --git a/scripts/constants/fraxtal-l2.ts b/scripts/constants/fraxtal-l2.ts index 6e921a1..f10be7f 100644 --- a/scripts/constants/fraxtal-l2.ts +++ b/scripts/constants/fraxtal-l2.ts @@ -1,16 +1,16 @@ export const CHAIN_ID = 252; // Canonicals -export const FRAX = "0xFc00000000000000000000000000000000000001"; -export const FXS = "0xFc00000000000000000000000000000000000002"; +export const FRXUSD = "0xFc00000000000000000000000000000000000001"; +export const WFRAX = "0xFc00000000000000000000000000000000000002"; export const FPI = "0xFc00000000000000000000000000000000000003"; export const FPIS = "0xfc00000000000000000000000000000000000004"; export const SFRXETH = "0xFC00000000000000000000000000000000000005"; export const WFRXETH = "0xFC00000000000000000000000000000000000006"; export const FRXBTC = "0xfC00000000000000000000000000000000000007"; export const SFRAX = "0xfc00000000000000000000000000000000000008"; -export const FRAX_PROXY = FRAX; -export const FXS_PROXY = FXS; +export const FRXUSD_PROXY = FRXUSD; +export const WFRAX_PROXY = WFRAX; export const FPI_PROXY = FPI; export const FPIS_PROXY = FPIS; export const SFRXETH_PROXY = SFRXETH; @@ -186,3 +186,15 @@ export const CROSS_DOMAIN_MESSENGER = "0x420000000000000000000000000000000000000 export const ERC20_FACTORY_PROXY = "0x4200000000000000000000000000000000000012"; export const L2_STANDARD_BRIDGE_PROXY = "0x4200000000000000000000000000000000000010"; export const L2_TO_L1_MESSAGE_PASSER = "0x4200000000000000000000000000000000000016"; + +// LayerZero +export const FPIOFT = "0x75c38D46001b0F8108c4136216bd2694982C20FC"; +export const FRXETHOFT = "0x9aBFE1F8a999B0011ecD6116649AEe8D575F5604"; +export const FRXUSDOFT = "0x96A394058E2b84A89bac9667B19661Ed003cF5D4"; +export const SFRXETHOFT = "0x999dfAbe3b1cc2EF66eB032Eea42FeA329bBa168"; +export const SFRXUSDOFT = "0x88Aa7854D3b2dAA5e37E7Ce73A1F39669623a361"; +export const WFRAXOFT = "0xd86fBBd0c8715d2C1f40e451e5C3514e65E7576A"; + +// FraxtalLZHop +export const FRAXTALHOP = "0x2A2019b30C157dB6c1C01306b8025167dBe1803B"; +export const FRAXTALMINTREDEEMHOP = "0x3e6a2cBaFD864e09e6DAb9Cf035a0AbEa32bc0BC"; \ No newline at end of file diff --git a/scripts/constants/hyperliquid.ts b/scripts/constants/hyperliquid.ts new file mode 100644 index 0000000..572031b --- /dev/null +++ b/scripts/constants/hyperliquid.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = ""; +export const REMOTEMINTREDEEMHOP = ""; \ No newline at end of file diff --git a/scripts/constants/index.ts b/scripts/constants/index.ts index 7b63f62..94afcd4 100644 --- a/scripts/constants/index.ts +++ b/scripts/constants/index.ts @@ -1,5 +1,11 @@ +export * as Abstract from "./abstract"; +export * as Aptos from "./aptos"; export * as Arbitrum from "./arbitrum"; +export * as Aurora from "./aurora"; export * as Avalanche from "./avalanche"; +export * as Base from "./base"; +export * as Bera from "./bera"; +export * as Blast from "./blast"; export * as BSC from "./bsc"; export * as Fantom from "./fantom"; export * as FraxtalL1Devnet from "./fraxtal-devnet-l1"; @@ -8,9 +14,23 @@ export * as FraxtalL2 from "./fraxtal-l2"; export * as FraxtalTestnetL1 from "./fraxtal-testnet-l1"; export * as FraxtalTestnetL2 from "./fraxtal-testnet-l2"; export * as Holesky from "./holesky"; +export * as Hyperliquid from "./hyperliquid"; +export * as Ink from "./ink"; +export * as Katana from "./katana"; +export * as Linea from "./linea" export * as Mainnet from "./mainnet"; +export * as Mode from "./mode"; export * as Moonbeam from "./moonbeam"; export * as Moonriver from "./moonriver"; +export * as Movement from "./movement"; export * as Optimism from "./optimism"; +export * as Plumephoenix from "./plumephoenix"; export * as Polygon from "./polygon"; export * as PolygonzkEVM from "./polygon-zkevm"; +export * as Scroll from "./scroll"; +export * as Solana from "./solana" +export * as Sonic from "./sonic" +export * as Unichain from "./unichain" +export * as Worldchain from "./worldchain" +export * as XLayer from "./xlayer" +export * as ZkSync from "./zksync" diff --git a/scripts/constants/ink.ts b/scripts/constants/ink.ts new file mode 100644 index 0000000..19273ee --- /dev/null +++ b/scripts/constants/ink.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A"; +export const REMOTEMINTREDEEMHOP = "0x452420df4AC1e3db5429b5FD629f3047482C543C"; \ No newline at end of file diff --git a/scripts/constants/katana.ts b/scripts/constants/katana.ts new file mode 100644 index 0000000..ac818ab --- /dev/null +++ b/scripts/constants/katana.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x5d8EB59A12Bc98708702305A7b032f4b69Dd5b5c"; +export const REMOTEMINTREDEEMHOP = "0xF6f45CCB5E85D1400067ee66F9e168f83e86124E"; \ No newline at end of file diff --git a/scripts/constants/linea.ts b/scripts/constants/linea.ts new file mode 100644 index 0000000..7391dde --- /dev/null +++ b/scripts/constants/linea.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0xDaF72Aa849d3C4FAA8A9c8c99f240Cf33dA02fc4"; +export const FRXETHOFT = "0xB1aFD04774c02AE84692619448B08BA79F19b1ff"; +export const FRXUSDOFT = "0xC7346783f5e645aa998B106Ef9E7f499528673D8"; +export const SFRXETHOFT = "0x383Eac7CcaA89684b8277cBabC25BCa8b13B7Aa2"; +export const SFRXUSDOFT = "0x592a48c0FB9c7f8BF1701cB0136b90DEa2A5B7B6"; +export const WFRAXOFT = "0x5217Ab28ECE654Aab2C68efedb6A22739df6C3D5"; + +// FraxtalLZHop +export const REMOTEHOP = "0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876"; +export const REMOTEMINTREDEEMHOP = "0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb"; \ No newline at end of file diff --git a/scripts/constants/mainnet.ts b/scripts/constants/mainnet.ts index 2bb2e38..a38094a 100644 --- a/scripts/constants/mainnet.ts +++ b/scripts/constants/mainnet.ts @@ -1032,3 +1032,15 @@ export const KYBERSWAP_ELASTIC_TICK_FEES_READER_V2 = "0x8Fd8Cb948965d9305999D767 export const NON_FUNGIBLE_POSITION_MANAGER = "0xC36442b4a4522E871399CD717aBDD847Ab11FE88"; export const SWAPROUTER = "0xE592427A0AEce92De3Edee1F18E0157C05861564"; export const UNISWAP_V3_FACTORY = "0x1F98431c8aD98523631AE4a59f267346ea31F984"; + +// LayerZero +export const FPIOFT = "0x9033BAD7aA130a2466060A2dA71fAe2219781B4b"; +export const FRXETHOFT = "0x1c1649A38f4A3c5A0c4a24070f688C525AB7D6E6"; +export const FRXUSDOFT = "0x566a6442A5A6e9895B9dCA97cC7879D632c6e4B0"; +export const SFRXETHOFT = "0xbBc424e58ED38dd911309611ae2d7A23014Bd960"; +export const SFRXUSDOFT = "0x7311CEA93ccf5f4F7b789eE31eBA5D9B9290E126"; +export const WFRAXOFT = "0x04ACaF8D2865c0714F79da09645C13FD2888977f"; + +// FraxtalLZHop +export const REMOTEHOP = "0x3ad4dC2319394bB4BE99A0e4aE2AbF7bCEbD648E"; +export const REMOTEMINTREDEEMHOP = "0x99B5587ab54A49e3F827D10175Caf69C0187bfA8"; \ No newline at end of file diff --git a/scripts/constants/mode.ts b/scripts/constants/mode.ts new file mode 100644 index 0000000..652853a --- /dev/null +++ b/scripts/constants/mode.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x486cb4788f1be7cdef9301a7a637b451df3cf262"; +export const REMOTEMINTREDEEMHOP = "0x7360575f6f8F91b38dD078241b0Df508f5fBfDf9"; \ No newline at end of file diff --git a/scripts/constants/movement.ts b/scripts/constants/movement.ts new file mode 100644 index 0000000..933ad7a --- /dev/null +++ b/scripts/constants/movement.ts @@ -0,0 +1,15 @@ +// Canonicals +export const FPI = "0x15607151cc023512886f5af24d4f77e6e7a5d6fb8a482dfb56b9c4f5c1fca0b2"; +export const FRXETH = "0x8645126a60d36e138d435a28875a2aeef253bf80aae22bebcd411ad4251f1585"; +export const FRXUSD = "0xe4354602aa4311f36240dd57f3f3435ffccdbd0cd2963f1a69da39a2dbcd59b5"; +export const SFRXETH = "0x80d729c4632bcc6279b7bed2542e01e2cebd34ca9f3f15963c29d1621efc221a"; +export const SFRXUSD = "0xbf2efbffbbd7083aaf006379d96b866b73bb4eb9684a7504c62feafe670962c2"; +export const WFRAX = "0x4e4cce8f877d7ad45c896c1823017fe07874f3d8db6e15960eda26e211151300"; + +// LayerZero +export const FPIOFT = "0xadf0ffffa5ee44a94f0c65be05e701951e65e276419f7460286a139d9403e864"; +export const FRXETHOFT = "0xecb3a766f12981919158fc8ec3b98dd3f8b39a59280e62e80c600cea1b2c0f9c"; +export const FRXUSDOFT = "0xe067037681385b86d8344e6b7746023604c6ac90ddc997ba3c58396c258ad17b"; +export const SFRXETHOFT = "0x28b7264258592031a024ed8e1632090648ec53797c269ac91aa0c9ed94268356"; +export const SFRXUSDOFT = "0xc9bdfdc965bb7fcdcfa6b45870eab33bfaf8f4e8e3f6b89d3e0203aba634a1c9"; +export const WFRAXOFT = "0x267749b1a80d9d582019e6b0572c1dbc98648e24101b0861395cdbed095ceff2"; diff --git a/scripts/constants/optimism.ts b/scripts/constants/optimism.ts index 9dea4a9..d19245d 100644 --- a/scripts/constants/optimism.ts +++ b/scripts/constants/optimism.ts @@ -52,3 +52,15 @@ export const FPI_COMPTROLLER = "0x8Acc8819cBB632dE4a8E732f08b9E578D2A8F635"; // PoolRelatedTokens export const CURVE_4POOL = "0x3da3153E26A230d918bb9F9428A8d60349B73379"; export const KYBERSWAP_ELASTIC_FRAX_USDC_OPTIMISM = "0x97cB76cbb84Aa35deaF1dAC3101a506588B6c197"; + +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x31D982ebd82Ad900358984bd049207A4c2468640"; +export const REMOTEMINTREDEEMHOP = "0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A"; \ No newline at end of file diff --git a/scripts/constants/plumephoenix.ts b/scripts/constants/plumephoenix.ts new file mode 100644 index 0000000..1efb4e5 --- /dev/null +++ b/scripts/constants/plumephoenix.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876"; +export const REMOTEMINTREDEEMHOP = "0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb"; \ No newline at end of file diff --git a/scripts/constants/polygon-zkevm.ts b/scripts/constants/polygon-zkevm.ts index 0a9f1aa..2b4a666 100644 --- a/scripts/constants/polygon-zkevm.ts +++ b/scripts/constants/polygon-zkevm.ts @@ -36,3 +36,15 @@ export const COMBO_ORACLE = "0x030BD43af99cb72B51dA233A73F7697Cd2461C0b"; export const COMBO_ORACLE_UNIV2_UNIV3 = "0x967d0c5f7362A54b156cf2831Fb17dA8681FAD7D"; // PoolRelatedTokens + +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x111ddab65Af5fF96b674400246699ED40F550De1"; +export const REMOTEMINTREDEEMHOP = "0xc71BF5Ee4740405030eF521F18A96eA14fec802D"; \ No newline at end of file diff --git a/scripts/constants/polygon.ts b/scripts/constants/polygon.ts index 4bedf7b..13a1816 100644 --- a/scripts/constants/polygon.ts +++ b/scripts/constants/polygon.ts @@ -56,3 +56,15 @@ export const DYSTOPIA_STABLEV1_AMM___USDC_FRAX = "0x53227c83a98Ba1035FEd912Da6cE export const DYSTOPIA_VOLATILEV1_AMM___FXS_FRAX = "0xfC2e89aabD257471a461dd506188609B2Bec53Fa"; export const FRAX3POOL = "0x5e5A23b52Cb48F5E70271Be83079cA5bC9c9e9ac"; export const HOP_LP_USDC = "0x9D373d22FD091d7f9A6649EB067557cc12Fb1A0A"; + +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0xf74D38A26948E9DDa53eD85cF03C6b1188FbB30C"; +export const REMOTEMINTREDEEMHOP = "0x5658e82E330e094627D9b362ed0E137eA06673C4"; \ No newline at end of file diff --git a/scripts/constants/scroll.ts b/scripts/constants/scroll.ts new file mode 100644 index 0000000..5db5344 --- /dev/null +++ b/scripts/constants/scroll.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0xf6f45ccb5e85d1400067ee66f9e168f83e86124e"; +export const REMOTEMINTREDEEMHOP = "0x91DDB0E0C36B901C6BF53B9Eb5ACa0Eb1465F558"; \ No newline at end of file diff --git a/scripts/constants/sei.ts b/scripts/constants/sei.ts new file mode 100644 index 0000000..294d513 --- /dev/null +++ b/scripts/constants/sei.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x3a6F28e8DDD232B02C72C491Bd1626F69D2fb329"; +export const REMOTEMINTREDEEMHOP = "0x0255a172d0a060F2bEab3e7c12334dD73cCC26ba"; \ No newline at end of file diff --git a/scripts/constants/solana.ts b/scripts/constants/solana.ts new file mode 100644 index 0000000..1d91148 --- /dev/null +++ b/scripts/constants/solana.ts @@ -0,0 +1,13 @@ +// LayerZero +export const FPIOFT = "8xKX8CRH9LxriRUNCPittu1jiovyQQr4EonWQjHZjWyH" +export const FRXETHOFT = "5sDrwVNiHMM2jC78hRBH1CtysDQYiNKihubgW2zNu8tf" +export const FRXUSDOFT = "GzX1ireZDU865FiMaKrdVB1H6AE8LAqWYCg6chrMrfBw" +export const SFRXETHOFT = "58zpC9acE6F4FBtd88L64NoWHJcmzLsQSy5bjz35Ydgv" +export const SFRXUSDOFT = "DUvWQMyASSkLNJFwsMDA4kwxEvmfaqpPGrvUVKtitX45" +export const WFRAXOFT = "zZbQjiRg8uSxZaPu996XuviuZeSY6nsaMuutKZQBJga" +export const FPIOFT_BYTES32 = "0xd3cee058686107cc51844f331ee213a33142ab299b5ce473c1cf3a8ddaa721a0"; +export const FRXETHOFT_BYTES32 = "0x38dd9e11bbf63835dc61d3cbf259f4221f5987ac92982c96609b99634662dfb3"; +export const FRXUSDOFT_BYTES32 = "0x5e208a73d5bb1c78e9dbf53badd7299afd6bee9acacdcd4fd668833e53c538ad"; +export const SFRXETHOFT_BYTES32 = "0xbf2f1fc27286a43f25b05bd843a74a5478c4246343fa90c1fcb641a1caf46c61"; +export const SFRXUSDOFT_BYTES32 = "0x8602f005ca65b6da46a3c6ce66ecd1d15be911ca650d5f418d369df184b584cf"; +export const WFRAXOFT_BYTES32 = "0x4939035f8dd13d15a9386e28b6705519aa6f488791323466a3c0116a201e51aa"; \ No newline at end of file diff --git a/scripts/constants/sonic.ts b/scripts/constants/sonic.ts new file mode 100644 index 0000000..5b0d672 --- /dev/null +++ b/scripts/constants/sonic.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x3A5cDA3Ac66Aa80573402610c94B74eD6cdb2F23"; +export const REMOTEMINTREDEEMHOP = "0xf6115Bb9b6A4b3660dA409cB7afF1fb773efaD0b"; \ No newline at end of file diff --git a/scripts/constants/unichain.ts b/scripts/constants/unichain.ts new file mode 100644 index 0000000..48b4cb8 --- /dev/null +++ b/scripts/constants/unichain.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0xc71BF5Ee4740405030eF521F18A96eA14fec802D"; +export const REMOTEMINTREDEEMHOP = "0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263"; \ No newline at end of file diff --git a/scripts/constants/worldchain.ts b/scripts/constants/worldchain.ts new file mode 100644 index 0000000..4b82a1c --- /dev/null +++ b/scripts/constants/worldchain.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x938d99A81814f66b01010d19DDce92A633441699"; +export const REMOTEMINTREDEEMHOP = "0x111ddab65Af5fF96b674400246699ED40F550De1"; \ No newline at end of file diff --git a/scripts/constants/xlayer.ts b/scripts/constants/xlayer.ts new file mode 100644 index 0000000..b4e7183 --- /dev/null +++ b/scripts/constants/xlayer.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927"; +export const FRXETHOFT = "0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050"; +export const FRXUSDOFT = "0x80Eede496655FB9047dd39d9f418d5483ED600df"; +export const SFRXETHOFT = "0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45"; +export const SFRXUSDOFT = "0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0"; +export const WFRAXOFT = "0x64445f0aecC51E94aD52d8AC56b7190e764E561a"; + +// FraxtalLZHop +export const REMOTEHOP = "0x79152c303AD5aE429eDefa4553CB1Ad2c6EE1396"; +export const REMOTEMINTREDEEMHOP = "0x45c6852a5188ce1905567ea83454329bd4982007"; \ No newline at end of file diff --git a/scripts/constants/zksync.ts b/scripts/constants/zksync.ts new file mode 100644 index 0000000..c1dbf58 --- /dev/null +++ b/scripts/constants/zksync.ts @@ -0,0 +1,11 @@ +// LayerZero +export const FPIOFT = "0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E"; +export const FRXETHOFT = "0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440"; +export const FRXUSDOFT = "0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d"; +export const SFRXETHOFT = "0xFD78FD3667DeF2F1097Ed221ec503AE477155394"; +export const SFRXUSDOFT = "0x9F87fbb47C33Cd0614E43500b9511018116F79eE"; +export const WFRAXOFT = "0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F"; + +// FraxtalLZHop +export const REMOTEHOP = "0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb"; +export const REMOTEMINTREDEEMHOP = "0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b"; \ No newline at end of file diff --git a/scripts/generateConstants.ts b/scripts/generateConstants.ts index 0fec963..d2d0ad7 100644 --- a/scripts/generateConstants.ts +++ b/scripts/generateConstants.ts @@ -1,12 +1,19 @@ import * as fs from "fs/promises"; import path from "path"; +import { isAddress } from "viem" import * as constants from "./constants"; const networkPrefixes = { + Abstract: "ABS", + Aptos: "APT", Arbitrum: "ARBI", + Aurora: "AUR", Avalanche: "AVAX", - BSC: "BSC", + Base: "BASE", + Bera: "BERA", + Blast: "BLAST", + Bsc: "BSC", Fantom: "FTM", FraxtalL1Devnet: "FXTL_L1_DN", FraxtalL2Devnet: "FXTL_L2_DN", @@ -14,12 +21,26 @@ const networkPrefixes = { FraxtalTestnetL1: "FXTL_TN_L1", FraxtalTestnetL2: "FXTL_TN_L2", Holesky: "HOLESKY", + Hyperliquid: "HYPE", + Ink: "INK", + Katana: "KTN", Mainnet: "ETH", + Movement:"MOVE", Moonbeam: "MNBM", Moonriver: "MOVR", Optimism: "OPTI", + Plumephoenix: "PLUME", Polygon: "POLY", PolygonzkEVM: "POLY_ZKEVM", + Scroll: "SCROLL", + Sei: "SEI", + Solana: "SOL", + Sonic: "SONIC", + Unichain: "UNI", + Worldchain: "WRLD", + Linea: "LINEA", + XLayer: "XLAYER", + Zksync: "ZKSYNC" }; const REMOVE_DUPLICATE_LABELS = false; @@ -31,22 +52,27 @@ async function main() { // Prepare seen/duplicate values const seenValues = []; - // Generate the files - for (let n = 0; n < networks.length; n++) { - const networkName = networks[n]; - const outputString = await handleSingleNetwork(networkName, constants[networkName], seenValues); - - const finalString = - `// SPDX-License-Identifier: ISC + const headerString = `// SPDX-License-Identifier: ISC pragma solidity >=0.8.0; // **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. import { TestBase } from "forge-std/Test.sol"; - ` + outputString; + ` + + let finalConstantsString = headerString; + + // Generate the files + for (let n = 0; n < networks.length; n++) { + const networkName = networks[n]; + const outputString = await handleSingleNetwork(networkName, constants[networkName], seenValues); + + const finalString = headerString + outputString; + finalConstantsString = finalConstantsString + outputString; await fs.writeFile(path.resolve("src/contracts/chain-constants", `${networkName}.sol`), finalString); } + await fs.writeFile(path.resolve("src/", `Constants.sol`), finalConstantsString); } async function handleSingleNetwork(networkName, constants, seenValues) { @@ -56,7 +82,12 @@ async function handleSingleNetwork(networkName, constants, seenValues) { if (typeof value === "string") { // Determine whether it is an address or a string if (value.startsWith("0x")) { - return ` address internal constant ${key} = ${value};`; + if (isAddress(value)) { return ` address internal constant ${key} = ${value};`; } + else if (value.length === 66) { + return ` bytes32 internal constant ${key} = ${value};`; + } else { + throw new Error("Unidentifed constant type") + } } return ` string internal constant ${key} = "${value}";`; } else { @@ -92,6 +123,11 @@ async function handleSingleNetwork(networkName, constants, seenValues) { } }); + const contractString = `library ${networkName} { +${constantString} +} +`; + // Generate the labels for the entries const labelStrings = Object.entries(constantsToLabel) .map(([key, value]) => { @@ -102,13 +138,11 @@ async function handleSingleNetwork(networkName, constants, seenValues) { return ` vm.label(${value}, "Constants.${networkPrefixes[networkName]}_${key}");`; }) .join("\n"); - const contractString = `library ${networkName} { -${constantString} -} -`; - // if (networkName == "Mainnet") { - const constantsHelper = ` + let constantsHelper = ""; + + if (networkName != "Aptos" && networkName != "Movement" && networkName != "Solana") { + constantsHelper = constantsHelper + ` abstract contract AddressHelper${networkName} is TestBase { constructor() { labelConstants(); @@ -119,6 +153,7 @@ ${labelStrings} } } `; + } return contractString + constantsHelper; // } // return contractString; diff --git a/src/Constants.sol b/src/Constants.sol index d8f41bf..0a8bf4c 100644 --- a/src/Constants.sol +++ b/src/Constants.sol @@ -5,6 +5,47 @@ pragma solidity >=0.8.0; import { TestBase } from "forge-std/Test.sol"; + library Abstract { + address internal constant FPIOFT = 0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E; + address internal constant FRXETHOFT = 0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440; + address internal constant FRXUSDOFT = 0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d; + address internal constant SFRXETHOFT = 0xFD78FD3667DeF2F1097Ed221ec503AE477155394; + address internal constant SFRXUSDOFT = 0x9F87fbb47C33Cd0614E43500b9511018116F79eE; + address internal constant WFRAXOFT = 0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F; + address internal constant REMOTEHOP = 0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb; + address internal constant REMOTEMINTREDEEMHOP = 0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b; +} + +abstract contract AddressHelperAbstract is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E, "Constants.ABS_FPIOFT"); + vm.label(0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440, "Constants.ABS_FRXETHOFT"); + vm.label(0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d, "Constants.ABS_FRXUSDOFT"); + vm.label(0xFD78FD3667DeF2F1097Ed221ec503AE477155394, "Constants.ABS_SFRXETHOFT"); + vm.label(0x9F87fbb47C33Cd0614E43500b9511018116F79eE, "Constants.ABS_SFRXUSDOFT"); + vm.label(0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F, "Constants.ABS_WFRAXOFT"); + vm.label(0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb, "Constants.ABS_REMOTEHOP"); + vm.label(0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b, "Constants.ABS_REMOTEMINTREDEEMHOP"); + } +} +library Aptos { + bytes32 internal constant FPI = 0x15607151cc023512886f5af24d4f77e6e7a5d6fb8a482dfb56b9c4f5c1fca0b2; + bytes32 internal constant FRXETH = 0x8645126a60d36e138d435a28875a2aeef253bf80aae22bebcd411ad4251f1585; + bytes32 internal constant FRXUSD = 0xe4354602aa4311f36240dd57f3f3435ffccdbd0cd2963f1a69da39a2dbcd59b5; + bytes32 internal constant SFRXETH = 0x80d729c4632bcc6279b7bed2542e01e2cebd34ca9f3f15963c29d1621efc221a; + bytes32 internal constant SFRXUSD = 0xbf2efbffbbd7083aaf006379d96b866b73bb4eb9684a7504c62feafe670962c2; + bytes32 internal constant WFRAX = 0x4e4cce8f877d7ad45c896c1823017fe07874f3d8db6e15960eda26e211151300; + bytes32 internal constant FPIOFT = 0xadf0ffffa5ee44a94f0c65be05e701951e65e276419f7460286a139d9403e864; + bytes32 internal constant FRXETHOFT = 0xecb3a766f12981919158fc8ec3b98dd3f8b39a59280e62e80c600cea1b2c0f9c; + bytes32 internal constant FRXUSDOFT = 0xe067037681385b86d8344e6b7746023604c6ac90ddc997ba3c58396c258ad17b; + bytes32 internal constant SFRXETHOFT = 0x28b7264258592031a024ed8e1632090648ec53797c269ac91aa0c9ed94268356; + bytes32 internal constant SFRXUSDOFT = 0xc9bdfdc965bb7fcdcfa6b45870eab33bfaf8f4e8e3f6b89d3e0203aba634a1c9; + bytes32 internal constant WFRAXOFT = 0x267749b1a80d9d582019e6b0572c1dbc98648e24101b0861395cdbed095ceff2; +} library Arbitrum { address internal constant FRAX = 0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F; address internal constant FXS = 0x9d2F299715D94d8A7E6F5eaa8E654E8c74a988A7; @@ -52,20 +93,13 @@ library Arbitrum { address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FERRY_TO_POLYGON = 0xe57314D4405289FfC91306E4574C28b7394c4822; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; - address internal constant FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ARBI_SIDE = - 0x5a9BEf8CEa603aAc78a523fb245C1A9264D50706; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ARBI_SIDE = - 0x4EE62cA4DC0576b943dc5A8A8b9FF0883C5F2fe1; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ARBI_SIDE = - 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ARBI_SIDE = - 0x6c5Ae8dCaD1E101FB108a89954D7dC0B8991445b; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ARBI_SIDE = - 0x078Dd77De4e0f480D7442495d55707cE071B4B09; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ARBI_SIDE = - 0x1B0b9991Df27a4F2847478127d51Fb29883882f5; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ARBI_SIDE = - 0xf1C16E1c01e62716884ef947063e9C7D44eC287F; + address internal constant FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ARBI_SIDE = 0x5a9BEf8CEa603aAc78a523fb245C1A9264D50706; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ARBI_SIDE = 0x4EE62cA4DC0576b943dc5A8A8b9FF0883C5F2fe1; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ARBI_SIDE = 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ARBI_SIDE = 0x6c5Ae8dCaD1E101FB108a89954D7dC0B8991445b; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ARBI_SIDE = 0x078Dd77De4e0f480D7442495d55707cE071B4B09; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ARBI_SIDE = 0x1B0b9991Df27a4F2847478127d51Fb29883882f5; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ARBI_SIDE = 0xf1C16E1c01e62716884ef947063e9C7D44eC287F; address internal constant FRAXLEND_WHITELIST_ADDRESS = 0xBC5Fcb3725c53b6EA8395A492Dad3D32F09EF079; address internal constant FRAXLEND_HOT_WALLET = 0xdB3388e770F49A604E11f1a2084B39279492a61f; address internal constant FRAXLEND_PAIR_REGISTRY_ADDRESS = 0x0bD2fFBcB0A17De2d5a543ec2D47C772eeaD316d; @@ -149,6 +183,14 @@ library Arbitrum { address internal constant USDPLUSFRAXBP_POOL = 0xb34a7d1444a707349Bc7b981B7F2E1f20F81F013; address internal constant VECHR = 0x9A01857f33aa382b1d5bb96C3180347862432B0d; address internal constant VERAM = 0xAAA343032aA79eE9a6897Dab03bef967c3289a06; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x29F5DBD0FE72d8f11271FCBE79Cb87E18a83C70A; + address internal constant REMOTEMINTREDEEMHOP = 0xa46A266dCBf199a71532c76967e200994C5A0D6d; } abstract contract AddressHelperArbitrum is TestBase { @@ -203,34 +245,13 @@ abstract contract AddressHelperArbitrum is TestBase { vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.ARBI_CREWMEMBER"); vm.label(0xe57314D4405289FfC91306E4574C28b7394c4822, "Constants.ARBI_FERRY_TO_POLYGON"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.ARBI_FIRST_OFFICER"); - vm.label( - 0x5a9BEf8CEa603aAc78a523fb245C1A9264D50706, - "Constants.ARBI_FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ARBI_SIDE" - ); - vm.label( - 0x4EE62cA4DC0576b943dc5A8A8b9FF0883C5F2fe1, - "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ARBI_SIDE" - ); - vm.label( - 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E, - "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ARBI_SIDE" - ); - vm.label( - 0x6c5Ae8dCaD1E101FB108a89954D7dC0B8991445b, - "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ARBI_SIDE" - ); - vm.label( - 0x078Dd77De4e0f480D7442495d55707cE071B4B09, - "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ARBI_SIDE" - ); - vm.label( - 0x1B0b9991Df27a4F2847478127d51Fb29883882f5, - "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ARBI_SIDE" - ); - vm.label( - 0xf1C16E1c01e62716884ef947063e9C7D44eC287F, - "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ARBI_SIDE" - ); + vm.label(0x5a9BEf8CEa603aAc78a523fb245C1A9264D50706, "Constants.ARBI_FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ARBI_SIDE"); + vm.label(0x4EE62cA4DC0576b943dc5A8A8b9FF0883C5F2fe1, "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ARBI_SIDE"); + vm.label(0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E, "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ARBI_SIDE"); + vm.label(0x6c5Ae8dCaD1E101FB108a89954D7dC0B8991445b, "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ARBI_SIDE"); + vm.label(0x078Dd77De4e0f480D7442495d55707cE071B4B09, "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ARBI_SIDE"); + vm.label(0x1B0b9991Df27a4F2847478127d51Fb29883882f5, "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ARBI_SIDE"); + vm.label(0xf1C16E1c01e62716884ef947063e9C7D44eC287F, "Constants.ARBI_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ARBI_SIDE"); vm.label(0xBC5Fcb3725c53b6EA8395A492Dad3D32F09EF079, "Constants.ARBI_FRAXLEND_WHITELIST_ADDRESS"); vm.label(0xdB3388e770F49A604E11f1a2084B39279492a61f, "Constants.ARBI_FRAXLEND_HOT_WALLET"); vm.label(0x0bD2fFBcB0A17De2d5a543ec2D47C772eeaD316d, "Constants.ARBI_FRAXLEND_PAIR_REGISTRY_ADDRESS"); @@ -314,9 +335,43 @@ abstract contract AddressHelperArbitrum is TestBase { vm.label(0xb34a7d1444a707349Bc7b981B7F2E1f20F81F013, "Constants.ARBI_USDPLUSFRAXBP_POOL"); vm.label(0x9A01857f33aa382b1d5bb96C3180347862432B0d, "Constants.ARBI_VECHR"); vm.label(0xAAA343032aA79eE9a6897Dab03bef967c3289a06, "Constants.ARBI_VERAM"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.ARBI_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.ARBI_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.ARBI_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.ARBI_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.ARBI_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.ARBI_WFRAXOFT"); + vm.label(0x29F5DBD0FE72d8f11271FCBE79Cb87E18a83C70A, "Constants.ARBI_REMOTEHOP"); + vm.label(0xa46A266dCBf199a71532c76967e200994C5A0D6d, "Constants.ARBI_REMOTEMINTREDEEMHOP"); } } +library Aurora { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x53e36C8380Ff62D7964BFa4868A0045E58A52344; + address internal constant REMOTEMINTREDEEMHOP = 0x8EbB34b1880B2EA5e458082590B3A2c9Ea7C41A2; +} +abstract contract AddressHelperAurora is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.AUR_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.AUR_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.AUR_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.AUR_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.AUR_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.AUR_WFRAXOFT"); + vm.label(0x53e36C8380Ff62D7964BFa4868A0045E58A52344, "Constants.AUR_REMOTEHOP"); + vm.label(0x8EbB34b1880B2EA5e458082590B3A2c9Ea7C41A2, "Constants.AUR_REMOTEMINTREDEEMHOP"); + } +} library Avalanche { address internal constant FRAX = 0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64; address internal constant FXS = 0x214DB107654fF987AD859F34125307783fC8e387; @@ -331,20 +386,13 @@ library Avalanche { address internal constant TRADER_JOE_FRAX_AVAX = 0x862905a82382Db9405a40DCAa8Ee9e8F4af52C89; address internal constant TRADER_JOE_FRAX_GOHM = 0x3E6Be71dE004363379d864006AAC37C9F55F8329; address internal constant TRADER_JOE_FXS_AVAX = 0x53942Dcce5087f56cF1D68F4e017Ca3A793F59a2; - address internal constant FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__AVAX_SIDE = - 0x5dfF474Cea8A1FA929AC9A3cE2550376aF11d2A8; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__AVAX_SIDE = - 0xC311b600bc926a3a8aC39945471427DFd9196930; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__AVAX_SIDE = - 0x5E2Ba6a55a5A031d4eCdbAf5691316b7779A6dD4; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__AVAX_SIDE = - 0xb3F6A473b875d74b0E2a86ba9F8a2A935241BaE7; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__AVAX_SIDE = - 0x8f4312DAB71BaAaF64917556333B004db5f3D7DA; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__AVAX_SIDE = - 0xaf45B8fbde0e0aCbeB5Acf2faE28A34701b1eF01; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__AVAX_SIDE = - 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E; + address internal constant FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__AVAX_SIDE = 0x5dfF474Cea8A1FA929AC9A3cE2550376aF11d2A8; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__AVAX_SIDE = 0xC311b600bc926a3a8aC39945471427DFd9196930; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__AVAX_SIDE = 0x5E2Ba6a55a5A031d4eCdbAf5691316b7779A6dD4; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__AVAX_SIDE = 0xb3F6A473b875d74b0E2a86ba9F8a2A935241BaE7; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__AVAX_SIDE = 0x8f4312DAB71BaAaF64917556333B004db5f3D7DA; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__AVAX_SIDE = 0xaf45B8fbde0e0aCbeB5Acf2faE28A34701b1eF01; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__AVAX_SIDE = 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -370,6 +418,14 @@ library Avalanche { address internal constant PANGOLIN_CANFRAX_WAVAX = 0x0CE543c0f81ac9AAa665cCaAe5EeC70861a6b559; address internal constant PANGOLIN_CANFXS_USDC_E = 0x8614F7ca1f4b08Ef2C158a3027EA55fAA8384aC8; address internal constant TRADER_JOE_FRAX_WAVAX = 0x0d84595e8638dBc631076c51000B2d31120D8aa1; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A; + address internal constant REMOTEMINTREDEEMHOP = 0x452420df4AC1e3db5429b5FD629f3047482C543C; } abstract contract AddressHelperAvalanche is TestBase { @@ -391,34 +447,13 @@ abstract contract AddressHelperAvalanche is TestBase { vm.label(0x862905a82382Db9405a40DCAa8Ee9e8F4af52C89, "Constants.AVAX_TRADER_JOE_FRAX_AVAX"); vm.label(0x3E6Be71dE004363379d864006AAC37C9F55F8329, "Constants.AVAX_TRADER_JOE_FRAX_GOHM"); vm.label(0x53942Dcce5087f56cF1D68F4e017Ca3A793F59a2, "Constants.AVAX_TRADER_JOE_FXS_AVAX"); - vm.label( - 0x5dfF474Cea8A1FA929AC9A3cE2550376aF11d2A8, - "Constants.AVAX_FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__AVAX_SIDE" - ); - vm.label( - 0xC311b600bc926a3a8aC39945471427DFd9196930, - "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__AVAX_SIDE" - ); - vm.label( - 0x5E2Ba6a55a5A031d4eCdbAf5691316b7779A6dD4, - "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__AVAX_SIDE" - ); - vm.label( - 0xb3F6A473b875d74b0E2a86ba9F8a2A935241BaE7, - "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__AVAX_SIDE" - ); - vm.label( - 0x8f4312DAB71BaAaF64917556333B004db5f3D7DA, - "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__AVAX_SIDE" - ); - vm.label( - 0xaf45B8fbde0e0aCbeB5Acf2faE28A34701b1eF01, - "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__AVAX_SIDE" - ); - vm.label( - 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E, - "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__AVAX_SIDE" - ); + vm.label(0x5dfF474Cea8A1FA929AC9A3cE2550376aF11d2A8, "Constants.AVAX_FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__AVAX_SIDE"); + vm.label(0xC311b600bc926a3a8aC39945471427DFd9196930, "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__AVAX_SIDE"); + vm.label(0x5E2Ba6a55a5A031d4eCdbAf5691316b7779A6dD4, "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__AVAX_SIDE"); + vm.label(0xb3F6A473b875d74b0E2a86ba9F8a2A935241BaE7, "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__AVAX_SIDE"); + vm.label(0x8f4312DAB71BaAaF64917556333B004db5f3D7DA, "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__AVAX_SIDE"); + vm.label(0xaf45B8fbde0e0aCbeB5Acf2faE28A34701b1eF01, "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__AVAX_SIDE"); + vm.label(0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E, "Constants.AVAX_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__AVAX_SIDE"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.AVAX_CAPTAIN"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.AVAX_FIRST_OFFICER"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.AVAX_CREWMEMBER"); @@ -444,9 +479,97 @@ abstract contract AddressHelperAvalanche is TestBase { vm.label(0x0CE543c0f81ac9AAa665cCaAe5EeC70861a6b559, "Constants.AVAX_PANGOLIN_CANFRAX_WAVAX"); vm.label(0x8614F7ca1f4b08Ef2C158a3027EA55fAA8384aC8, "Constants.AVAX_PANGOLIN_CANFXS_USDC_E"); vm.label(0x0d84595e8638dBc631076c51000B2d31120D8aa1, "Constants.AVAX_TRADER_JOE_FRAX_WAVAX"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.AVAX_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.AVAX_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.AVAX_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.AVAX_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.AVAX_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.AVAX_WFRAXOFT"); + vm.label(0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A, "Constants.AVAX_REMOTEHOP"); + vm.label(0x452420df4AC1e3db5429b5FD629f3047482C543C, "Constants.AVAX_REMOTEMINTREDEEMHOP"); } } +library Base { + address internal constant FPIOFT = 0xEEdd3A0DDDF977462A97C1F0eBb89C3fbe8D084B; + address internal constant FRXETHOFT = 0x7eb8d1E4E2D0C8b9bEDA7a97b305cF49F3eeE8dA; + address internal constant FRXUSDOFT = 0xe5020A6d073a794B6E7f05678707dE47986Fb0b6; + address internal constant SFRXETHOFT = 0x192e0C7Cc9B263D93fa6d472De47bBefe1Fb12bA; + address internal constant SFRXUSDOFT = 0x91A3f8a8d7a881fBDfcfEcd7A2Dc92a46DCfa14e; + address internal constant WFRAXOFT = 0x0CEAC003B0d2479BebeC9f4b2EBAd0a803759bbf; + address internal constant REMOTEHOP = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant REMOTEMINTREDEEMHOP = 0x73382eb28F35d80Df8C3fe04A3EED71b1aFce5dE; +} + +abstract contract AddressHelperBase is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0xEEdd3A0DDDF977462A97C1F0eBb89C3fbe8D084B, "Constants.BASE_FPIOFT"); + vm.label(0x7eb8d1E4E2D0C8b9bEDA7a97b305cF49F3eeE8dA, "Constants.BASE_FRXETHOFT"); + vm.label(0xe5020A6d073a794B6E7f05678707dE47986Fb0b6, "Constants.BASE_FRXUSDOFT"); + vm.label(0x192e0C7Cc9B263D93fa6d472De47bBefe1Fb12bA, "Constants.BASE_SFRXETHOFT"); + vm.label(0x91A3f8a8d7a881fBDfcfEcd7A2Dc92a46DCfa14e, "Constants.BASE_SFRXUSDOFT"); + vm.label(0x0CEAC003B0d2479BebeC9f4b2EBAd0a803759bbf, "Constants.BASE_WFRAXOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.BASE_REMOTEHOP"); + vm.label(0x73382eb28F35d80Df8C3fe04A3EED71b1aFce5dE, "Constants.BASE_REMOTEMINTREDEEMHOP"); + } +} +library Bera { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xc71BF5Ee4740405030eF521F18A96eA14fec802D; + address internal constant REMOTEMINTREDEEMHOP = 0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263; +} + +abstract contract AddressHelperBera is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.BERA_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.BERA_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.BERA_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.BERA_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.BERA_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.BERA_WFRAXOFT"); + vm.label(0xc71BF5Ee4740405030eF521F18A96eA14fec802D, "Constants.BERA_REMOTEHOP"); + vm.label(0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263, "Constants.BERA_REMOTEMINTREDEEMHOP"); + } +} +library Blast { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xe93Cb38f97469eac2f284a87813D0d701b28E58e; + address internal constant REMOTEMINTREDEEMHOP = 0x85b1714b25f40FD5025423124c076476073180b3; +} + +abstract contract AddressHelperBlast is TestBase { + constructor() { + labelConstants(); + } + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.BLAST_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.BLAST_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.BLAST_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.BLAST_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.BLAST_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.BLAST_WFRAXOFT"); + vm.label(0xe93Cb38f97469eac2f284a87813D0d701b28E58e, "Constants.BLAST_REMOTEHOP"); + vm.label(0x85b1714b25f40FD5025423124c076476073180b3, "Constants.BLAST_REMOTEMINTREDEEMHOP"); + } +} library BSC { address internal constant FRAX = 0x90C97F71E18723b0Cf0dfa30ee176Ab653E89F40; address internal constant FXS = 0xe48A3d7d0Bc88d552f730B62c006bC925eadB9eE; @@ -465,8 +588,7 @@ library BSC { address internal constant FRAXFERRY_V2__ETHEREUM_BSC__FPI__BSC_SIDE = 0x1B01514A2B3CdEf16fD3c680a818A0Ab97Da8a09; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__FPIS__BSC_SIDE = 0x0248940C22D2586450dd5145E81B7Fc0CA4Dd4a2; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__BSC_SIDE = 0xB7C974530e59017DF7FA06b1EBD9e8a1E9aceC29; - address internal constant FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__BSC_SIDE = - 0x612015939f70C87E2041cc5daD909101c1A2383F; + address internal constant FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__BSC_SIDE = 0x612015939f70C87E2041cc5daD909101c1A2383F; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__BSC_SIDE = 0x5E8422345238F34275888049021821E8E08CAa1f; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -490,6 +612,14 @@ library BSC { address internal constant APESWAP_CANFRAX_USDC = 0x885BE9bCbCdcB70c59F56A78ae64A820e0448589; address internal constant APESWAP_CANFXS_USDC = 0x84f2781E4E60f97D2963260A7b20D883F04F0d20; address internal constant SADDLE_FRAX_BUSD = 0xBD0091CC77Fd3bDb620985a1dD8D3f94E071CCE3; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x452420df4AC1e3db5429b5FD629f3047482C543C; + address internal constant REMOTEMINTREDEEMHOP = 0xdee45510b42Cb0678C8A61D043C698aF66b0d852; } abstract contract AddressHelperBSC is TestBase { @@ -498,65 +628,57 @@ abstract contract AddressHelperBSC is TestBase { } function labelConstants() public { - vm.label(0x90C97F71E18723b0Cf0dfa30ee176Ab653E89F40, "Constants.BSC_FRAX"); - vm.label(0xe48A3d7d0Bc88d552f730B62c006bC925eadB9eE, "Constants.BSC_FXS"); - vm.label(0x2Dd1B4D4548aCCeA497050619965f91f78b3b532, "Constants.BSC_FPI"); - vm.label(0xD1738eB733A636d1b8665f48bC8a24dA889c2562, "Constants.BSC_FPIS"); - vm.label(0x64048A7eEcF3a2F1BA9e144aAc3D7dB6e58F555e, "Constants.BSC_FRXETH"); - vm.label(0x3Cd55356433C89E50DC51aB07EE0fa0A95623D53, "Constants.BSC_SFRXETH"); - vm.label(0xa63f56985F9C7F3bc9fFc5685535649e0C1a55f3, "Constants.BSC_SFRAX"); - vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.BSC_APESWAP_CANFRAX_BUSD"); - vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.BSC_APESWAP_CANFXS_WBNB"); - vm.label(0x5e1F728C0123f7e8B237F61D0105bf9CBd8867B5, "Constants.BSC_IMPOSSIBLE_FRAX_IF"); - vm.label(0x5BE579e5fFF39a958E6269C6D011cd5f21e2cc32, "Constants.BSC_IMPOSSIBLE_FRAX_FXS"); - vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.BSC_PLANET_FINANCE_FRAX_LENDING"); - vm.label( - 0x10Ef54F944639764d2d5Efa272262f06cfaF09AE, - "Constants.BSC_FRAXFERRY_V1__ETHEREUM_BSC__FRAX__BSC_SIDE" - ); - vm.label(0x5CD3d6465cd21b645F15175840f4659228C6195c, "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FXS__BSC_SIDE"); - vm.label(0x1B01514A2B3CdEf16fD3c680a818A0Ab97Da8a09, "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FPI__BSC_SIDE"); - vm.label( - 0x0248940C22D2586450dd5145E81B7Fc0CA4Dd4a2, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FPIS__BSC_SIDE" - ); - vm.label( - 0xB7C974530e59017DF7FA06b1EBD9e8a1E9aceC29, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__BSC_SIDE" - ); - vm.label( - 0x612015939f70C87E2041cc5daD909101c1A2383F, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__BSC_SIDE" - ); - vm.label( - 0x5E8422345238F34275888049021821E8E08CAa1f, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__BSC_SIDE" - ); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.BSC_CAPTAIN"); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.BSC_FIRST_OFFICER"); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.BSC_CREWMEMBER"); - vm.label(0x1B3C6BdEACdc4DD9B0C8E3e2Fd222b4581a52A1A, "Constants.BSC_COMBO_ORACLE"); - vm.label(0x8159D9CD28B7A140Fd92311C1E5c667d97176727, "Constants.BSC_COMBO_ORACLE_UNIV2_UNIV3"); - vm.label(0xa007a9716dba05289df85A90d0Fd9D39BEE808dE, "Constants.BSC_FRAXSWAP_FACTORY_V1"); - vm.label(0xf89e6CA06121B6d4370f4B196Ae458e8b969A011, "Constants.BSC_FRAXSWAP_FACTORY_V2"); - vm.label(0x0000000000000000000000000000000000000000, "Constants.BSC_FRAXSWAP_ROUTER_MULTI_HOP"); - vm.label(0x0AE84c1A6E142Ed90f8A35a7E7B216CB25469E37, "Constants.BSC_FRAXSWAP_ROUTER_V1"); - vm.label(0x67F755137E0AE2a2aa0323c047715Bf6523116E5, "Constants.BSC_FRAXSWAP_ROUTER_V2"); - vm.label(0xC86B106F76ef5b9A085071365eD5355592A7aFa4, "Constants.BSC_FRAXSWAP_V1_FRAX_FXS"); - vm.label(0x84eE532a0d4238f5fC4a1E8c043f8749eD4F274D, "Constants.BSC_FRAXSWAP_V1_FRAX_WBNB"); - vm.label(0xF51709f61447E2647528CCC9030d6FE492C30D63, "Constants.BSC_FRAXSWAP_V2_FRAX_FXS"); - vm.label(0x14732123c443f8E815D5c64f3C7ecb63bCeEab74, "Constants.BSC_FRAXSWAP_V2_FRAX_WBNB"); - vm.label(0x8811Da0385cCf1848B21475A42eA4D07Fc5d964a, "Constants.BSC_COMPTROLLER"); - vm.label(0x49f9cbf5333d8e50c9BE76c775777DB2ACb1d456, "Constants.BSC_FPI_COMPTROLLER"); - vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.BSC_GFRAX"); - vm.label(0x489c8fF79245f14AEEE9520d28209844790cB979, "Constants.BSC_APESWAP_CANFRAX_CANFXS"); - vm.label(0x16BDb03E6074759943149eBB1526DDfD1AA5fc56, "Constants.BSC_APESWAP_CANFRAX_WBNB"); - vm.label(0x885BE9bCbCdcB70c59F56A78ae64A820e0448589, "Constants.BSC_APESWAP_CANFRAX_USDC"); - vm.label(0x84f2781E4E60f97D2963260A7b20D883F04F0d20, "Constants.BSC_APESWAP_CANFXS_USDC"); - vm.label(0xBD0091CC77Fd3bDb620985a1dD8D3f94E071CCE3, "Constants.BSC_SADDLE_FRAX_BUSD"); + vm.label(0x90C97F71E18723b0Cf0dfa30ee176Ab653E89F40, "Constants.undefined_FRAX"); + vm.label(0xe48A3d7d0Bc88d552f730B62c006bC925eadB9eE, "Constants.undefined_FXS"); + vm.label(0x2Dd1B4D4548aCCeA497050619965f91f78b3b532, "Constants.undefined_FPI"); + vm.label(0xD1738eB733A636d1b8665f48bC8a24dA889c2562, "Constants.undefined_FPIS"); + vm.label(0x64048A7eEcF3a2F1BA9e144aAc3D7dB6e58F555e, "Constants.undefined_FRXETH"); + vm.label(0x3Cd55356433C89E50DC51aB07EE0fa0A95623D53, "Constants.undefined_SFRXETH"); + vm.label(0xa63f56985F9C7F3bc9fFc5685535649e0C1a55f3, "Constants.undefined_SFRAX"); + vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.undefined_APESWAP_CANFRAX_BUSD"); + vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.undefined_APESWAP_CANFXS_WBNB"); + vm.label(0x5e1F728C0123f7e8B237F61D0105bf9CBd8867B5, "Constants.undefined_IMPOSSIBLE_FRAX_IF"); + vm.label(0x5BE579e5fFF39a958E6269C6D011cd5f21e2cc32, "Constants.undefined_IMPOSSIBLE_FRAX_FXS"); + vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.undefined_PLANET_FINANCE_FRAX_LENDING"); + vm.label(0x10Ef54F944639764d2d5Efa272262f06cfaF09AE, "Constants.undefined_FRAXFERRY_V1__ETHEREUM_BSC__FRAX__BSC_SIDE"); + vm.label(0x5CD3d6465cd21b645F15175840f4659228C6195c, "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FXS__BSC_SIDE"); + vm.label(0x1B01514A2B3CdEf16fD3c680a818A0Ab97Da8a09, "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FPI__BSC_SIDE"); + vm.label(0x0248940C22D2586450dd5145E81B7Fc0CA4Dd4a2, "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FPIS__BSC_SIDE"); + vm.label(0xB7C974530e59017DF7FA06b1EBD9e8a1E9aceC29, "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__BSC_SIDE"); + vm.label(0x612015939f70C87E2041cc5daD909101c1A2383F, "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__BSC_SIDE"); + vm.label(0x5E8422345238F34275888049021821E8E08CAa1f, "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__BSC_SIDE"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.undefined_CAPTAIN"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.undefined_FIRST_OFFICER"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.undefined_CREWMEMBER"); + vm.label(0x1B3C6BdEACdc4DD9B0C8E3e2Fd222b4581a52A1A, "Constants.undefined_COMBO_ORACLE"); + vm.label(0x8159D9CD28B7A140Fd92311C1E5c667d97176727, "Constants.undefined_COMBO_ORACLE_UNIV2_UNIV3"); + vm.label(0xa007a9716dba05289df85A90d0Fd9D39BEE808dE, "Constants.undefined_FRAXSWAP_FACTORY_V1"); + vm.label(0xf89e6CA06121B6d4370f4B196Ae458e8b969A011, "Constants.undefined_FRAXSWAP_FACTORY_V2"); + vm.label(0x0000000000000000000000000000000000000000, "Constants.undefined_FRAXSWAP_ROUTER_MULTI_HOP"); + vm.label(0x0AE84c1A6E142Ed90f8A35a7E7B216CB25469E37, "Constants.undefined_FRAXSWAP_ROUTER_V1"); + vm.label(0x67F755137E0AE2a2aa0323c047715Bf6523116E5, "Constants.undefined_FRAXSWAP_ROUTER_V2"); + vm.label(0xC86B106F76ef5b9A085071365eD5355592A7aFa4, "Constants.undefined_FRAXSWAP_V1_FRAX_FXS"); + vm.label(0x84eE532a0d4238f5fC4a1E8c043f8749eD4F274D, "Constants.undefined_FRAXSWAP_V1_FRAX_WBNB"); + vm.label(0xF51709f61447E2647528CCC9030d6FE492C30D63, "Constants.undefined_FRAXSWAP_V2_FRAX_FXS"); + vm.label(0x14732123c443f8E815D5c64f3C7ecb63bCeEab74, "Constants.undefined_FRAXSWAP_V2_FRAX_WBNB"); + vm.label(0x8811Da0385cCf1848B21475A42eA4D07Fc5d964a, "Constants.undefined_COMPTROLLER"); + vm.label(0x49f9cbf5333d8e50c9BE76c775777DB2ACb1d456, "Constants.undefined_FPI_COMPTROLLER"); + vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.undefined_GFRAX"); + vm.label(0x489c8fF79245f14AEEE9520d28209844790cB979, "Constants.undefined_APESWAP_CANFRAX_CANFXS"); + vm.label(0x16BDb03E6074759943149eBB1526DDfD1AA5fc56, "Constants.undefined_APESWAP_CANFRAX_WBNB"); + vm.label(0x885BE9bCbCdcB70c59F56A78ae64A820e0448589, "Constants.undefined_APESWAP_CANFRAX_USDC"); + vm.label(0x84f2781E4E60f97D2963260A7b20D883F04F0d20, "Constants.undefined_APESWAP_CANFXS_USDC"); + vm.label(0xBD0091CC77Fd3bDb620985a1dD8D3f94E071CCE3, "Constants.undefined_SADDLE_FRAX_BUSD"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.undefined_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.undefined_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.undefined_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.undefined_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.undefined_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.undefined_WFRAXOFT"); + vm.label(0x452420df4AC1e3db5429b5FD629f3047482C543C, "Constants.undefined_REMOTEHOP"); + vm.label(0xdee45510b42Cb0678C8A61D043C698aF66b0d852, "Constants.undefined_REMOTEMINTREDEEMHOP"); } } - library Fantom { address internal constant FRAX = 0xdc301622e621166BD8E82f2cA0A26c13Ad0BE355; address internal constant FXS = 0x7d016eec9c25232b01F23EF992D98ca97fc2AF5a; @@ -569,13 +691,10 @@ library Fantom { address internal constant SPIRITSWAP_FRAX_FXS = 0x21cE9F4bCe3Ec48f34cE9073a5102bEEd965f381; address internal constant SPIRITSWAP_FRAX_USDC = 0x1478AEC7896e40aE5fB858C77D389F0B3e6CbC5d; address internal constant VEDAO_FRAX = 0xE04C26444d37fE103B9cc8033c99b09D47056f51; - address internal constant FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__FTM_SIDE = - 0x088Be716eCA24b143fCC9ed06C6ae9977A469CCE; + address internal constant FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__FTM_SIDE = 0x088Be716eCA24b143fCC9ed06C6ae9977A469CCE; address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__FXS__FTM_SIDE = 0x9b75031D46CdEe779B36F7F2f1857fd987C6C98c; - address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__FTM_SIDE = - 0x12b6a8178C67B2835E280E1Ed709F64446cddb08; - address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__FTM_SIDE = - 0x71e1FEeAA17b6557c5FaD60101ca12F81d03838C; + address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__FTM_SIDE = 0x12b6a8178C67B2835E280E1Ed709F64446cddb08; + address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__FTM_SIDE = 0x71e1FEeAA17b6557c5FaD60101ca12F81d03838C; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -628,22 +747,10 @@ abstract contract AddressHelperFantom is TestBase { vm.label(0x21cE9F4bCe3Ec48f34cE9073a5102bEEd965f381, "Constants.FTM_SPIRITSWAP_FRAX_FXS"); vm.label(0x1478AEC7896e40aE5fB858C77D389F0B3e6CbC5d, "Constants.FTM_SPIRITSWAP_FRAX_USDC"); vm.label(0xE04C26444d37fE103B9cc8033c99b09D47056f51, "Constants.FTM_VEDAO_FRAX"); - vm.label( - 0x088Be716eCA24b143fCC9ed06C6ae9977A469CCE, - "Constants.FTM_FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__FTM_SIDE" - ); - vm.label( - 0x9b75031D46CdEe779B36F7F2f1857fd987C6C98c, - "Constants.FTM_FRAXFERRY_V2__ETHEREUM_FANTOM__FXS__FTM_SIDE" - ); - vm.label( - 0x12b6a8178C67B2835E280E1Ed709F64446cddb08, - "Constants.FTM_FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__FTM_SIDE" - ); - vm.label( - 0x71e1FEeAA17b6557c5FaD60101ca12F81d03838C, - "Constants.FTM_FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__FTM_SIDE" - ); + vm.label(0x088Be716eCA24b143fCC9ed06C6ae9977A469CCE, "Constants.FTM_FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__FTM_SIDE"); + vm.label(0x9b75031D46CdEe779B36F7F2f1857fd987C6C98c, "Constants.FTM_FRAXFERRY_V2__ETHEREUM_FANTOM__FXS__FTM_SIDE"); + vm.label(0x12b6a8178C67B2835E280E1Ed709F64446cddb08, "Constants.FTM_FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__FTM_SIDE"); + vm.label(0x71e1FEeAA17b6557c5FaD60101ca12F81d03838C, "Constants.FTM_FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__FTM_SIDE"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.FTM_CAPTAIN"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.FTM_FIRST_OFFICER"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.FTM_CREWMEMBER"); @@ -679,7 +786,6 @@ abstract contract AddressHelperFantom is TestBase { vm.label(0xB269A9969A437e778A8BFdB48A720aD366742554, "Constants.FTM_SPIRITSWAP_CANFXS_ANYUSDC"); } } - library FraxtalL1Devnet { address internal constant FRAX = 0x114a0318Da080A2Ee3380269d796E93DF767D24F; address internal constant FXS = 0xD86518aDB08DF9AcF9E84EB216d7862bc0F634C0; @@ -700,19 +806,18 @@ abstract contract AddressHelperFraxtalL1Devnet is TestBase { } function labelConstants() public { - vm.label(0x114a0318Da080A2Ee3380269d796E93DF767D24F, "Constants.FXTLL1DN_FRAX"); - vm.label(0xD86518aDB08DF9AcF9E84EB216d7862bc0F634C0, "Constants.FXTLL1DN_FXS"); - vm.label(0xfC75d8fD01fD999D2A4731a01d87131b40A8a645, "Constants.FXTLL1DN_FPI"); - vm.label(0x9445aD9a63def63CA9D23cfd7cd72538BbF1780A, "Constants.FXTLL1DN_FPIS"); - vm.label(0x2a2acd879050aC8910d80dccb428a0AEf77fFA36, "Constants.FXTLL1DN_FRXBTC"); - vm.label(0x51Ed07ceB785d2983e56CF00CAf65499dae5df3B, "Constants.FXTLL1DN_FRXETH"); - vm.label(0x2787eC65f085acbbE94F1bB7E099dF06B56b6DaC, "Constants.FXTLL1DN_SFRXETH"); - vm.label(0xB26fDD0FF10A287a73EFaa0b18A0e57fd8168835, "Constants.FXTLL1DN_SFRAX"); - vm.label(0x890205b3397a1F273BaD55476F2856886964E788, "Constants.FXTLL1DN_FRXETH_MINTER"); - vm.label(0x8b1E899ec5d51387a41Ee68261149F7d3Dfd7160, "Constants.FXTLL1DN_COMPTROLLER"); + vm.label(0x114a0318Da080A2Ee3380269d796E93DF767D24F, "Constants.FXTL_L1_DN_FRAX"); + vm.label(0xD86518aDB08DF9AcF9E84EB216d7862bc0F634C0, "Constants.FXTL_L1_DN_FXS"); + vm.label(0xfC75d8fD01fD999D2A4731a01d87131b40A8a645, "Constants.FXTL_L1_DN_FPI"); + vm.label(0x9445aD9a63def63CA9D23cfd7cd72538BbF1780A, "Constants.FXTL_L1_DN_FPIS"); + vm.label(0x2a2acd879050aC8910d80dccb428a0AEf77fFA36, "Constants.FXTL_L1_DN_FRXBTC"); + vm.label(0x51Ed07ceB785d2983e56CF00CAf65499dae5df3B, "Constants.FXTL_L1_DN_FRXETH"); + vm.label(0x2787eC65f085acbbE94F1bB7E099dF06B56b6DaC, "Constants.FXTL_L1_DN_SFRXETH"); + vm.label(0xB26fDD0FF10A287a73EFaa0b18A0e57fd8168835, "Constants.FXTL_L1_DN_SFRAX"); + vm.label(0x890205b3397a1F273BaD55476F2856886964E788, "Constants.FXTL_L1_DN_FRXETH_MINTER"); + vm.label(0x8b1E899ec5d51387a41Ee68261149F7d3Dfd7160, "Constants.FXTL_L1_DN_COMPTROLLER"); } } - library FraxtalL2Devnet { address internal constant FRAX = 0xFc00000000000000000000000000000000000001; address internal constant FXS = 0xFc00000000000000000000000000000000000002; @@ -737,35 +842,34 @@ abstract contract AddressHelperFraxtalL2Devnet is TestBase { } function labelConstants() public { - vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTLL2DN_FRAX"); - vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTLL2DN_FXS"); - vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTLL2DN_FPI"); - vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTLL2DN_FPIS"); - vm.label(0xfC00000000000000000000000000000000000007, "Constants.FXTLL2DN_FRXBTC"); - vm.label(0xFC00000000000000000000000000000000000006, "Constants.FXTLL2DN_WFRXETH"); - vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTLL2DN_SFRXETH"); - vm.label(0xfc00000000000000000000000000000000000008, "Constants.FXTLL2DN_SFRAX"); - vm.label(0xfC00000000000000000000000000000000000009, "Constants.FXTLL2DN_PROXY_ADMIN"); - vm.label(0x8b1E899ec5d51387a41Ee68261149F7d3Dfd7160, "Constants.FXTLL2DN_COMPTROLLER"); - vm.label(0x4200000000000000000000000000000000000007, "Constants.FXTLL2DN_CROSS_DOMAIN_MESSENGER"); - vm.label(0x4200000000000000000000000000000000000012, "Constants.FXTLL2DN_ERC20_FACTORY_PROXY"); - vm.label(0x4200000000000000000000000000000000000010, "Constants.FXTLL2DN_L2_STANDARD_BRIDGE_PROXY"); - vm.label(0x4200000000000000000000000000000000000016, "Constants.FXTLL2DN_L2_TO_L1_MESSAGE_PASSER"); + vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_L2_DN_FRAX"); + vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_L2_DN_FXS"); + vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTL_L2_DN_FPI"); + vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTL_L2_DN_FPIS"); + vm.label(0xfC00000000000000000000000000000000000007, "Constants.FXTL_L2_DN_FRXBTC"); + vm.label(0xFC00000000000000000000000000000000000006, "Constants.FXTL_L2_DN_WFRXETH"); + vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTL_L2_DN_SFRXETH"); + vm.label(0xfc00000000000000000000000000000000000008, "Constants.FXTL_L2_DN_SFRAX"); + vm.label(0xfC00000000000000000000000000000000000009, "Constants.FXTL_L2_DN_PROXY_ADMIN"); + vm.label(0x8b1E899ec5d51387a41Ee68261149F7d3Dfd7160, "Constants.FXTL_L2_DN_COMPTROLLER"); + vm.label(0x4200000000000000000000000000000000000007, "Constants.FXTL_L2_DN_CROSS_DOMAIN_MESSENGER"); + vm.label(0x4200000000000000000000000000000000000012, "Constants.FXTL_L2_DN_ERC20_FACTORY_PROXY"); + vm.label(0x4200000000000000000000000000000000000010, "Constants.FXTL_L2_DN_L2_STANDARD_BRIDGE_PROXY"); + vm.label(0x4200000000000000000000000000000000000016, "Constants.FXTL_L2_DN_L2_TO_L1_MESSAGE_PASSER"); } } - library FraxtalL2 { uint256 internal constant CHAIN_ID = 252; - address internal constant FRAX = 0xFc00000000000000000000000000000000000001; - address internal constant FXS = 0xFc00000000000000000000000000000000000002; + address internal constant FRXUSD = 0xFc00000000000000000000000000000000000001; + address internal constant WFRAX = 0xFc00000000000000000000000000000000000002; address internal constant FPI = 0xFc00000000000000000000000000000000000003; address internal constant FPIS = 0xfc00000000000000000000000000000000000004; address internal constant SFRXETH = 0xFC00000000000000000000000000000000000005; address internal constant WFRXETH = 0xFC00000000000000000000000000000000000006; address internal constant FRXBTC = 0xfC00000000000000000000000000000000000007; address internal constant SFRAX = 0xfc00000000000000000000000000000000000008; - address internal constant FRAX_PROXY = 0xFc00000000000000000000000000000000000001; - address internal constant FXS_PROXY = 0xFc00000000000000000000000000000000000002; + address internal constant FRXUSD_PROXY = 0xFc00000000000000000000000000000000000001; + address internal constant WFRAX_PROXY = 0xFc00000000000000000000000000000000000002; address internal constant FPI_PROXY = 0xFc00000000000000000000000000000000000003; address internal constant FPIS_PROXY = 0xfc00000000000000000000000000000000000004; address internal constant SFRXETH_PROXY = 0xFC00000000000000000000000000000000000005; @@ -783,18 +887,15 @@ library FraxtalL2 { address internal constant FXB_20261231 = 0x8e9C334afc76106F08E0383907F4Fca9bB10BA3e; address internal constant FXB_20241231 = 0xa71bB8c79dc8FfA90A6Dd711aA9Fbe5114c19cba; address internal constant FXB_20240630 = 0x758094A71a39De49626FE25B86631ED944558653; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__FXTL_SIDE = - 0x00160baF84b3D2014837cc12e838ea399f8b8478; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__FXTL_SIDE = - 0x24e927daC110Aab7189a4F864d41680e4F7865FB; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__FXTL_SIDE = - 0xEcf63fd1A839fF54949eB786693237bEEC59C6e7; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__FXTL_SIDE = - 0xcD3A040f05769d7628582B403063e61B7D212F91; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__FXTL_SIDE = - 0x67c6A8A715fc726ffD0A40588701813d9eC04d9C; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__FXTL_SIDE = - 0x08Be8BaAb62fB0A363f38C82Ee2320A36b72f2DB; + address internal constant FXB_20551231 = 0xc38173d34afaea88bc482813b3cd267bc8a1ea83; + address internal constant FXB_20291231 = 0xf1e2b576af4c6a7ee966b14c810b772391e92153; + address internal constant FXB_20251231 = 0xaca9a33698cf96413a40a4eb9e87906ff40fc6ca; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__FXTL_SIDE = 0x00160baF84b3D2014837cc12e838ea399f8b8478; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__FXTL_SIDE = 0x24e927daC110Aab7189a4F864d41680e4F7865FB; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__FXTL_SIDE = 0xEcf63fd1A839fF54949eB786693237bEEC59C6e7; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__FXTL_SIDE = 0xcD3A040f05769d7628582B403063e61B7D212F91; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__FXTL_SIDE = 0x67c6A8A715fc726ffD0A40588701813d9eC04d9C; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__FXTL_SIDE = 0x08Be8BaAb62fB0A363f38C82Ee2320A36b72f2DB; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -811,6 +912,9 @@ library FraxtalL2 { address internal constant FXB_20240630_ORACLE = 0x1A60b40601Bb5AA192389b05F80A7BeAde6d77d7; address internal constant FXB_20241231_ORACLE = 0x01480a0C134CeCC309015a564C7e292ba6E0F358; address internal constant FXB_20261231_ORACLE = 0x92e606Fd8b99F99928f690a5bEb20f6f6e3ec0f3; + address internal constant FXB_20551231_ORACLE = 0x8a081F35aE1cB4314c73CdDE63CC022Ca6AdEAa6; + address internal constant FXB_20291231_ORACLE = 0x859e3b11d9f8ff5d4c4beA569F76cdD25D5Ffc4b; + address internal constant FXB_20251231_ORACLE = 0x9c51c8ba9Ce85984C2389e13Fa1b77Cd587A2A18; address internal constant FXB_VARIABLE_RATE_2 = 0x3FdA3e9E78EAcd7381F1ED2CF145B93537878c1f; address internal constant FXS_DUAL_ORACLE_REDSTONE = 0xB99c9d329Bd69dDf8AF57110e011F5D81801c6d2; address internal constant SFRAX_SFRXETH_INVERSE_ORACLE_REDSTONE = 0x1010E24A2F0e6954c6456Bf925764eCc8577Fa2c; @@ -818,9 +922,11 @@ library FraxtalL2 { address internal constant TIMELOCK_ADDRESS = 0xc16068d1ca7E24E20e56bB70af4D00D92AA4f0b2; address internal constant VARIABLE_RATE_2_ADDRESS = 0xFA7207F02ba29Cd122A9d49ce96F6cA7707A1652; address internal constant VARIABLE_RATE_2_ADDRESS_50 = 0x3Fdb6BC356dAD0D7260E9619efa125409a08C3B2; - address internal constant FRAXLEND_PAIR_FXB12312026_FRAX = 0x032578d99b1070682a5E171012BE1756a50a17d4; - address internal constant FRAXLEND_PAIR_FXB12312024_FRAX = 0x6154334A7D0E7f5f0479599D15F462B200C721E1; - address internal constant FRAXLEND_PAIR_FXB06302024 = 0x57b709e214B239821A78dFCF09c89f52bA3D80aD; + address internal constant FRAXLEND_PAIR_FXB_20261231_FRAX = 0x032578d99b1070682a5E171012BE1756a50a17d4; + address internal constant FRAXLEND_PAIR_FXB_20241231_FRAX = 0x6154334A7D0E7f5f0479599D15F462B200C721E1; + address internal constant FRAXLEND_PAIR_FXB_20240630_FRAX = 0x57b709e214B239821A78dFCF09c89f52bA3D80aD; + address internal constant FRAXLEND_PAIR_FXB_20291231_FRAX = 0x3e92765eE2B009b104A8A7baf3759B159c19AbA1; + address internal constant FRAXLEND_PAIR_FXB_20251231_FRAX = 0x1b48c9595385F1780d7Be1aB57f8eAcFeA3A5cE5; address internal constant FRAXLEND_PAIR_SFRXETH_FRAX = 0x4F968317721B9c300afBff3FD37365637318271D; address internal constant FRAXLEND_PAIR_FXS_FRAX = 0x8EdA613EC96992D3C42BCd9aC2Ae58a92929Ceb2; address internal constant FRAXLEND_PAIR_SFRAX_SFRXETH = 0xB71E4829e81f72f7F36A0d858e58109f5948A713; @@ -881,12 +987,11 @@ library FraxtalL2 { address internal constant L1VEFXS_PROXY = 0xCDD512227340C20B70aDC37C5Bd1E46F69Bb675F; address internal constant L1VEFXS_TOTAL_SUPPLY_ORACLE = 0xaBBeFFb0d24EAcFFD3Be194471F0FD8aaaa3e5f8; address internal constant FXB_AMO = 0x55271b0d4DaC2664Fa9d44F8cccd89A3e6342313; - address internal constant OPTIMISM_MINTABLE_PERMIT_ERC20_FACTORY_IMPL_V1 = - 0x111ddab65Af5fF96b674400246699ED40F550De1; + address internal constant OPTIMISM_MINTABLE_PERMIT_ERC20_FACTORY_IMPL_V1 = 0x111ddab65Af5fF96b674400246699ED40F550De1; address internal constant VEFXS_YIELD_DISTRIBUTOR_IMPL_V1 = 0x691d1AaFB550c35B24e09bb991AEC9612342eD93; address internal constant VEFXS_YIELD_DISTRIBUTOR_PROXY_V1 = 0x39333a540bbea6262e405E1A6d435Bd2e776561E; - address internal constant YIELD_DISTRIBUTOR_PROXY = 0x2673fD26dD56D22e85A7Cb6A8fDe1dEaB151f93b; - address internal constant YIELD_DISTRIBUTOR_IMPL = 0x5CA7cc32be0E03fde68057d04c1a7eE8ff379AF3; + address internal constant YIELD_DISTRIBUTOR_PROXY = 0x21359d1697e610e25C8229B2C57907378eD09A2E; + address internal constant YIELD_DISTRIBUTOR_IMPL = 0x08de0C3BCBa9529fe59FA4e4593805Bd55A54B0B; address internal constant VESTEDFXS_UTILS = 0xC540f05BF5a09336078634D65E46242DFBa55030; address internal constant VESTEDFXS_IMPL_V1 = 0x54bd5c72645fed784C117cA83533e0584b24Ee5c; address internal constant VESTEDFXS_PROXY = 0x007FD070a7E1B0fA1364044a373Ac1339bAD89CF; @@ -904,6 +1009,14 @@ library FraxtalL2 { address internal constant ERC20_FACTORY_PROXY = 0x4200000000000000000000000000000000000012; address internal constant L2_STANDARD_BRIDGE_PROXY = 0x4200000000000000000000000000000000000010; address internal constant L2_TO_L1_MESSAGE_PASSER = 0x4200000000000000000000000000000000000016; + address internal constant FPIOFT = 0x75c38D46001b0F8108c4136216bd2694982C20FC; + address internal constant FRXETHOFT = 0x9aBFE1F8a999B0011ecD6116649AEe8D575F5604; + address internal constant FRXUSDOFT = 0x96A394058E2b84A89bac9667B19661Ed003cF5D4; + address internal constant SFRXETHOFT = 0x999dfAbe3b1cc2EF66eB032Eea42FeA329bBa168; + address internal constant SFRXUSDOFT = 0x88Aa7854D3b2dAA5e37E7Ce73A1F39669623a361; + address internal constant WFRAXOFT = 0xd86fBBd0c8715d2C1f40e451e5C3514e65E7576A; + address internal constant FRAXTALHOP = 0x2A2019b30C157dB6c1C01306b8025167dBe1803B; + address internal constant FRAXTALMINTREDEEMHOP = 0x3e6a2cBaFD864e09e6DAb9Cf035a0AbEa32bc0BC; } abstract contract AddressHelperFraxtalL2 is TestBase { @@ -912,16 +1025,16 @@ abstract contract AddressHelperFraxtalL2 is TestBase { } function labelConstants() public { - vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRAX"); - vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_FXS"); + vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRXUSD"); + vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_WFRAX"); vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTL_FPI"); vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTL_FPIS"); vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTL_SFRXETH"); vm.label(0xFC00000000000000000000000000000000000006, "Constants.FXTL_WFRXETH"); vm.label(0xfC00000000000000000000000000000000000007, "Constants.FXTL_FRXBTC"); vm.label(0xfc00000000000000000000000000000000000008, "Constants.FXTL_SFRAX"); - vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRAX_PROXY"); - vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_FXS_PROXY"); + vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRXUSD_PROXY"); + vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_WFRAX_PROXY"); vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTL_FPI_PROXY"); vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTL_FPIS_PROXY"); vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTL_SFRXETH_PROXY"); @@ -939,30 +1052,15 @@ abstract contract AddressHelperFraxtalL2 is TestBase { vm.label(0x8e9C334afc76106F08E0383907F4Fca9bB10BA3e, "Constants.FXTL_FXB_20261231"); vm.label(0xa71bB8c79dc8FfA90A6Dd711aA9Fbe5114c19cba, "Constants.FXTL_FXB_20241231"); vm.label(0x758094A71a39De49626FE25B86631ED944558653, "Constants.FXTL_FXB_20240630"); - vm.label( - 0x00160baF84b3D2014837cc12e838ea399f8b8478, - "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__FXTL_SIDE" - ); - vm.label( - 0x24e927daC110Aab7189a4F864d41680e4F7865FB, - "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__FXTL_SIDE" - ); - vm.label( - 0xEcf63fd1A839fF54949eB786693237bEEC59C6e7, - "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__FXTL_SIDE" - ); - vm.label( - 0xcD3A040f05769d7628582B403063e61B7D212F91, - "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__FXTL_SIDE" - ); - vm.label( - 0x67c6A8A715fc726ffD0A40588701813d9eC04d9C, - "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__FXTL_SIDE" - ); - vm.label( - 0x08Be8BaAb62fB0A363f38C82Ee2320A36b72f2DB, - "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__FXTL_SIDE" - ); + vm.label(0xc38173d34afaea88bc482813b3cd267bc8a1ea83, "Constants.FXTL_FXB_20551231"); + vm.label(0xf1e2b576af4c6a7ee966b14c810b772391e92153, "Constants.FXTL_FXB_20291231"); + vm.label(0xaca9a33698cf96413a40a4eb9e87906ff40fc6ca, "Constants.FXTL_FXB_20251231"); + vm.label(0x00160baF84b3D2014837cc12e838ea399f8b8478, "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__FXTL_SIDE"); + vm.label(0x24e927daC110Aab7189a4F864d41680e4F7865FB, "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__FXTL_SIDE"); + vm.label(0xEcf63fd1A839fF54949eB786693237bEEC59C6e7, "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__FXTL_SIDE"); + vm.label(0xcD3A040f05769d7628582B403063e61B7D212F91, "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__FXTL_SIDE"); + vm.label(0x67c6A8A715fc726ffD0A40588701813d9eC04d9C, "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__FXTL_SIDE"); + vm.label(0x08Be8BaAb62fB0A363f38C82Ee2320A36b72f2DB, "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__FXTL_SIDE"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.FXTL_CAPTAIN"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.FXTL_FIRST_OFFICER"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.FXTL_CREWMEMBER"); @@ -979,6 +1077,9 @@ abstract contract AddressHelperFraxtalL2 is TestBase { vm.label(0x1A60b40601Bb5AA192389b05F80A7BeAde6d77d7, "Constants.FXTL_FXB_20240630_ORACLE"); vm.label(0x01480a0C134CeCC309015a564C7e292ba6E0F358, "Constants.FXTL_FXB_20241231_ORACLE"); vm.label(0x92e606Fd8b99F99928f690a5bEb20f6f6e3ec0f3, "Constants.FXTL_FXB_20261231_ORACLE"); + vm.label(0x8a081F35aE1cB4314c73CdDE63CC022Ca6AdEAa6, "Constants.FXTL_FXB_20551231_ORACLE"); + vm.label(0x859e3b11d9f8ff5d4c4beA569F76cdD25D5Ffc4b, "Constants.FXTL_FXB_20291231_ORACLE"); + vm.label(0x9c51c8ba9Ce85984C2389e13Fa1b77Cd587A2A18, "Constants.FXTL_FXB_20251231_ORACLE"); vm.label(0x3FdA3e9E78EAcd7381F1ED2CF145B93537878c1f, "Constants.FXTL_FXB_VARIABLE_RATE_2"); vm.label(0xB99c9d329Bd69dDf8AF57110e011F5D81801c6d2, "Constants.FXTL_FXS_DUAL_ORACLE_REDSTONE"); vm.label(0x1010E24A2F0e6954c6456Bf925764eCc8577Fa2c, "Constants.FXTL_SFRAX_SFRXETH_INVERSE_ORACLE_REDSTONE"); @@ -986,9 +1087,11 @@ abstract contract AddressHelperFraxtalL2 is TestBase { vm.label(0xc16068d1ca7E24E20e56bB70af4D00D92AA4f0b2, "Constants.FXTL_TIMELOCK_ADDRESS"); vm.label(0xFA7207F02ba29Cd122A9d49ce96F6cA7707A1652, "Constants.FXTL_VARIABLE_RATE_2_ADDRESS"); vm.label(0x3Fdb6BC356dAD0D7260E9619efa125409a08C3B2, "Constants.FXTL_VARIABLE_RATE_2_ADDRESS_50"); - vm.label(0x032578d99b1070682a5E171012BE1756a50a17d4, "Constants.FXTL_FRAXLEND_PAIR_FXB12312026_FRAX"); - vm.label(0x6154334A7D0E7f5f0479599D15F462B200C721E1, "Constants.FXTL_FRAXLEND_PAIR_FXB12312024_FRAX"); - vm.label(0x57b709e214B239821A78dFCF09c89f52bA3D80aD, "Constants.FXTL_FRAXLEND_PAIR_FXB06302024"); + vm.label(0x032578d99b1070682a5E171012BE1756a50a17d4, "Constants.FXTL_FRAXLEND_PAIR_FXB_20261231_FRAX"); + vm.label(0x6154334A7D0E7f5f0479599D15F462B200C721E1, "Constants.FXTL_FRAXLEND_PAIR_FXB_20241231_FRAX"); + vm.label(0x57b709e214B239821A78dFCF09c89f52bA3D80aD, "Constants.FXTL_FRAXLEND_PAIR_FXB_20240630_FRAX"); + vm.label(0x3e92765eE2B009b104A8A7baf3759B159c19AbA1, "Constants.FXTL_FRAXLEND_PAIR_FXB_20291231_FRAX"); + vm.label(0x1b48c9595385F1780d7Be1aB57f8eAcFeA3A5cE5, "Constants.FXTL_FRAXLEND_PAIR_FXB_20251231_FRAX"); vm.label(0x4F968317721B9c300afBff3FD37365637318271D, "Constants.FXTL_FRAXLEND_PAIR_SFRXETH_FRAX"); vm.label(0x8EdA613EC96992D3C42BCd9aC2Ae58a92929Ceb2, "Constants.FXTL_FRAXLEND_PAIR_FXS_FRAX"); vm.label(0xB71E4829e81f72f7F36A0d858e58109f5948A713, "Constants.FXTL_FRAXLEND_PAIR_SFRAX_SFRXETH"); @@ -1049,14 +1152,11 @@ abstract contract AddressHelperFraxtalL2 is TestBase { vm.label(0xCDD512227340C20B70aDC37C5Bd1E46F69Bb675F, "Constants.FXTL_L1VEFXS_PROXY"); vm.label(0xaBBeFFb0d24EAcFFD3Be194471F0FD8aaaa3e5f8, "Constants.FXTL_L1VEFXS_TOTAL_SUPPLY_ORACLE"); vm.label(0x55271b0d4DaC2664Fa9d44F8cccd89A3e6342313, "Constants.FXTL_FXB_AMO"); - vm.label( - 0x111ddab65Af5fF96b674400246699ED40F550De1, - "Constants.FXTL_OPTIMISM_MINTABLE_PERMIT_ERC20_FACTORY_IMPL_V1" - ); + vm.label(0x111ddab65Af5fF96b674400246699ED40F550De1, "Constants.FXTL_OPTIMISM_MINTABLE_PERMIT_ERC20_FACTORY_IMPL_V1"); vm.label(0x691d1AaFB550c35B24e09bb991AEC9612342eD93, "Constants.FXTL_VEFXS_YIELD_DISTRIBUTOR_IMPL_V1"); vm.label(0x39333a540bbea6262e405E1A6d435Bd2e776561E, "Constants.FXTL_VEFXS_YIELD_DISTRIBUTOR_PROXY_V1"); - vm.label(0x2673fD26dD56D22e85A7Cb6A8fDe1dEaB151f93b, "Constants.FXTL_YIELD_DISTRIBUTOR_PROXY"); - vm.label(0x5CA7cc32be0E03fde68057d04c1a7eE8ff379AF3, "Constants.FXTL_YIELD_DISTRIBUTOR_IMPL"); + vm.label(0x21359d1697e610e25C8229B2C57907378eD09A2E, "Constants.FXTL_YIELD_DISTRIBUTOR_PROXY"); + vm.label(0x08de0C3BCBa9529fe59FA4e4593805Bd55A54B0B, "Constants.FXTL_YIELD_DISTRIBUTOR_IMPL"); vm.label(0xC540f05BF5a09336078634D65E46242DFBa55030, "Constants.FXTL_VESTEDFXS_UTILS"); vm.label(0x54bd5c72645fed784C117cA83533e0584b24Ee5c, "Constants.FXTL_VESTEDFXS_IMPL_V1"); vm.label(0x007FD070a7E1B0fA1364044a373Ac1339bAD89CF, "Constants.FXTL_VESTEDFXS_PROXY"); @@ -1074,11 +1174,18 @@ abstract contract AddressHelperFraxtalL2 is TestBase { vm.label(0x4200000000000000000000000000000000000012, "Constants.FXTL_ERC20_FACTORY_PROXY"); vm.label(0x4200000000000000000000000000000000000010, "Constants.FXTL_L2_STANDARD_BRIDGE_PROXY"); vm.label(0x4200000000000000000000000000000000000016, "Constants.FXTL_L2_TO_L1_MESSAGE_PASSER"); + vm.label(0x75c38D46001b0F8108c4136216bd2694982C20FC, "Constants.FXTL_FPIOFT"); + vm.label(0x9aBFE1F8a999B0011ecD6116649AEe8D575F5604, "Constants.FXTL_FRXETHOFT"); + vm.label(0x96A394058E2b84A89bac9667B19661Ed003cF5D4, "Constants.FXTL_FRXUSDOFT"); + vm.label(0x999dfAbe3b1cc2EF66eB032Eea42FeA329bBa168, "Constants.FXTL_SFRXETHOFT"); + vm.label(0x88Aa7854D3b2dAA5e37E7Ce73A1F39669623a361, "Constants.FXTL_SFRXUSDOFT"); + vm.label(0xd86fBBd0c8715d2C1f40e451e5C3514e65E7576A, "Constants.FXTL_WFRAXOFT"); + vm.label(0x2A2019b30C157dB6c1C01306b8025167dBe1803B, "Constants.FXTL_FRAXTALHOP"); + vm.label(0x3e6a2cBaFD864e09e6DAb9Cf035a0AbEa32bc0BC, "Constants.FXTL_FRAXTALMINTREDEEMHOP"); } } - library FraxtalTestnetL1 { - uint256 internal constant CHAIN_ID = 17_000; + uint256 internal constant CHAIN_ID = 17000; address internal constant PROXY_ADMIN = 0xA0c6294D524f56fF9BdAeE94b69064c529cB9a1e; address internal constant COMPTROLLER = 0x88699c59E413e8A47117820D15d8D33b09B21edD; address internal constant ADDRESS_MANAGER = 0x6C52d1f7aAdD1F27aaa6A9e228CE0312E3CB09A6; @@ -1097,22 +1204,18 @@ abstract contract AddressHelperFraxtalTestnetL1 is TestBase { } function labelConstants() public { - vm.label(0xA0c6294D524f56fF9BdAeE94b69064c529cB9a1e, "Constants.FXTLTNL1_PROXY_ADMIN"); - vm.label(0x88699c59E413e8A47117820D15d8D33b09B21edD, "Constants.FXTLTNL1_COMPTROLLER"); - vm.label(0x6C52d1f7aAdD1F27aaa6A9e228CE0312E3CB09A6, "Constants.FXTLTNL1_ADDRESS_MANAGER"); - vm.label(0x45A98115D5722C6cfC48D711e0053758E7C0b8ad, "Constants.FXTLTNL1_L1_CROSS_DOMAIN_MESSENGER_PROXY"); - vm.label(0x0301A6b26a37566d3DCebC7fC4c2143B426bBf53, "Constants.FXTLTNL1_L1_ERC721_BRIDGE_PROXY"); - vm.label(0x0BaafC217162f64930909aD9f2B27125121d6332, "Constants.FXTLTNL1_L1_STANDARD_BRIDGE_PROXY"); - vm.label(0x715EA64DA13F4d0831ece4Ad3E8c1aa013167F32, "Constants.FXTLTNL1_L2_OUTPUT_ORACLE_PROXY"); - vm.label( - 0x740fAfe2383F736d0Bd1a042E50fE15dDa2726C6, - "Constants.FXTLTNL1_OPTIMISM_MINTABLE_ERC20_FACTORY_PROXY" - ); - vm.label(0xB9c64BfA498d5b9a8398Ed6f46eb76d90dE5505d, "Constants.FXTLTNL1_OPTIMISM_PORTAL_PROXY"); - vm.label(0x570Bf63A187776A19a44E6D1e055E3da65C1E3Db, "Constants.FXTLTNL1_SYSTEM_CONFIG_PROXY"); + vm.label(0xA0c6294D524f56fF9BdAeE94b69064c529cB9a1e, "Constants.FXTL_TN_L1_PROXY_ADMIN"); + vm.label(0x88699c59E413e8A47117820D15d8D33b09B21edD, "Constants.FXTL_TN_L1_COMPTROLLER"); + vm.label(0x6C52d1f7aAdD1F27aaa6A9e228CE0312E3CB09A6, "Constants.FXTL_TN_L1_ADDRESS_MANAGER"); + vm.label(0x45A98115D5722C6cfC48D711e0053758E7C0b8ad, "Constants.FXTL_TN_L1_L1_CROSS_DOMAIN_MESSENGER_PROXY"); + vm.label(0x0301A6b26a37566d3DCebC7fC4c2143B426bBf53, "Constants.FXTL_TN_L1_L1_ERC721_BRIDGE_PROXY"); + vm.label(0x0BaafC217162f64930909aD9f2B27125121d6332, "Constants.FXTL_TN_L1_L1_STANDARD_BRIDGE_PROXY"); + vm.label(0x715EA64DA13F4d0831ece4Ad3E8c1aa013167F32, "Constants.FXTL_TN_L1_L2_OUTPUT_ORACLE_PROXY"); + vm.label(0x740fAfe2383F736d0Bd1a042E50fE15dDa2726C6, "Constants.FXTL_TN_L1_OPTIMISM_MINTABLE_ERC20_FACTORY_PROXY"); + vm.label(0xB9c64BfA498d5b9a8398Ed6f46eb76d90dE5505d, "Constants.FXTL_TN_L1_OPTIMISM_PORTAL_PROXY"); + vm.label(0x570Bf63A187776A19a44E6D1e055E3da65C1E3Db, "Constants.FXTL_TN_L1_SYSTEM_CONFIG_PROXY"); } } - library FraxtalTestnetL2 { uint256 internal constant CHAIN_ID = 2522; address internal constant FRAX = 0xFc00000000000000000000000000000000000001; @@ -1138,26 +1241,25 @@ abstract contract AddressHelperFraxtalTestnetL2 is TestBase { } function labelConstants() public { - vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTLTNL2_FRAX"); - vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTLTNL2_FXS"); - vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTLTNL2_FPI"); - vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTLTNL2_FPIS"); - vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTLTNL2_SFRXETH"); - vm.label(0xFC00000000000000000000000000000000000006, "Constants.FXTLTNL2_WFRXETH"); - vm.label(0xbc679bdd1bA59654bD50DEB03fd80dC97c713fF2, "Constants.FXTLTNL2_FRAXSWAP_FACTORY"); - vm.label(0x938d99A81814f66b01010d19DDce92A633441699, "Constants.FXTLTNL2_FRAXSWAP_ROUTER"); - vm.label(0x509728dC748586214Fa30cEF61359f136523F24d, "Constants.FXTLTNL2_FRAXSWAP_ROUTER_MULTIHOP"); - vm.label(0x8b1E899ec5d51387a41Ee68261149F7d3Dfd7160, "Constants.FXTLTNL2_COMPTROLLER"); - vm.label(0xfC00000000000000000000000000000000000007, "Constants.FXTLTNL2_PROXY_ADMIN"); - vm.label(0x4200000000000000000000000000000000000007, "Constants.FXTLTNL2_CROSS_DOMAIN_MESSENGER"); - vm.label(0x4200000000000000000000000000000000000012, "Constants.FXTLTNL2_ERC20_FACTORY_PROXY"); - vm.label(0x4200000000000000000000000000000000000010, "Constants.FXTLTNL2_L2_STANDARD_BRIDGE_PROXY"); - vm.label(0x4200000000000000000000000000000000000016, "Constants.FXTLTNL2_L2_TO_L1_MESSAGE_PASSER"); + vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_TN_L2_FRAX"); + vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_TN_L2_FXS"); + vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTL_TN_L2_FPI"); + vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTL_TN_L2_FPIS"); + vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTL_TN_L2_SFRXETH"); + vm.label(0xFC00000000000000000000000000000000000006, "Constants.FXTL_TN_L2_WFRXETH"); + vm.label(0xbc679bdd1bA59654bD50DEB03fd80dC97c713fF2, "Constants.FXTL_TN_L2_FRAXSWAP_FACTORY"); + vm.label(0x938d99A81814f66b01010d19DDce92A633441699, "Constants.FXTL_TN_L2_FRAXSWAP_ROUTER"); + vm.label(0x509728dC748586214Fa30cEF61359f136523F24d, "Constants.FXTL_TN_L2_FRAXSWAP_ROUTER_MULTIHOP"); + vm.label(0x8b1E899ec5d51387a41Ee68261149F7d3Dfd7160, "Constants.FXTL_TN_L2_COMPTROLLER"); + vm.label(0xfC00000000000000000000000000000000000007, "Constants.FXTL_TN_L2_PROXY_ADMIN"); + vm.label(0x4200000000000000000000000000000000000007, "Constants.FXTL_TN_L2_CROSS_DOMAIN_MESSENGER"); + vm.label(0x4200000000000000000000000000000000000012, "Constants.FXTL_TN_L2_ERC20_FACTORY_PROXY"); + vm.label(0x4200000000000000000000000000000000000010, "Constants.FXTL_TN_L2_L2_STANDARD_BRIDGE_PROXY"); + vm.label(0x4200000000000000000000000000000000000016, "Constants.FXTL_TN_L2_L2_TO_L1_MESSAGE_PASSER"); } } - library Holesky { - uint256 internal constant CHAIN_ID = 17_000; + uint256 internal constant CHAIN_ID = 17000; address internal constant FRAX = 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E; address internal constant FXS = 0x4e7300F74F59AFaEcCdc0d434758Df9be238F0BF; address internal constant FPI = 0xfBCB0F967817c924f83e26e04F0FB28ED4d6276F; @@ -1218,8 +1320,116 @@ abstract contract AddressHelperHolesky is TestBase { vm.label(0x5E8422345238F34275888049021821E8E08CAa1f, "Constants.HOLESKY_FRXETH_MINTER"); } } +library Hyperliquid { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + string internal constant REMOTEHOP = ""; + string internal constant REMOTEMINTREDEEMHOP = ""; +} + +abstract contract AddressHelperHyperliquid is TestBase { + constructor() { + labelConstants(); + } + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.HYPE_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.HYPE_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.HYPE_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.HYPE_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.HYPE_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.HYPE_WFRAXOFT"); + vm.label(, "Constants.HYPE_REMOTEHOP"); + vm.label(, "Constants.HYPE_REMOTEMINTREDEEMHOP"); + } +} +library Ink { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A; + address internal constant REMOTEMINTREDEEMHOP = 0x452420df4AC1e3db5429b5FD629f3047482C543C; +} + +abstract contract AddressHelperInk is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.INK_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.INK_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.INK_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.INK_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.INK_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.INK_WFRAXOFT"); + vm.label(0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A, "Constants.INK_REMOTEHOP"); + vm.label(0x452420df4AC1e3db5429b5FD629f3047482C543C, "Constants.INK_REMOTEMINTREDEEMHOP"); + } +} +library Katana { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x5d8EB59A12Bc98708702305A7b032f4b69Dd5b5c; + address internal constant REMOTEMINTREDEEMHOP = 0xF6f45CCB5E85D1400067ee66F9e168f83e86124E; +} + +abstract contract AddressHelperKatana is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.KTN_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.KTN_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.KTN_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.KTN_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.KTN_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.KTN_WFRAXOFT"); + vm.label(0x5d8EB59A12Bc98708702305A7b032f4b69Dd5b5c, "Constants.KTN_REMOTEHOP"); + vm.label(0xF6f45CCB5E85D1400067ee66F9e168f83e86124E, "Constants.KTN_REMOTEMINTREDEEMHOP"); + } +} +library Linea { + address internal constant FPIOFT = 0xDaF72Aa849d3C4FAA8A9c8c99f240Cf33dA02fc4; + address internal constant FRXETHOFT = 0xB1aFD04774c02AE84692619448B08BA79F19b1ff; + address internal constant FRXUSDOFT = 0xC7346783f5e645aa998B106Ef9E7f499528673D8; + address internal constant SFRXETHOFT = 0x383Eac7CcaA89684b8277cBabC25BCa8b13B7Aa2; + address internal constant SFRXUSDOFT = 0x592a48c0FB9c7f8BF1701cB0136b90DEa2A5B7B6; + address internal constant WFRAXOFT = 0x5217Ab28ECE654Aab2C68efedb6A22739df6C3D5; + address internal constant REMOTEHOP = 0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876; + address internal constant REMOTEMINTREDEEMHOP = 0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb; +} + +abstract contract AddressHelperLinea is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0xDaF72Aa849d3C4FAA8A9c8c99f240Cf33dA02fc4, "Constants.LINEA_FPIOFT"); + vm.label(0xB1aFD04774c02AE84692619448B08BA79F19b1ff, "Constants.LINEA_FRXETHOFT"); + vm.label(0xC7346783f5e645aa998B106Ef9E7f499528673D8, "Constants.LINEA_FRXUSDOFT"); + vm.label(0x383Eac7CcaA89684b8277cBabC25BCa8b13B7Aa2, "Constants.LINEA_SFRXETHOFT"); + vm.label(0x592a48c0FB9c7f8BF1701cB0136b90DEa2A5B7B6, "Constants.LINEA_SFRXUSDOFT"); + vm.label(0x5217Ab28ECE654Aab2C68efedb6A22739df6C3D5, "Constants.LINEA_WFRAXOFT"); + vm.label(0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876, "Constants.LINEA_REMOTEHOP"); + vm.label(0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb, "Constants.LINEA_REMOTEMINTREDEEMHOP"); + } +} library Mainnet { + uint256 internal constant CHAIN_ID = 1; address internal constant FRAX = 0x853d955aCEf822Db058eb8505911ED77F175b99e; address internal constant FXS = 0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0; address internal constant FPI = 0x5Ca135cB8527d76e932f34B5145575F9d8cbE08E; @@ -1382,133 +1592,80 @@ library Mainnet { address internal constant CURVE_20240630_MAINNET_POOL = 0x4ef4c7519023F30A78647EEab321d6cFabC2513c; address internal constant FXB_20241231 = 0xF8FDe8A259A3698902C88bdB1E13Ff28Cd7f6F09; address internal constant AUCTION_20241231 = 0xc9aa98788a675FF0846E8856cb83F19452f3b0c8; - address internal constant ORACLE_20241231 = 0x08a0748cF885F46e20fA30A50a035808eab293D3; + address internal constant FXB_20241231_ORACLE = 0x08a0748cF885F46e20fA30A50a035808eab293D3; address internal constant CURVE_20241231_MAINNET_POOL = 0x6307E6688819951Cf8D6B6066018243D2496952F; address internal constant CURVE_20241231_ARBITRUM_POOL = 0xE920eEdAff6c3BEd1Ef61010B64d46986634E908; address internal constant CURVE_20241231_ARBITRUM_GAUGE = 0x05824D6D4DE8A0ede4e12b98387A4f035a67ee68; address internal constant FXB_20261231 = 0x76237BCfDbe8e06FB774663add96216961df4ff3; address internal constant AUCTION_20261231 = 0x63981f5E690eaF7E8795c42832664e8848F532fB; - address internal constant ORACLE_20261231 = 0x2ec5D1C13fEF1C7029eE329a1D31B2180c9b3707; + address internal constant FXB_20261231_ORACLE = 0x2ec5D1C13fEF1C7029eE329a1D31B2180c9b3707; address internal constant CURVE_20261231_MAINNET_POOL = 0xe035e27A8eD6842b478933820f90093D205F7098; address internal constant CURVE_20261231_ARBITRUM_POOL = 0x946adc524BD312D036776798c46ceDD948DD0A0f; address internal constant CURVE_20261231_ARBITRUM_GAUGE = 0xa2617A26f9f528fa7B0E47fc2e66FcC04C6682E9; - address internal constant FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ETH_SIDE = - 0x85c5f05Ae4CB68190C695a22b292C3bA90696128; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ETH_SIDE = - 0x4b8792aF00eaE944484bF572bc33029B2184a50C; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ETH_SIDE = - 0x5878d03AA50d2c00A921948Ea8Fa5F2d247f6BDB; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ETH_SIDE = - 0xCd4aa7DB9D8a995a651498E94f6693A4D26e6C9E; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ETH_SIDE = - 0x505603e2440b44C1602b44D0Eb8385399b3F7bab; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ETH_SIDE = - 0x8afd5082E0C24dEcEA39A9eFb14e4ACF4373D7D6; - address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ETH_SIDE = - 0x2453b1FbD17ceA069A31C9D16A27f4F93a85Cc0d; - address internal constant FRAXFERRY_V1__ETHEREUM_AURORA__FRAX__ETH_SIDE = - 0x6ac96F65156281a9383455D704b58A74ea9C9eC4; - address internal constant FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__ETH_SIDE = - 0xA381d58e96eC3818c825E1fb264099448945CF8b; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__ETH_SIDE = - 0x9Ab224996D25bfDCB91d838F7f1902698Ac0a742; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__ETH_SIDE = - 0xbb6b54F8969a4711527fdF6AB852B6D6cdF368d1; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__ETH_SIDE = - 0x18A5ca670dC42D0551f00E11A730074f6787f17F; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__ETH_SIDE = - 0x94ddd112C9ea0fb534e376BE09A50d310F0612b4; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__ETH_SIDE = - 0xF380200B115Caa22D49e6C115b758d6130377620; - address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__ETH_SIDE = - 0x59ae66FB395893E3FD965aDb06A52d06C49dF8A9; + address internal constant FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ETH_SIDE = 0x85c5f05Ae4CB68190C695a22b292C3bA90696128; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ETH_SIDE = 0x4b8792aF00eaE944484bF572bc33029B2184a50C; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ETH_SIDE = 0x5878d03AA50d2c00A921948Ea8Fa5F2d247f6BDB; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ETH_SIDE = 0xCd4aa7DB9D8a995a651498E94f6693A4D26e6C9E; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ETH_SIDE = 0x505603e2440b44C1602b44D0Eb8385399b3F7bab; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ETH_SIDE = 0x8afd5082E0C24dEcEA39A9eFb14e4ACF4373D7D6; + address internal constant FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ETH_SIDE = 0x2453b1FbD17ceA069A31C9D16A27f4F93a85Cc0d; + address internal constant FRAXFERRY_V1__ETHEREUM_AURORA__FRAX__ETH_SIDE = 0x6ac96F65156281a9383455D704b58A74ea9C9eC4; + address internal constant FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__ETH_SIDE = 0xA381d58e96eC3818c825E1fb264099448945CF8b; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__ETH_SIDE = 0x9Ab224996D25bfDCB91d838F7f1902698Ac0a742; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__ETH_SIDE = 0xbb6b54F8969a4711527fdF6AB852B6D6cdF368d1; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__ETH_SIDE = 0x18A5ca670dC42D0551f00E11A730074f6787f17F; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__ETH_SIDE = 0x94ddd112C9ea0fb534e376BE09A50d310F0612b4; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__ETH_SIDE = 0xF380200B115Caa22D49e6C115b758d6130377620; + address internal constant FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__ETH_SIDE = 0x59ae66FB395893E3FD965aDb06A52d06C49dF8A9; address internal constant FRAXFERRY_V1__ETHEREUM_BOBA__FRAX__ETH_SIDE = 0x3eF1d856EA62A2292B8690855042095a7aC48B4b; address internal constant FRAXFERRY_V1__ETHEREUM_BSC__FRAX__ETH_SIDE = 0xDAe210BfB0cF8c81EDB4b459e2e0bA14D553e2D9; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__FXS__ETH_SIDE = 0x9B62402Eb9A755677dEbdaE3639CB531c0Af0E5d; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__FPI__ETH_SIDE = 0xfbD33d2f3330f063C87b523Ba80D5F7f296E5393; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__FPIS__ETH_SIDE = 0xf18B122c3935Ff49f62C8f1f77Dc42A6F85A0bb5; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__ETH_SIDE = 0xce4DbAF3fa72C962Ee1F371694109fc2a80B03f5; - address internal constant FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__ETH_SIDE = - 0x621D0e62f26314387f338A2509aFA3Ae3414661A; + address internal constant FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__ETH_SIDE = 0x621D0e62f26314387f338A2509aFA3Ae3414661A; address internal constant FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__ETH_SIDE = 0xe3e7F354ac948ceBa925181C81618D7c9b3da8C9; address internal constant FRAXFERRY_V1__ETHEREUM_EVMOS__FRAX__ETH_SIDE = 0x2d2261f970F605C813f160E8BAEd455E9004A842; - address internal constant FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__ETH_SIDE = - 0xfB788F9E20ef426a32A67986654750172A6c1788; + address internal constant FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__ETH_SIDE = 0xfB788F9E20ef426a32A67986654750172A6c1788; address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__FXS__ETH_SIDE = 0x1313d143BE1ac25aCACEFF39Bf31877bccDb9622; - address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__ETH_SIDE = - 0xaF4305d05e9B08b1D17894ce1ACE8235528f7EdE; - address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__ETH_SIDE = - 0xB6b0290A39E2F896bBd8fC19cf17FE393e993dE4; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__ETH_SIDE = - 0x5e1D94021484642863Ea8E7Cb4F0188e56B18FEE; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__ETH_SIDE = - 0x4A6d155df9Ec9A1BB3639e6B7B99E46Fb68D42f6; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__ETH_SIDE = - 0x9A576A3d39c589A861B46864C253288bcA428a6c; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__ETH_SIDE = - 0x958815f476cD07354c0BC034EE5077B20fD93003; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__ETH_SIDE = - 0x5c5f05cF8528FFe925A2264743bFfEdbAB2b0FE3; - address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__ETH_SIDE = - 0x2b4864c2F2A2C275C6C66B90a2ae6BE9fA9cbE47; - address internal constant FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__ETH_SIDE = - 0xF1E1deA8F1053FD9C5F47f72F1f03977E17aF242; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__ETH_SIDE = - 0x2De1354c98880889643c4cA8B06FA2Fb8Fc1Fd7A; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__ETH_SIDE = - 0x228567c10b7533C88057c10dDeA6349360F122c5; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__ETH_SIDE = - 0xbc3A2bF4FA20bE2056DCE5BFB168970BA657F187; - address internal constant FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__ETH_SIDE = - 0x15ADa72A3B52A88E25DdD2CC2bA1120234e34bb0; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__ETH_SIDE = - 0xFe7ebA20c20C8FF12A337F940Ce7A97c6e2594DE; - address internal constant FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__ETH_SIDE = - 0x06Fa869caa1160754C6a0B744Da6454c5EA325d4; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__ETH_SIDE = - 0x6650D5183C4Cd294a81B1F724c365b0c42f8270a; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__ETH_SIDE = - 0xC05DE1CB258bAdc152d8EAd3F573CA9A2E812B2a; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__ETH_SIDE = - 0x8Bf7Af56bB721BC3d015111508593Fcb301546F0; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__ETH_SIDE = - 0x2F08F4645d2fA1fB12D2db8531c0c2EA0268BdE2; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__ETH_SIDE = - 0x04ba20D2Cc47C63bce1166C2864F0241e4D0a0CC; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__ETH_SIDE = - 0x9694dcF5b6CCF6216B05FE64945f62603e2d2367; - address internal constant FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__ETH_SIDE = - 0x43959A388603DCb6B02Ca084A55d4c7f3b442c57; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__ETH_SIDE = - 0xCa026e80F1E9e44da7ce3eD6aC2E9630260B9276; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__ETH_SIDE = - 0x98f5E4b7D9eDF57A6ED41b334bD40B2eAa6B6e26; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__ETH_SIDE = - 0x91Ff54EffF7564BA3884A91d0E293502D8E6fF90; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__ETH_SIDE = - 0x86E71075e55F0aaD27D700017E0783458310c98a; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__ETH_SIDE = - 0xBa32Df0b78b1A68F7FA304BbD4Ed7a56A74c525a; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__ETH_SIDE = - 0x45D2d8e4aB0F5af1D29305301A1b31D5d41b3349; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__ETH_SIDE = - 0xF887C4cFAAfB43d1AA7De204344895591016772c; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__ETH_SIDE = - 0x3aaB5C43D4e47f71DEea94a7d541E6C07e21B137; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__ETH_SIDE = - 0xb8686Ef9B7ee9e73dE5d1721E4Da580278F8F4d2; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__ETH_SIDE = - 0x602cCfee6B4BA8Eb5e35Cf26e05fDEDE379e578E; - address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRAX__ETH_SIDE = - 0x32dDf80508cfD8feD8ABe375582FC7cfD20372C4; + address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__ETH_SIDE = 0xaF4305d05e9B08b1D17894ce1ACE8235528f7EdE; + address internal constant FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__ETH_SIDE = 0xB6b0290A39E2F896bBd8fC19cf17FE393e993dE4; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__ETH_SIDE = 0x5e1D94021484642863Ea8E7Cb4F0188e56B18FEE; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__ETH_SIDE = 0x4A6d155df9Ec9A1BB3639e6B7B99E46Fb68D42f6; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__ETH_SIDE = 0x9A576A3d39c589A861B46864C253288bcA428a6c; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__ETH_SIDE = 0x958815f476cD07354c0BC034EE5077B20fD93003; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__ETH_SIDE = 0x5c5f05cF8528FFe925A2264743bFfEdbAB2b0FE3; + address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__ETH_SIDE = 0x2b4864c2F2A2C275C6C66B90a2ae6BE9fA9cbE47; + address internal constant FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__ETH_SIDE = 0xF1E1deA8F1053FD9C5F47f72F1f03977E17aF242; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__ETH_SIDE = 0x2De1354c98880889643c4cA8B06FA2Fb8Fc1Fd7A; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__ETH_SIDE = 0x228567c10b7533C88057c10dDeA6349360F122c5; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__ETH_SIDE = 0xbc3A2bF4FA20bE2056DCE5BFB168970BA657F187; + address internal constant FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__ETH_SIDE = 0x15ADa72A3B52A88E25DdD2CC2bA1120234e34bb0; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__ETH_SIDE = 0xFe7ebA20c20C8FF12A337F940Ce7A97c6e2594DE; + address internal constant FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__ETH_SIDE = 0x06Fa869caa1160754C6a0B744Da6454c5EA325d4; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__ETH_SIDE = 0x6650D5183C4Cd294a81B1F724c365b0c42f8270a; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__ETH_SIDE = 0xC05DE1CB258bAdc152d8EAd3F573CA9A2E812B2a; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__ETH_SIDE = 0x8Bf7Af56bB721BC3d015111508593Fcb301546F0; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__ETH_SIDE = 0x2F08F4645d2fA1fB12D2db8531c0c2EA0268BdE2; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__ETH_SIDE = 0x04ba20D2Cc47C63bce1166C2864F0241e4D0a0CC; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__ETH_SIDE = 0x9694dcF5b6CCF6216B05FE64945f62603e2d2367; + address internal constant FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__ETH_SIDE = 0x43959A388603DCb6B02Ca084A55d4c7f3b442c57; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__ETH_SIDE = 0xCa026e80F1E9e44da7ce3eD6aC2E9630260B9276; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__ETH_SIDE = 0x98f5E4b7D9eDF57A6ED41b334bD40B2eAa6B6e26; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__ETH_SIDE = 0x91Ff54EffF7564BA3884A91d0E293502D8E6fF90; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__ETH_SIDE = 0x86E71075e55F0aaD27D700017E0783458310c98a; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__ETH_SIDE = 0xBa32Df0b78b1A68F7FA304BbD4Ed7a56A74c525a; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__ETH_SIDE = 0x45D2d8e4aB0F5af1D29305301A1b31D5d41b3349; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__ETH_SIDE = 0xF887C4cFAAfB43d1AA7De204344895591016772c; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__ETH_SIDE = 0x3aaB5C43D4e47f71DEea94a7d541E6C07e21B137; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__ETH_SIDE = 0xb8686Ef9B7ee9e73dE5d1721E4Da580278F8F4d2; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__ETH_SIDE = 0x602cCfee6B4BA8Eb5e35Cf26e05fDEDE379e578E; + address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRAX__ETH_SIDE = 0x32dDf80508cfD8feD8ABe375582FC7cfD20372C4; address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FXS__ETH_SIDE = 0x27E97F35D80514D5DD1Caa730e22a292E912a214; address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FPI__ETH_SIDE = 0x0F6136F9aBB7A0c21FbE076771625b39C544BDf5; - address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FPIS__ETH_SIDE = - 0xFBC512849D4dcEeeFAa1bfce08B3dC9daD755482; - address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRXETH__ETH_SIDE = - 0x9f76b097Cd95627bFbD8052A583127FF6e7b3Fa9; - address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__SFRXETH__ETH_SIDE = - 0x29396AaE6198130A15F6Ff982C44BC4a7353Ef37; + address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FPIS__ETH_SIDE = 0xFBC512849D4dcEeeFAa1bfce08B3dC9daD755482; + address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRXETH__ETH_SIDE = 0x9f76b097Cd95627bFbD8052A583127FF6e7b3Fa9; + address internal constant FRAXFERRY_V2__ETHEREUM_ZKSYNC__SFRXETH__ETH_SIDE = 0x29396AaE6198130A15F6Ff982C44BC4a7353Ef37; address internal constant FRAXFERRY_CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FRAXFERRY_FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FRAXFERRY_CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -1529,7 +1686,7 @@ library Mainnet { address internal constant COMBO_ORACLE_KYBERSWAP_ELASTIC = 0x734fd1fD1f3720379f52cB9d8168d76Cd1ca4A73; address internal constant COMBO_ORACLE_KYBERSWAP_ELASTIC_V2 = 0xc3a483Bb5F96bC4E6104325aa1A229A8E29166B3; address internal constant COMBO_ORACLE_UNIV2_UNIV3 = 0x1cBE07F3b3bf3BDe44d363cecAecfe9a98EC2dff; - address internal constant COMPTROLLER_ADDRESS = 0x168200cF227D4543302686124ac28aE0eaf2cA0B; + address internal constant FRAXLEND_COMPTROLLER_ADDRESS = 0x168200cF227D4543302686124ac28aE0eaf2cA0B; address internal constant CONVEX_WRAPPER_FRAX_USDC_CURVE_POOL_LP = 0x8A2112B42AF1F997002FBAfF77dd09F42A281e8d; address internal constant CONVEX_WRAPPER_FRXETH_ETH_CURVE_POOL_LP = 0x45127c7fA0c3Ce6A18fEc9604D96eDfBBc8A9700; address internal constant CONVEX_WRAPPER_FRAX_USDC_FRAXLEND_LP_OLD = 0x54a3A6aFd87F10Eea4Acc2A067A2C0b612B6D315; @@ -1651,9 +1808,9 @@ library Mainnet { address internal constant FRAXLEND_PAIR_MKR_FRAX = 0x82Ec28636B77661a95f021090F6bE0C8d379DD5D; address internal constant FRAXLEND_PAIR_UNI_FRAX = 0xc6CadA314389430d396C7b0C70c6281e99ca7fe8; address internal constant FRAXLEND_PAIR_AAVE_FRAX = 0xc779fEE076EB04b9F8EA424ec19DE27Efd17A68d; - address internal constant FRAXLEND_PAIR_FXB06302024_FRAX = 0x35E08B28d5b01D058cbB1c39dA9188CC521a79aF; - address internal constant FRAXLEND_PAIR_FXB12312024_FRAX = 0xd1887398f3bbdC9d10D0d5616AD83506DdF5057a; - address internal constant FRAXLEND_PAIR_FXB12312026_FRAX = 0x1c0C222989a37247D974937782cebc8bF4f25733; + address internal constant FRAXLEND_PAIR_FXB_20240630_FRAX = 0x35E08B28d5b01D058cbB1c39dA9188CC521a79aF; + address internal constant FRAXLEND_PAIR_FXB_20241231_FRAX = 0xd1887398f3bbdC9d10D0d5616AD83506DdF5057a; + address internal constant FRAXLEND_PAIR_FXB_20261231_FRAX = 0x1c0C222989a37247D974937782cebc8bF4f25733; address internal constant FRAXLEND_PAIR_SFRXETH_USDC = 0xeE847a804b67f4887c9E8fe559A2dA4278deFB52; address internal constant FRAXLEND_PAIR_LINK_FRAX = 0x7093F6141293F7C4F67E5efD922aC934402E452d; address internal constant FRAXLEND_PAIR_WSTETH_FRAX = 0xb5a46f712F03808aE5c4B885C6F598fA06442684; @@ -1833,6 +1990,7 @@ library Mainnet { address internal constant ADVISORS_MULTISIG = 0x874a873e4891fB760EdFDae0D26cA2c00922C404; address internal constant BEE_USER = 0x733371d7C15ACECF9e120dd037D6BcDb6E069148; address internal constant COMMUNITY_MULTISIG = 0x63278bF9AcdFC9fA65CFa2940b89A34ADfbCb4A1; + address internal constant COMPTROLLER = 0xB1748C79709f4Ba2Dd82834B8c82D4a505003f27; address internal constant COMPTROLLER_MULTISIG = 0xB1748C79709f4Ba2Dd82834B8c82D4a505003f27; address internal constant CURVEAMO_OPERATOR_ADDRESS = 0x8D8Cb63BcB8AD89Aa750B9f80Aa8Fa4CfBcC8E0C; address internal constant FPI_COMPTROLLER_MULTISIG = 0x6A7efa964Cf6D9Ab3BC3c47eBdDB853A8853C502; @@ -2278,6 +2436,14 @@ library Mainnet { address internal constant NON_FUNGIBLE_POSITION_MANAGER = 0xC36442b4a4522E871399CD717aBDD847Ab11FE88; address internal constant SWAPROUTER = 0xE592427A0AEce92De3Edee1F18E0157C05861564; address internal constant UNISWAP_V3_FACTORY = 0x1F98431c8aD98523631AE4a59f267346ea31F984; + address internal constant FPIOFT = 0x9033BAD7aA130a2466060A2dA71fAe2219781B4b; + address internal constant FRXETHOFT = 0x1c1649A38f4A3c5A0c4a24070f688C525AB7D6E6; + address internal constant FRXUSDOFT = 0x566a6442A5A6e9895B9dCA97cC7879D632c6e4B0; + address internal constant SFRXETHOFT = 0xbBc424e58ED38dd911309611ae2d7A23014Bd960; + address internal constant SFRXUSDOFT = 0x7311CEA93ccf5f4F7b789eE31eBA5D9B9290E126; + address internal constant WFRAXOFT = 0x04ACaF8D2865c0714F79da09645C13FD2888977f; + address internal constant REMOTEHOP = 0x3ad4dC2319394bB4BE99A0e4aE2AbF7bCEbD648E; + address internal constant REMOTEMINTREDEEMHOP = 0x99B5587ab54A49e3F827D10175Caf69C0187bfA8; } abstract contract AddressHelperMainnet is TestBase { @@ -2448,266 +2614,80 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0x4ef4c7519023F30A78647EEab321d6cFabC2513c, "Constants.ETH_CURVE_20240630_MAINNET_POOL"); vm.label(0xF8FDe8A259A3698902C88bdB1E13Ff28Cd7f6F09, "Constants.ETH_FXB_20241231"); vm.label(0xc9aa98788a675FF0846E8856cb83F19452f3b0c8, "Constants.ETH_AUCTION_20241231"); - vm.label(0x08a0748cF885F46e20fA30A50a035808eab293D3, "Constants.ETH_ORACLE_20241231"); + vm.label(0x08a0748cF885F46e20fA30A50a035808eab293D3, "Constants.ETH_FXB_20241231_ORACLE"); vm.label(0x6307E6688819951Cf8D6B6066018243D2496952F, "Constants.ETH_CURVE_20241231_MAINNET_POOL"); vm.label(0xE920eEdAff6c3BEd1Ef61010B64d46986634E908, "Constants.ETH_CURVE_20241231_ARBITRUM_POOL"); vm.label(0x05824D6D4DE8A0ede4e12b98387A4f035a67ee68, "Constants.ETH_CURVE_20241231_ARBITRUM_GAUGE"); vm.label(0x76237BCfDbe8e06FB774663add96216961df4ff3, "Constants.ETH_FXB_20261231"); vm.label(0x63981f5E690eaF7E8795c42832664e8848F532fB, "Constants.ETH_AUCTION_20261231"); - vm.label(0x2ec5D1C13fEF1C7029eE329a1D31B2180c9b3707, "Constants.ETH_ORACLE_20261231"); + vm.label(0x2ec5D1C13fEF1C7029eE329a1D31B2180c9b3707, "Constants.ETH_FXB_20261231_ORACLE"); vm.label(0xe035e27A8eD6842b478933820f90093D205F7098, "Constants.ETH_CURVE_20261231_MAINNET_POOL"); vm.label(0x946adc524BD312D036776798c46ceDD948DD0A0f, "Constants.ETH_CURVE_20261231_ARBITRUM_POOL"); vm.label(0xa2617A26f9f528fa7B0E47fc2e66FcC04C6682E9, "Constants.ETH_CURVE_20261231_ARBITRUM_GAUGE"); - vm.label( - 0x85c5f05Ae4CB68190C695a22b292C3bA90696128, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ETH_SIDE" - ); - vm.label( - 0x4b8792aF00eaE944484bF572bc33029B2184a50C, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ETH_SIDE" - ); - vm.label( - 0x5878d03AA50d2c00A921948Ea8Fa5F2d247f6BDB, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ETH_SIDE" - ); - vm.label( - 0xCd4aa7DB9D8a995a651498E94f6693A4D26e6C9E, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ETH_SIDE" - ); - vm.label( - 0x505603e2440b44C1602b44D0Eb8385399b3F7bab, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ETH_SIDE" - ); - vm.label( - 0x8afd5082E0C24dEcEA39A9eFb14e4ACF4373D7D6, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x2453b1FbD17ceA069A31C9D16A27f4F93a85Cc0d, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ETH_SIDE" - ); - vm.label( - 0x6ac96F65156281a9383455D704b58A74ea9C9eC4, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_AURORA__FRAX__ETH_SIDE" - ); - vm.label( - 0xA381d58e96eC3818c825E1fb264099448945CF8b, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__ETH_SIDE" - ); - vm.label( - 0x9Ab224996D25bfDCB91d838F7f1902698Ac0a742, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__ETH_SIDE" - ); - vm.label( - 0xbb6b54F8969a4711527fdF6AB852B6D6cdF368d1, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__ETH_SIDE" - ); - vm.label( - 0x18A5ca670dC42D0551f00E11A730074f6787f17F, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__ETH_SIDE" - ); - vm.label( - 0x94ddd112C9ea0fb534e376BE09A50d310F0612b4, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__ETH_SIDE" - ); - vm.label( - 0xF380200B115Caa22D49e6C115b758d6130377620, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x59ae66FB395893E3FD965aDb06A52d06C49dF8A9, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__ETH_SIDE" - ); - vm.label( - 0x3eF1d856EA62A2292B8690855042095a7aC48B4b, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_BOBA__FRAX__ETH_SIDE" - ); - vm.label( - 0xDAe210BfB0cF8c81EDB4b459e2e0bA14D553e2D9, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_BSC__FRAX__ETH_SIDE" - ); + vm.label(0x85c5f05Ae4CB68190C695a22b292C3bA90696128, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_ARBITRUM__FRAX__ETH_SIDE"); + vm.label(0x4b8792aF00eaE944484bF572bc33029B2184a50C, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FXS__ETH_SIDE"); + vm.label(0x5878d03AA50d2c00A921948Ea8Fa5F2d247f6BDB, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPI__ETH_SIDE"); + vm.label(0xCd4aa7DB9D8a995a651498E94f6693A4D26e6C9E, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FPIS__ETH_SIDE"); + vm.label(0x505603e2440b44C1602b44D0Eb8385399b3F7bab, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__FRXETH__ETH_SIDE"); + vm.label(0x8afd5082E0C24dEcEA39A9eFb14e4ACF4373D7D6, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRXETH__ETH_SIDE"); + vm.label(0x2453b1FbD17ceA069A31C9D16A27f4F93a85Cc0d, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ARBITRUM__SFRAX__ETH_SIDE"); + vm.label(0x6ac96F65156281a9383455D704b58A74ea9C9eC4, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_AURORA__FRAX__ETH_SIDE"); + vm.label(0xA381d58e96eC3818c825E1fb264099448945CF8b, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_AVALANCHE__FRAX__ETH_SIDE"); + vm.label(0x9Ab224996D25bfDCB91d838F7f1902698Ac0a742, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FXS__ETH_SIDE"); + vm.label(0xbb6b54F8969a4711527fdF6AB852B6D6cdF368d1, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPI__ETH_SIDE"); + vm.label(0x18A5ca670dC42D0551f00E11A730074f6787f17F, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FPIS__ETH_SIDE"); + vm.label(0x94ddd112C9ea0fb534e376BE09A50d310F0612b4, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__FRXETH__ETH_SIDE"); + vm.label(0xF380200B115Caa22D49e6C115b758d6130377620, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRXETH__ETH_SIDE"); + vm.label(0x59ae66FB395893E3FD965aDb06A52d06C49dF8A9, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_AVALANCHE__SFRAX__ETH_SIDE"); + vm.label(0x3eF1d856EA62A2292B8690855042095a7aC48B4b, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_BOBA__FRAX__ETH_SIDE"); + vm.label(0xDAe210BfB0cF8c81EDB4b459e2e0bA14D553e2D9, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_BSC__FRAX__ETH_SIDE"); vm.label(0x9B62402Eb9A755677dEbdaE3639CB531c0Af0E5d, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__FXS__ETH_SIDE"); vm.label(0xfbD33d2f3330f063C87b523Ba80D5F7f296E5393, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__FPI__ETH_SIDE"); - vm.label( - 0xf18B122c3935Ff49f62C8f1f77Dc42A6F85A0bb5, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__FPIS__ETH_SIDE" - ); - vm.label( - 0xce4DbAF3fa72C962Ee1F371694109fc2a80B03f5, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__ETH_SIDE" - ); - vm.label( - 0x621D0e62f26314387f338A2509aFA3Ae3414661A, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__ETH_SIDE" - ); - vm.label( - 0xe3e7F354ac948ceBa925181C81618D7c9b3da8C9, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__ETH_SIDE" - ); - vm.label( - 0x2d2261f970F605C813f160E8BAEd455E9004A842, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_EVMOS__FRAX__ETH_SIDE" - ); - vm.label( - 0xfB788F9E20ef426a32A67986654750172A6c1788, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__ETH_SIDE" - ); - vm.label( - 0x1313d143BE1ac25aCACEFF39Bf31877bccDb9622, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FANTOM__FXS__ETH_SIDE" - ); - vm.label( - 0xaF4305d05e9B08b1D17894ce1ACE8235528f7EdE, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__ETH_SIDE" - ); - vm.label( - 0xB6b0290A39E2F896bBd8fC19cf17FE393e993dE4, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x5e1D94021484642863Ea8E7Cb4F0188e56B18FEE, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__ETH_SIDE" - ); - vm.label( - 0x4A6d155df9Ec9A1BB3639e6B7B99E46Fb68D42f6, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__ETH_SIDE" - ); - vm.label( - 0x9A576A3d39c589A861B46864C253288bcA428a6c, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__ETH_SIDE" - ); - vm.label( - 0x958815f476cD07354c0BC034EE5077B20fD93003, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__ETH_SIDE" - ); - vm.label( - 0x5c5f05cF8528FFe925A2264743bFfEdbAB2b0FE3, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x2b4864c2F2A2C275C6C66B90a2ae6BE9fA9cbE47, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__ETH_SIDE" - ); - vm.label( - 0xF1E1deA8F1053FD9C5F47f72F1f03977E17aF242, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__ETH_SIDE" - ); - vm.label( - 0x2De1354c98880889643c4cA8B06FA2Fb8Fc1Fd7A, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__ETH_SIDE" - ); - vm.label( - 0x228567c10b7533C88057c10dDeA6349360F122c5, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__ETH_SIDE" - ); - vm.label( - 0xbc3A2bF4FA20bE2056DCE5BFB168970BA657F187, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x15ADa72A3B52A88E25DdD2CC2bA1120234e34bb0, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__ETH_SIDE" - ); - vm.label( - 0xFe7ebA20c20C8FF12A337F940Ce7A97c6e2594DE, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__ETH_SIDE" - ); - vm.label( - 0x06Fa869caa1160754C6a0B744Da6454c5EA325d4, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__ETH_SIDE" - ); - vm.label( - 0x6650D5183C4Cd294a81B1F724c365b0c42f8270a, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__ETH_SIDE" - ); - vm.label( - 0xC05DE1CB258bAdc152d8EAd3F573CA9A2E812B2a, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__ETH_SIDE" - ); - vm.label( - 0x8Bf7Af56bB721BC3d015111508593Fcb301546F0, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__ETH_SIDE" - ); - vm.label( - 0x2F08F4645d2fA1fB12D2db8531c0c2EA0268BdE2, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__ETH_SIDE" - ); - vm.label( - 0x04ba20D2Cc47C63bce1166C2864F0241e4D0a0CC, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x9694dcF5b6CCF6216B05FE64945f62603e2d2367, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__ETH_SIDE" - ); - vm.label( - 0x43959A388603DCb6B02Ca084A55d4c7f3b442c57, - "Constants.ETH_FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__ETH_SIDE" - ); - vm.label( - 0xCa026e80F1E9e44da7ce3eD6aC2E9630260B9276, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__ETH_SIDE" - ); - vm.label( - 0x98f5E4b7D9eDF57A6ED41b334bD40B2eAa6B6e26, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__ETH_SIDE" - ); - vm.label( - 0x91Ff54EffF7564BA3884A91d0E293502D8E6fF90, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x86E71075e55F0aaD27D700017E0783458310c98a, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__ETH_SIDE" - ); - vm.label( - 0xBa32Df0b78b1A68F7FA304BbD4Ed7a56A74c525a, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__ETH_SIDE" - ); - vm.label( - 0x45D2d8e4aB0F5af1D29305301A1b31D5d41b3349, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__ETH_SIDE" - ); - vm.label( - 0xF887C4cFAAfB43d1AA7De204344895591016772c, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__ETH_SIDE" - ); - vm.label( - 0x3aaB5C43D4e47f71DEea94a7d541E6C07e21B137, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__ETH_SIDE" - ); - vm.label( - 0xb8686Ef9B7ee9e73dE5d1721E4Da580278F8F4d2, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__ETH_SIDE" - ); - vm.label( - 0x602cCfee6B4BA8Eb5e35Cf26e05fDEDE379e578E, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__ETH_SIDE" - ); - vm.label( - 0x32dDf80508cfD8feD8ABe375582FC7cfD20372C4, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRAX__ETH_SIDE" - ); - vm.label( - 0x27E97F35D80514D5DD1Caa730e22a292E912a214, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FXS__ETH_SIDE" - ); - vm.label( - 0x0F6136F9aBB7A0c21FbE076771625b39C544BDf5, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FPI__ETH_SIDE" - ); - vm.label( - 0xFBC512849D4dcEeeFAa1bfce08B3dC9daD755482, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FPIS__ETH_SIDE" - ); - vm.label( - 0x9f76b097Cd95627bFbD8052A583127FF6e7b3Fa9, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRXETH__ETH_SIDE" - ); - vm.label( - 0x29396AaE6198130A15F6Ff982C44BC4a7353Ef37, - "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__SFRXETH__ETH_SIDE" - ); + vm.label(0xf18B122c3935Ff49f62C8f1f77Dc42A6F85A0bb5, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__FPIS__ETH_SIDE"); + vm.label(0xce4DbAF3fa72C962Ee1F371694109fc2a80B03f5, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__ETH_SIDE"); + vm.label(0x621D0e62f26314387f338A2509aFA3Ae3414661A, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__ETH_SIDE"); + vm.label(0xe3e7F354ac948ceBa925181C81618D7c9b3da8C9, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__ETH_SIDE"); + vm.label(0x2d2261f970F605C813f160E8BAEd455E9004A842, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_EVMOS__FRAX__ETH_SIDE"); + vm.label(0xfB788F9E20ef426a32A67986654750172A6c1788, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_FANTOM__FRAX__ETH_SIDE"); + vm.label(0x1313d143BE1ac25aCACEFF39Bf31877bccDb9622, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FANTOM__FXS__ETH_SIDE"); + vm.label(0xaF4305d05e9B08b1D17894ce1ACE8235528f7EdE, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FANTOM__FRXETH__ETH_SIDE"); + vm.label(0xB6b0290A39E2F896bBd8fC19cf17FE393e993dE4, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FANTOM__SFRXETH__ETH_SIDE"); + vm.label(0x5e1D94021484642863Ea8E7Cb4F0188e56B18FEE, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__ETH_SIDE"); + vm.label(0x4A6d155df9Ec9A1BB3639e6B7B99E46Fb68D42f6, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__ETH_SIDE"); + vm.label(0x9A576A3d39c589A861B46864C253288bcA428a6c, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPI__ETH_SIDE"); + vm.label(0x958815f476cD07354c0BC034EE5077B20fD93003, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FPIS__ETH_SIDE"); + vm.label(0x5c5f05cF8528FFe925A2264743bFfEdbAB2b0FE3, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRXETH__ETH_SIDE"); + vm.label(0x2b4864c2F2A2C275C6C66B90a2ae6BE9fA9cbE47, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_FRAXTAL__SFRAX__ETH_SIDE"); + vm.label(0xF1E1deA8F1053FD9C5F47f72F1f03977E17aF242, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__ETH_SIDE"); + vm.label(0x2De1354c98880889643c4cA8B06FA2Fb8Fc1Fd7A, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__ETH_SIDE"); + vm.label(0x228567c10b7533C88057c10dDeA6349360F122c5, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__ETH_SIDE"); + vm.label(0xbc3A2bF4FA20bE2056DCE5BFB168970BA657F187, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__ETH_SIDE"); + vm.label(0x15ADa72A3B52A88E25DdD2CC2bA1120234e34bb0, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__ETH_SIDE"); + vm.label(0xFe7ebA20c20C8FF12A337F940Ce7A97c6e2594DE, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__ETH_SIDE"); + vm.label(0x06Fa869caa1160754C6a0B744Da6454c5EA325d4, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__ETH_SIDE"); + vm.label(0x6650D5183C4Cd294a81B1F724c365b0c42f8270a, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__ETH_SIDE"); + vm.label(0xC05DE1CB258bAdc152d8EAd3F573CA9A2E812B2a, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__ETH_SIDE"); + vm.label(0x8Bf7Af56bB721BC3d015111508593Fcb301546F0, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__ETH_SIDE"); + vm.label(0x2F08F4645d2fA1fB12D2db8531c0c2EA0268BdE2, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__ETH_SIDE"); + vm.label(0x04ba20D2Cc47C63bce1166C2864F0241e4D0a0CC, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__ETH_SIDE"); + vm.label(0x9694dcF5b6CCF6216B05FE64945f62603e2d2367, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__ETH_SIDE"); + vm.label(0x43959A388603DCb6B02Ca084A55d4c7f3b442c57, "Constants.ETH_FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__ETH_SIDE"); + vm.label(0xCa026e80F1E9e44da7ce3eD6aC2E9630260B9276, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__ETH_SIDE"); + vm.label(0x98f5E4b7D9eDF57A6ED41b334bD40B2eAa6B6e26, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__ETH_SIDE"); + vm.label(0x91Ff54EffF7564BA3884A91d0E293502D8E6fF90, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__ETH_SIDE"); + vm.label(0x86E71075e55F0aaD27D700017E0783458310c98a, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__ETH_SIDE"); + vm.label(0xBa32Df0b78b1A68F7FA304BbD4Ed7a56A74c525a, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__ETH_SIDE"); + vm.label(0x45D2d8e4aB0F5af1D29305301A1b31D5d41b3349, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__ETH_SIDE"); + vm.label(0xF887C4cFAAfB43d1AA7De204344895591016772c, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__ETH_SIDE"); + vm.label(0x3aaB5C43D4e47f71DEea94a7d541E6C07e21B137, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__ETH_SIDE"); + vm.label(0xb8686Ef9B7ee9e73dE5d1721E4Da580278F8F4d2, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__ETH_SIDE"); + vm.label(0x602cCfee6B4BA8Eb5e35Cf26e05fDEDE379e578E, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__ETH_SIDE"); + vm.label(0x32dDf80508cfD8feD8ABe375582FC7cfD20372C4, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRAX__ETH_SIDE"); + vm.label(0x27E97F35D80514D5DD1Caa730e22a292E912a214, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FXS__ETH_SIDE"); + vm.label(0x0F6136F9aBB7A0c21FbE076771625b39C544BDf5, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FPI__ETH_SIDE"); + vm.label(0xFBC512849D4dcEeeFAa1bfce08B3dC9daD755482, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FPIS__ETH_SIDE"); + vm.label(0x9f76b097Cd95627bFbD8052A583127FF6e7b3Fa9, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__FRXETH__ETH_SIDE"); + vm.label(0x29396AaE6198130A15F6Ff982C44BC4a7353Ef37, "Constants.ETH_FRAXFERRY_V2__ETHEREUM_ZKSYNC__SFRXETH__ETH_SIDE"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.ETH_FRAXFERRY_CAPTAIN"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.ETH_FRAXFERRY_FIRST_OFFICER"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.ETH_FRAXFERRY_CREWMEMBER"); @@ -2728,7 +2708,7 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0x734fd1fD1f3720379f52cB9d8168d76Cd1ca4A73, "Constants.ETH_COMBO_ORACLE_KYBERSWAP_ELASTIC"); vm.label(0xc3a483Bb5F96bC4E6104325aa1A229A8E29166B3, "Constants.ETH_COMBO_ORACLE_KYBERSWAP_ELASTIC_V2"); vm.label(0x1cBE07F3b3bf3BDe44d363cecAecfe9a98EC2dff, "Constants.ETH_COMBO_ORACLE_UNIV2_UNIV3"); - vm.label(0x168200cF227D4543302686124ac28aE0eaf2cA0B, "Constants.ETH_COMPTROLLER_ADDRESS"); + vm.label(0x168200cF227D4543302686124ac28aE0eaf2cA0B, "Constants.ETH_FRAXLEND_COMPTROLLER_ADDRESS"); vm.label(0x8A2112B42AF1F997002FBAfF77dd09F42A281e8d, "Constants.ETH_CONVEX_WRAPPER_FRAX_USDC_CURVE_POOL_LP"); vm.label(0x45127c7fA0c3Ce6A18fEc9604D96eDfBBc8A9700, "Constants.ETH_CONVEX_WRAPPER_FRXETH_ETH_CURVE_POOL_LP"); vm.label(0x54a3A6aFd87F10Eea4Acc2A067A2C0b612B6D315, "Constants.ETH_CONVEX_WRAPPER_FRAX_USDC_FRAXLEND_LP_OLD"); @@ -2770,10 +2750,7 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0xDcEF968d416a41Cdac0ED8702fAC8128A64241A2, "Constants.ETH_FRAX_USDC_CURVE_POOL_NOT_LP"); vm.label(0xDcEF968d416a41Cdac0ED8702fAC8128A64241A2, "Constants.ETH_FRAX_USDC_PLAIN_POOL"); vm.label(0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD, "Constants.ETH_FRAX_USD_CHAINLINK_ORACLE"); - vm.label( - 0x1A4ae41e247ef90EDAaC97DD729a4F03687059DB, - "Constants.ETH_FRXETH_ETH_CURVE_POOL_LP_DUAL_ORACLE_ADDRESS" - ); + vm.label(0x1A4ae41e247ef90EDAaC97DD729a4F03687059DB, "Constants.ETH_FRXETH_ETH_CURVE_POOL_LP_DUAL_ORACLE_ADDRESS"); vm.label(0xf43211935C781D5ca1a41d2041F397B8A7366C7A, "Constants.ETH_FRXETH_ETH_CURVE_POOL_LP_ERC20"); vm.label(0xa1F8A6807c402E4A15ef4EBa36528A3FED24E577, "Constants.ETH_FRXETH_ETH_CURVE_POOL_NOT_LP"); vm.label(0xb12c19C838499E3447AFd9e59274B1BE56b1546A, "Constants.ETH_FRXETH_ETH_DUAL_ORACLE_ADDRESS"); @@ -2833,16 +2810,10 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0x9599033315C29Be9690b716bFE409381426dAD41, "Constants.ETH_VARIABLE_RATE_STABLE_ADDRESS"); vm.label(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, "Constants.ETH_WBTC_ERC20"); vm.label(0xeA94770583b5d57791dFe9CF1e29EfD6D53d2fdC, "Constants.ETH_WBTC_SFRAX_INVERSE_DUAL_ORACLE"); - vm.label( - 0xb7dA758EE015c3C45B4a54579743Ebf365F7A53b, - "Constants.ETH_WBTC_SFRAX_INVERSE_ORACLE_ADAPTER_CHAINLINK" - ); + vm.label(0xb7dA758EE015c3C45B4a54579743Ebf365F7A53b, "Constants.ETH_WBTC_SFRAX_INVERSE_ORACLE_ADAPTER_CHAINLINK"); vm.label(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, "Constants.ETH_WETH_ERC20"); vm.label(0x92c7b5Ce4CB0e5483F3365C1449f21578eE9f21A, "Constants.ETH_WETH_FRAX_V3_POOL"); - vm.label( - 0x1cA1350F67575B0beE44EC9DC6725A4032431F33, - "Constants.ETH_WETH_SFRAX_INVERSE_ORACLE_ADAPTER_CHAINLINK" - ); + vm.label(0x1cA1350F67575B0beE44EC9DC6725A4032431F33, "Constants.ETH_WETH_SFRAX_INVERSE_ORACLE_ADAPTER_CHAINLINK"); vm.label(0xE0554a476A092703abdB3Ef35c80e0D76d32939F, "Constants.ETH_WETH_USDC_V3_POOL"); vm.label(0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0, "Constants.ETH_WSTETH_ERC20"); vm.label(0xe73375f36A1b17A21d7Aa0fDa092195431e7017a, "Constants.ETH_WSTETH_USD_DUAL_ORACLE_ADDRESS"); @@ -2859,9 +2830,9 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0x82Ec28636B77661a95f021090F6bE0C8d379DD5D, "Constants.ETH_FRAXLEND_PAIR_MKR_FRAX"); vm.label(0xc6CadA314389430d396C7b0C70c6281e99ca7fe8, "Constants.ETH_FRAXLEND_PAIR_UNI_FRAX"); vm.label(0xc779fEE076EB04b9F8EA424ec19DE27Efd17A68d, "Constants.ETH_FRAXLEND_PAIR_AAVE_FRAX"); - vm.label(0x35E08B28d5b01D058cbB1c39dA9188CC521a79aF, "Constants.ETH_FRAXLEND_PAIR_FXB06302024_FRAX"); - vm.label(0xd1887398f3bbdC9d10D0d5616AD83506DdF5057a, "Constants.ETH_FRAXLEND_PAIR_FXB12312024_FRAX"); - vm.label(0x1c0C222989a37247D974937782cebc8bF4f25733, "Constants.ETH_FRAXLEND_PAIR_FXB12312026_FRAX"); + vm.label(0x35E08B28d5b01D058cbB1c39dA9188CC521a79aF, "Constants.ETH_FRAXLEND_PAIR_FXB_20240630_FRAX"); + vm.label(0xd1887398f3bbdC9d10D0d5616AD83506DdF5057a, "Constants.ETH_FRAXLEND_PAIR_FXB_20241231_FRAX"); + vm.label(0x1c0C222989a37247D974937782cebc8bF4f25733, "Constants.ETH_FRAXLEND_PAIR_FXB_20261231_FRAX"); vm.label(0xeE847a804b67f4887c9E8fe559A2dA4278deFB52, "Constants.ETH_FRAXLEND_PAIR_SFRXETH_USDC"); vm.label(0x7093F6141293F7C4F67E5efD922aC934402E452d, "Constants.ETH_FRAXLEND_PAIR_LINK_FRAX"); vm.label(0xb5a46f712F03808aE5c4B885C6F598fA06442684, "Constants.ETH_FRAXLEND_PAIR_WSTETH_FRAX"); @@ -3041,6 +3012,7 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0x874a873e4891fB760EdFDae0D26cA2c00922C404, "Constants.ETH_ADVISORS_MULTISIG"); vm.label(0x733371d7C15ACECF9e120dd037D6BcDb6E069148, "Constants.ETH_BEE_USER"); vm.label(0x63278bF9AcdFC9fA65CFa2940b89A34ADfbCb4A1, "Constants.ETH_COMMUNITY_MULTISIG"); + vm.label(0xB1748C79709f4Ba2Dd82834B8c82D4a505003f27, "Constants.ETH_COMPTROLLER"); vm.label(0xB1748C79709f4Ba2Dd82834B8c82D4a505003f27, "Constants.ETH_COMPTROLLER_MULTISIG"); vm.label(0x8D8Cb63BcB8AD89Aa750B9f80Aa8Fa4CfBcC8E0C, "Constants.ETH_CURVEAMO_OPERATOR_ADDRESS"); vm.label(0x6A7efa964Cf6D9Ab3BC3c47eBdDB853A8853C502, "Constants.ETH_FPI_COMPTROLLER_MULTISIG"); @@ -3486,22 +3458,52 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0xC36442b4a4522E871399CD717aBDD847Ab11FE88, "Constants.ETH_NON_FUNGIBLE_POSITION_MANAGER"); vm.label(0xE592427A0AEce92De3Edee1F18E0157C05861564, "Constants.ETH_SWAPROUTER"); vm.label(0x1F98431c8aD98523631AE4a59f267346ea31F984, "Constants.ETH_UNISWAP_V3_FACTORY"); + vm.label(0x9033BAD7aA130a2466060A2dA71fAe2219781B4b, "Constants.ETH_FPIOFT"); + vm.label(0x1c1649A38f4A3c5A0c4a24070f688C525AB7D6E6, "Constants.ETH_FRXETHOFT"); + vm.label(0x566a6442A5A6e9895B9dCA97cC7879D632c6e4B0, "Constants.ETH_FRXUSDOFT"); + vm.label(0xbBc424e58ED38dd911309611ae2d7A23014Bd960, "Constants.ETH_SFRXETHOFT"); + vm.label(0x7311CEA93ccf5f4F7b789eE31eBA5D9B9290E126, "Constants.ETH_SFRXUSDOFT"); + vm.label(0x04ACaF8D2865c0714F79da09645C13FD2888977f, "Constants.ETH_WFRAXOFT"); + vm.label(0x3ad4dC2319394bB4BE99A0e4aE2AbF7bCEbD648E, "Constants.ETH_REMOTEHOP"); + vm.label(0x99B5587ab54A49e3F827D10175Caf69C0187bfA8, "Constants.ETH_REMOTEMINTREDEEMHOP"); } } +library Mode { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x486cb4788f1be7cdef9301a7a637b451df3cf262; + address internal constant REMOTEMINTREDEEMHOP = 0x7360575f6f8F91b38dD078241b0Df508f5fBfDf9; +} + +abstract contract AddressHelperMode is TestBase { + constructor() { + labelConstants(); + } + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.undefined_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.undefined_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.undefined_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.undefined_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.undefined_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.undefined_WFRAXOFT"); + vm.label(0x486cb4788f1be7cdef9301a7a637b451df3cf262, "Constants.undefined_REMOTEHOP"); + vm.label(0x7360575f6f8F91b38dD078241b0Df508f5fBfDf9, "Constants.undefined_REMOTEMINTREDEEMHOP"); + } +} library Moonbeam { address internal constant FRAX = 0x322E86852e492a7Ee17f28a78c663da38FB33bfb; address internal constant FXS = 0x2CC0A9D8047A5011dEfe85328a6f26968C8aaA1C; address internal constant FRXETH = 0x82bbd1b6f6De2B7bb63D3e1546e6b1553508BE99; address internal constant SFRXETH = 0xecf91116348aF1cfFe335e9807f0051332BE128D; - address internal constant FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__MNBM_SIDE = - 0xd545Fd6080db07eDdcC1F57dC28a53D930837A8d; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__MNBM_SIDE = - 0x1E87990678f640BFfe5A118c331fEc296DDC8d89; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__MNBM_SIDE = - 0x7c7Fd7412F5E79f4917163F78d5Ece5E2e923504; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__MNBM_SIDE = - 0x78348E58582d0D1789da1621B79Fc62012485CAe; + address internal constant FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__MNBM_SIDE = 0xd545Fd6080db07eDdcC1F57dC28a53D930837A8d; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__MNBM_SIDE = 0x1E87990678f640BFfe5A118c331fEc296DDC8d89; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__MNBM_SIDE = 0x7c7Fd7412F5E79f4917163F78d5Ece5E2e923504; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__MNBM_SIDE = 0x78348E58582d0D1789da1621B79Fc62012485CAe; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -3532,22 +3534,10 @@ abstract contract AddressHelperMoonbeam is TestBase { vm.label(0x2CC0A9D8047A5011dEfe85328a6f26968C8aaA1C, "Constants.MNBM_FXS"); vm.label(0x82bbd1b6f6De2B7bb63D3e1546e6b1553508BE99, "Constants.MNBM_FRXETH"); vm.label(0xecf91116348aF1cfFe335e9807f0051332BE128D, "Constants.MNBM_SFRXETH"); - vm.label( - 0xd545Fd6080db07eDdcC1F57dC28a53D930837A8d, - "Constants.MNBM_FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__MNBM_SIDE" - ); - vm.label( - 0x1E87990678f640BFfe5A118c331fEc296DDC8d89, - "Constants.MNBM_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__MNBM_SIDE" - ); - vm.label( - 0x7c7Fd7412F5E79f4917163F78d5Ece5E2e923504, - "Constants.MNBM_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__MNBM_SIDE" - ); - vm.label( - 0x78348E58582d0D1789da1621B79Fc62012485CAe, - "Constants.MNBM_FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__MNBM_SIDE" - ); + vm.label(0xd545Fd6080db07eDdcC1F57dC28a53D930837A8d, "Constants.MNBM_FRAXFERRY_V1__ETHEREUM_MOONBEAM__FRAX__MNBM_SIDE"); + vm.label(0x1E87990678f640BFfe5A118c331fEc296DDC8d89, "Constants.MNBM_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FXS__MNBM_SIDE"); + vm.label(0x7c7Fd7412F5E79f4917163F78d5Ece5E2e923504, "Constants.MNBM_FRAXFERRY_V2__ETHEREUM_MOONBEAM__FRXETH__MNBM_SIDE"); + vm.label(0x78348E58582d0D1789da1621B79Fc62012485CAe, "Constants.MNBM_FRAXFERRY_V2__ETHEREUM_MOONBEAM__SFRXETH__MNBM_SIDE"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.MNBM_CAPTAIN"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.MNBM_FIRST_OFFICER"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.MNBM_CREWMEMBER"); @@ -3568,14 +3558,11 @@ abstract contract AddressHelperMoonbeam is TestBase { vm.label(0xd341D2191bb0F84E5c29cB301deF5753Dab1ac04, "Constants.MNBM_ZENLINK_CANFRAX_WGLMR"); } } - library Moonriver { address internal constant FRAX = 0x1A93B23281CC1CDE4C4741353F3064709A16197d; address internal constant FXS = 0x6f1D1Ee50846Fcbc3de91723E61cb68CFa6D0E98; - address internal constant FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__MOVR_SIDE = - 0x81dbcc69937DAd14e358B1a16Ba7ea047703c404; - address internal constant FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__MOVR_SIDE = - 0x2d3146aD02f64cb21C23b54f3fD5B0ddc927ba20; + address internal constant FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__MOVR_SIDE = 0x81dbcc69937DAd14e358B1a16Ba7ea047703c404; + address internal constant FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__MOVR_SIDE = 0x2d3146aD02f64cb21C23b54f3fD5B0ddc927ba20; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -3609,14 +3596,8 @@ abstract contract AddressHelperMoonriver is TestBase { function labelConstants() public { vm.label(0x1A93B23281CC1CDE4C4741353F3064709A16197d, "Constants.MOVR_FRAX"); vm.label(0x6f1D1Ee50846Fcbc3de91723E61cb68CFa6D0E98, "Constants.MOVR_FXS"); - vm.label( - 0x81dbcc69937DAd14e358B1a16Ba7ea047703c404, - "Constants.MOVR_FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__MOVR_SIDE" - ); - vm.label( - 0x2d3146aD02f64cb21C23b54f3fD5B0ddc927ba20, - "Constants.MOVR_FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__MOVR_SIDE" - ); + vm.label(0x81dbcc69937DAd14e358B1a16Ba7ea047703c404, "Constants.MOVR_FRAXFERRY_V1__ETHEREUM_MOONRIVER__FRAX__MOVR_SIDE"); + vm.label(0x2d3146aD02f64cb21C23b54f3fD5B0ddc927ba20, "Constants.MOVR_FRAXFERRY_V2__ETHEREUM_MOONRIVER__FXS__MOVR_SIDE"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.MOVR_CAPTAIN"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.MOVR_FIRST_OFFICER"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.MOVR_CREWMEMBER"); @@ -3642,7 +3623,20 @@ abstract contract AddressHelperMoonriver is TestBase { vm.label(0xc0EAB66DaDC825c95cA1951A2B02BC56073Fc7B2, "Constants.MOVR_SUSHI_CANFXS_ANYUSDC"); } } - +library Movement { + bytes32 internal constant FPI = 0x15607151cc023512886f5af24d4f77e6e7a5d6fb8a482dfb56b9c4f5c1fca0b2; + bytes32 internal constant FRXETH = 0x8645126a60d36e138d435a28875a2aeef253bf80aae22bebcd411ad4251f1585; + bytes32 internal constant FRXUSD = 0xe4354602aa4311f36240dd57f3f3435ffccdbd0cd2963f1a69da39a2dbcd59b5; + bytes32 internal constant SFRXETH = 0x80d729c4632bcc6279b7bed2542e01e2cebd34ca9f3f15963c29d1621efc221a; + bytes32 internal constant SFRXUSD = 0xbf2efbffbbd7083aaf006379d96b866b73bb4eb9684a7504c62feafe670962c2; + bytes32 internal constant WFRAX = 0x4e4cce8f877d7ad45c896c1823017fe07874f3d8db6e15960eda26e211151300; + bytes32 internal constant FPIOFT = 0xadf0ffffa5ee44a94f0c65be05e701951e65e276419f7460286a139d9403e864; + bytes32 internal constant FRXETHOFT = 0xecb3a766f12981919158fc8ec3b98dd3f8b39a59280e62e80c600cea1b2c0f9c; + bytes32 internal constant FRXUSDOFT = 0xe067037681385b86d8344e6b7746023604c6ac90ddc997ba3c58396c258ad17b; + bytes32 internal constant SFRXETHOFT = 0x28b7264258592031a024ed8e1632090648ec53797c269ac91aa0c9ed94268356; + bytes32 internal constant SFRXUSDOFT = 0xc9bdfdc965bb7fcdcfa6b45870eab33bfaf8f4e8e3f6b89d3e0203aba634a1c9; + bytes32 internal constant WFRAXOFT = 0x267749b1a80d9d582019e6b0572c1dbc98648e24101b0861395cdbed095ceff2; +} library Optimism { address internal constant FRAX = 0x2E3D870790dC77A83DD1d18184Acc7439A53f475; address internal constant FXS = 0x67CCEA5bb16181E7b4109c9c2143c24a1c2205Be; @@ -3651,20 +3645,13 @@ library Optimism { address internal constant FRXETH = 0x6806411765Af15Bddd26f8f544A34cC40cb9838B; address internal constant SFRXETH = 0x484c2D6e3cDd945a8B2DF735e079178C1036578c; address internal constant SFRAX = 0x2Dd1B4D4548aCCeA497050619965f91f78b3b532; - address internal constant FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__OPTI_SIDE = - 0xb781FCaC4B8eF06891F9baD7dB9C178B1cE67967; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__OPTI_SIDE = - 0xdF6B3b56B1668dA507Db58C64b7153756cfE8e67; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__OPTI_SIDE = - 0x053F082f3bC0C48B8409970c017b4F2a6f673e16; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__OPTI_SIDE = - 0xB84E29042Bfb489439949a79aed8a0e156169Ae5; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__OPTI_SIDE = - 0xA4EFC2d768C9b9b0f97DD91a1555B345f69b39C0; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__OPTI_SIDE = - 0x59b99CF08C01a6ADa0e0D819520719CA41B35c7C; - address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__OPTI_SIDE = - 0xD1738eB733A636d1b8665f48bC8a24dA889c2562; + address internal constant FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__OPTI_SIDE = 0xb781FCaC4B8eF06891F9baD7dB9C178B1cE67967; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__OPTI_SIDE = 0xdF6B3b56B1668dA507Db58C64b7153756cfE8e67; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__OPTI_SIDE = 0x053F082f3bC0C48B8409970c017b4F2a6f673e16; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__OPTI_SIDE = 0xB84E29042Bfb489439949a79aed8a0e156169Ae5; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__OPTI_SIDE = 0xA4EFC2d768C9b9b0f97DD91a1555B345f69b39C0; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__OPTI_SIDE = 0x59b99CF08C01a6ADa0e0D819520719CA41B35c7C; + address internal constant FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__OPTI_SIDE = 0xD1738eB733A636d1b8665f48bC8a24dA889c2562; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; @@ -3688,6 +3675,14 @@ library Optimism { address internal constant FPI_COMPTROLLER = 0x8Acc8819cBB632dE4a8E732f08b9E578D2A8F635; address internal constant CURVE_4POOL = 0x3da3153E26A230d918bb9F9428A8d60349B73379; address internal constant KYBERSWAP_ELASTIC_FRAX_USDC_OPTIMISM = 0x97cB76cbb84Aa35deaF1dAC3101a506588B6c197; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x31D982ebd82Ad900358984bd049207A4c2468640; + address internal constant REMOTEMINTREDEEMHOP = 0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A; } abstract contract AddressHelperOptimism is TestBase { @@ -3703,34 +3698,13 @@ abstract contract AddressHelperOptimism is TestBase { vm.label(0x6806411765Af15Bddd26f8f544A34cC40cb9838B, "Constants.OPTI_FRXETH"); vm.label(0x484c2D6e3cDd945a8B2DF735e079178C1036578c, "Constants.OPTI_SFRXETH"); vm.label(0x2Dd1B4D4548aCCeA497050619965f91f78b3b532, "Constants.OPTI_SFRAX"); - vm.label( - 0xb781FCaC4B8eF06891F9baD7dB9C178B1cE67967, - "Constants.OPTI_FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__OPTI_SIDE" - ); - vm.label( - 0xdF6B3b56B1668dA507Db58C64b7153756cfE8e67, - "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__OPTI_SIDE" - ); - vm.label( - 0x053F082f3bC0C48B8409970c017b4F2a6f673e16, - "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__OPTI_SIDE" - ); - vm.label( - 0xB84E29042Bfb489439949a79aed8a0e156169Ae5, - "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__OPTI_SIDE" - ); - vm.label( - 0xA4EFC2d768C9b9b0f97DD91a1555B345f69b39C0, - "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__OPTI_SIDE" - ); - vm.label( - 0x59b99CF08C01a6ADa0e0D819520719CA41B35c7C, - "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__OPTI_SIDE" - ); - vm.label( - 0xD1738eB733A636d1b8665f48bC8a24dA889c2562, - "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__OPTI_SIDE" - ); + vm.label(0xb781FCaC4B8eF06891F9baD7dB9C178B1cE67967, "Constants.OPTI_FRAXFERRY_V1__ETHEREUM_OPTIMISM__FRAX__OPTI_SIDE"); + vm.label(0xdF6B3b56B1668dA507Db58C64b7153756cfE8e67, "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FXS__OPTI_SIDE"); + vm.label(0x053F082f3bC0C48B8409970c017b4F2a6f673e16, "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPI__OPTI_SIDE"); + vm.label(0xB84E29042Bfb489439949a79aed8a0e156169Ae5, "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FPIS__OPTI_SIDE"); + vm.label(0xA4EFC2d768C9b9b0f97DD91a1555B345f69b39C0, "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__FRXETH__OPTI_SIDE"); + vm.label(0x59b99CF08C01a6ADa0e0D819520719CA41B35c7C, "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRXETH__OPTI_SIDE"); + vm.label(0xD1738eB733A636d1b8665f48bC8a24dA889c2562, "Constants.OPTI_FRAXFERRY_V2__ETHEREUM_OPTIMISM__SFRAX__OPTI_SIDE"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.OPTI_CAPTAIN"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.OPTI_FIRST_OFFICER"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.OPTI_CREWMEMBER"); @@ -3754,9 +3728,43 @@ abstract contract AddressHelperOptimism is TestBase { vm.label(0x8Acc8819cBB632dE4a8E732f08b9E578D2A8F635, "Constants.OPTI_FPI_COMPTROLLER"); vm.label(0x3da3153E26A230d918bb9F9428A8d60349B73379, "Constants.OPTI_CURVE_4POOL"); vm.label(0x97cB76cbb84Aa35deaF1dAC3101a506588B6c197, "Constants.OPTI_KYBERSWAP_ELASTIC_FRAX_USDC_OPTIMISM"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.OPTI_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.OPTI_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.OPTI_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.OPTI_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.OPTI_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.OPTI_WFRAXOFT"); + vm.label(0x31D982ebd82Ad900358984bd049207A4c2468640, "Constants.OPTI_REMOTEHOP"); + vm.label(0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A, "Constants.OPTI_REMOTEMINTREDEEMHOP"); } } +library Plumephoenix { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876; + address internal constant REMOTEMINTREDEEMHOP = 0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb; +} +abstract contract AddressHelperPlumephoenix is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.PLUME_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.PLUME_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.PLUME_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.PLUME_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.PLUME_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.PLUME_WFRAXOFT"); + vm.label(0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876, "Constants.PLUME_REMOTEHOP"); + vm.label(0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb, "Constants.PLUME_REMOTEMINTREDEEMHOP"); + } +} library Polygon { address internal constant FRAX = 0x45c32fA6DF82ead1e2EF74d17b76547EDdFaFF89; address internal constant FXS = 0x1a3acf6D19267E2d3e7f898f42803e90C9219062; @@ -3772,14 +3780,10 @@ library Polygon { address internal constant DUMMY_TKN = 0xC6525aC8fc37814Fd68216F1ea690b3dC2249e89; address internal constant FERRY_TO_ARBITRUM = 0xA621dC655fFBD0dB9cb2564529324E5750f2A4F0; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; - address internal constant FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__POLY_SIDE = - 0x6f7F18C15B97dC9Fac48Ae7F986989F97D25dbc7; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__POLY_SIDE = - 0x2760a93993BaA3BC4d7C209db000d4685bdAD6B1; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__POLY_SIDE = - 0x6f71Ea0e9679389854010eE48a7D237cB430DBA4; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__POLY_SIDE = - 0x6728b24B4a4C42cabEe14a2BdFDc51271aa3Ae63; + address internal constant FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__POLY_SIDE = 0x6f7F18C15B97dC9Fac48Ae7F986989F97D25dbc7; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__POLY_SIDE = 0x2760a93993BaA3BC4d7C209db000d4685bdAD6B1; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__POLY_SIDE = 0x6f71Ea0e9679389854010eE48a7D237cB430DBA4; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__POLY_SIDE = 0x6728b24B4a4C42cabEe14a2BdFDc51271aa3Ae63; address internal constant COMBO_ORACLE = 0xAfe0C8318B67Ea8461350ABf7Bc82E5ce9Cf11D3; address internal constant COMBO_ORACLE_UNIV2_UNIV3 = 0x86Cffe1fE0C09A0815Fe4Fd21956D24Af5ba4020; address internal constant COMBO_ORACLE_KYBERSWAP_ELASTIC_V2 = 0xfBCB0F967817c924f83e26e04F0FB28ED4d6276F; @@ -3803,6 +3807,14 @@ library Polygon { address internal constant DYSTOPIA_VOLATILEV1_AMM___FXS_FRAX = 0xfC2e89aabD257471a461dd506188609B2Bec53Fa; address internal constant FRAX3POOL = 0x5e5A23b52Cb48F5E70271Be83079cA5bC9c9e9ac; address internal constant HOP_LP_USDC = 0x9D373d22FD091d7f9A6649EB067557cc12Fb1A0A; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xf74D38A26948E9DDa53eD85cF03C6b1188FbB30C; + address internal constant REMOTEMINTREDEEMHOP = 0x5658e82E330e094627D9b362ed0E137eA06673C4; } abstract contract AddressHelperPolygon is TestBase { @@ -3825,22 +3837,10 @@ abstract contract AddressHelperPolygon is TestBase { vm.label(0xC6525aC8fc37814Fd68216F1ea690b3dC2249e89, "Constants.POLY_DUMMY_TKN"); vm.label(0xA621dC655fFBD0dB9cb2564529324E5750f2A4F0, "Constants.POLY_FERRY_TO_ARBITRUM"); vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLY_FIRST_OFFICER"); - vm.label( - 0x6f7F18C15B97dC9Fac48Ae7F986989F97D25dbc7, - "Constants.POLY_FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__POLY_SIDE" - ); - vm.label( - 0x2760a93993BaA3BC4d7C209db000d4685bdAD6B1, - "Constants.POLY_FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__POLY_SIDE" - ); - vm.label( - 0x6f71Ea0e9679389854010eE48a7D237cB430DBA4, - "Constants.POLY_FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__POLY_SIDE" - ); - vm.label( - 0x6728b24B4a4C42cabEe14a2BdFDc51271aa3Ae63, - "Constants.POLY_FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__POLY_SIDE" - ); + vm.label(0x6f7F18C15B97dC9Fac48Ae7F986989F97D25dbc7, "Constants.POLY_FRAXFERRY_V1__ETHEREUM_POLYGON__FRAX__POLY_SIDE"); + vm.label(0x2760a93993BaA3BC4d7C209db000d4685bdAD6B1, "Constants.POLY_FRAXFERRY_V2__ETHEREUM_POLYGON__FRXETH__POLY_SIDE"); + vm.label(0x6f71Ea0e9679389854010eE48a7D237cB430DBA4, "Constants.POLY_FRAXFERRY_V2__ETHEREUM_POLYGON__FXS__POLY_SIDE"); + vm.label(0x6728b24B4a4C42cabEe14a2BdFDc51271aa3Ae63, "Constants.POLY_FRAXFERRY_V2__ETHEREUM_POLYGON__SFRXETH__POLY_SIDE"); vm.label(0xAfe0C8318B67Ea8461350ABf7Bc82E5ce9Cf11D3, "Constants.POLY_COMBO_ORACLE"); vm.label(0x86Cffe1fE0C09A0815Fe4Fd21956D24Af5ba4020, "Constants.POLY_COMBO_ORACLE_UNIV2_UNIV3"); vm.label(0xfBCB0F967817c924f83e26e04F0FB28ED4d6276F, "Constants.POLY_COMBO_ORACLE_KYBERSWAP_ELASTIC_V2"); @@ -3864,9 +3864,16 @@ abstract contract AddressHelperPolygon is TestBase { vm.label(0xfC2e89aabD257471a461dd506188609B2Bec53Fa, "Constants.POLY_DYSTOPIA_VOLATILEV1_AMM___FXS_FRAX"); vm.label(0x5e5A23b52Cb48F5E70271Be83079cA5bC9c9e9ac, "Constants.POLY_FRAX3POOL"); vm.label(0x9D373d22FD091d7f9A6649EB067557cc12Fb1A0A, "Constants.POLY_HOP_LP_USDC"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.POLY_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.POLY_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.POLY_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.POLY_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.POLY_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.POLY_WFRAXOFT"); + vm.label(0xf74D38A26948E9DDa53eD85cF03C6b1188FbB30C, "Constants.POLY_REMOTEHOP"); + vm.label(0x5658e82E330e094627D9b362ed0E137eA06673C4, "Constants.POLY_REMOTEMINTREDEEMHOP"); } } - library PolygonzkEVM { address internal constant FRAX = 0xFf8544feD5379D9ffa8D47a74cE6b91e632AC44D; address internal constant FXS = 0x6b856a14CeA1d7dCfaF80fA6936c0b75972cCacE; @@ -3875,25 +3882,26 @@ library PolygonzkEVM { address internal constant FRXETH = 0xCf7eceE185f19e2E970a301eE37F93536ed66179; address internal constant SFRXETH = 0x7c2aF1Fb79D0b1c67d4eb802d44C673D0A1D2C04; address internal constant SFRAX = 0x2C37fb628b35dfdFD515d41B0cAAe11B542773C3; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__POLYZKEVM_SIDE = - 0xEaBd7625056bbD2c260f90D0B08759C69d971a5B; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__POLYZKEVM_SIDE = - 0x96720C1E893bB69C14291d8a85475ED9BC484b26; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__POLYZKEVM_SIDE = - 0xA31001fbe938C520C27204b984817d998bAeA885; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__POLYZKEVM_SIDE = - 0x3d1bc21F8991091538FfEf535Fe96A449794461C; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__POLYZKEVM_SIDE = - 0xA711F85672899331900359e5b89848A30BeEBDBe; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__POLYZKEVM_SIDE = - 0x4DB406906835ca0B28bFbef344c7d2C707BC4947; - address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__POLYZKEVM_SIDE = - 0xE30521fe7f3bEB6Ad556887b50739d6C7CA667E6; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__POLYZKEVM_SIDE = 0xEaBd7625056bbD2c260f90D0B08759C69d971a5B; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__POLYZKEVM_SIDE = 0x96720C1E893bB69C14291d8a85475ED9BC484b26; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__POLYZKEVM_SIDE = 0xA31001fbe938C520C27204b984817d998bAeA885; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__POLYZKEVM_SIDE = 0x3d1bc21F8991091538FfEf535Fe96A449794461C; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__POLYZKEVM_SIDE = 0xA711F85672899331900359e5b89848A30BeEBDBe; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__POLYZKEVM_SIDE = 0x4DB406906835ca0B28bFbef344c7d2C707BC4947; + address internal constant FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__POLYZKEVM_SIDE = 0xE30521fe7f3bEB6Ad556887b50739d6C7CA667E6; address internal constant CAPTAIN = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant FIRST_OFFICER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant COMBO_ORACLE = 0x030BD43af99cb72B51dA233A73F7697Cd2461C0b; address internal constant COMBO_ORACLE_UNIV2_UNIV3 = 0x967d0c5f7362A54b156cf2831Fb17dA8681FAD7D; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x111ddab65Af5fF96b674400246699ED40F550De1; + address internal constant REMOTEMINTREDEEMHOP = 0xc71BF5Ee4740405030eF521F18A96eA14fec802D; } abstract contract AddressHelperPolygonzkEVM is TestBase { @@ -3902,45 +3910,208 @@ abstract contract AddressHelperPolygonzkEVM is TestBase { } function labelConstants() public { - vm.label(0xFf8544feD5379D9ffa8D47a74cE6b91e632AC44D, "Constants.POLYZKEVM_FRAX"); - vm.label(0x6b856a14CeA1d7dCfaF80fA6936c0b75972cCacE, "Constants.POLYZKEVM_FXS"); - vm.label(0x7E5845b1bFc9e6620893e48346bdB8541995a8D9, "Constants.POLYZKEVM_FPI"); - vm.label(0xdE7df9036801676aF0cB73661d93a098c0085fba, "Constants.POLYZKEVM_FPIS"); - vm.label(0xCf7eceE185f19e2E970a301eE37F93536ed66179, "Constants.POLYZKEVM_FRXETH"); - vm.label(0x7c2aF1Fb79D0b1c67d4eb802d44C673D0A1D2C04, "Constants.POLYZKEVM_SFRXETH"); - vm.label(0x2C37fb628b35dfdFD515d41B0cAAe11B542773C3, "Constants.POLYZKEVM_SFRAX"); - vm.label( - 0xEaBd7625056bbD2c260f90D0B08759C69d971a5B, - "Constants.POLYZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__POLYZKEVM_SIDE" - ); - vm.label( - 0x96720C1E893bB69C14291d8a85475ED9BC484b26, - "Constants.POLYZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__POLYZKEVM_SIDE" - ); - vm.label( - 0xA31001fbe938C520C27204b984817d998bAeA885, - "Constants.POLYZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__POLYZKEVM_SIDE" - ); - vm.label( - 0x3d1bc21F8991091538FfEf535Fe96A449794461C, - "Constants.POLYZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__POLYZKEVM_SIDE" - ); - vm.label( - 0xA711F85672899331900359e5b89848A30BeEBDBe, - "Constants.POLYZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__POLYZKEVM_SIDE" - ); - vm.label( - 0x4DB406906835ca0B28bFbef344c7d2C707BC4947, - "Constants.POLYZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__POLYZKEVM_SIDE" - ); - vm.label( - 0xE30521fe7f3bEB6Ad556887b50739d6C7CA667E6, - "Constants.POLYZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__POLYZKEVM_SIDE" - ); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLYZKEVM_CAPTAIN"); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLYZKEVM_FIRST_OFFICER"); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLYZKEVM_CREWMEMBER"); - vm.label(0x030BD43af99cb72B51dA233A73F7697Cd2461C0b, "Constants.POLYZKEVM_COMBO_ORACLE"); - vm.label(0x967d0c5f7362A54b156cf2831Fb17dA8681FAD7D, "Constants.POLYZKEVM_COMBO_ORACLE_UNIV2_UNIV3"); + vm.label(0xFf8544feD5379D9ffa8D47a74cE6b91e632AC44D, "Constants.POLY_ZKEVM_FRAX"); + vm.label(0x6b856a14CeA1d7dCfaF80fA6936c0b75972cCacE, "Constants.POLY_ZKEVM_FXS"); + vm.label(0x7E5845b1bFc9e6620893e48346bdB8541995a8D9, "Constants.POLY_ZKEVM_FPI"); + vm.label(0xdE7df9036801676aF0cB73661d93a098c0085fba, "Constants.POLY_ZKEVM_FPIS"); + vm.label(0xCf7eceE185f19e2E970a301eE37F93536ed66179, "Constants.POLY_ZKEVM_FRXETH"); + vm.label(0x7c2aF1Fb79D0b1c67d4eb802d44C673D0A1D2C04, "Constants.POLY_ZKEVM_SFRXETH"); + vm.label(0x2C37fb628b35dfdFD515d41B0cAAe11B542773C3, "Constants.POLY_ZKEVM_SFRAX"); + vm.label(0xEaBd7625056bbD2c260f90D0B08759C69d971a5B, "Constants.POLY_ZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRAX__POLYZKEVM_SIDE"); + vm.label(0x96720C1E893bB69C14291d8a85475ED9BC484b26, "Constants.POLY_ZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FXS__POLYZKEVM_SIDE"); + vm.label(0xA31001fbe938C520C27204b984817d998bAeA885, "Constants.POLY_ZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPI__POLYZKEVM_SIDE"); + vm.label(0x3d1bc21F8991091538FfEf535Fe96A449794461C, "Constants.POLY_ZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FPIS__POLYZKEVM_SIDE"); + vm.label(0xA711F85672899331900359e5b89848A30BeEBDBe, "Constants.POLY_ZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__FRXETH__POLYZKEVM_SIDE"); + vm.label(0x4DB406906835ca0B28bFbef344c7d2C707BC4947, "Constants.POLY_ZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRXETH__POLYZKEVM_SIDE"); + vm.label(0xE30521fe7f3bEB6Ad556887b50739d6C7CA667E6, "Constants.POLY_ZKEVM_FRAXFERRY_V2__ETHEREUM_POLYGON_ZKEVM__SFRAX__POLYZKEVM_SIDE"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLY_ZKEVM_CAPTAIN"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLY_ZKEVM_FIRST_OFFICER"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLY_ZKEVM_CREWMEMBER"); + vm.label(0x030BD43af99cb72B51dA233A73F7697Cd2461C0b, "Constants.POLY_ZKEVM_COMBO_ORACLE"); + vm.label(0x967d0c5f7362A54b156cf2831Fb17dA8681FAD7D, "Constants.POLY_ZKEVM_COMBO_ORACLE_UNIV2_UNIV3"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.POLY_ZKEVM_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.POLY_ZKEVM_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.POLY_ZKEVM_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.POLY_ZKEVM_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.POLY_ZKEVM_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.POLY_ZKEVM_WFRAXOFT"); + vm.label(0x111ddab65Af5fF96b674400246699ED40F550De1, "Constants.POLY_ZKEVM_REMOTEHOP"); + vm.label(0xc71BF5Ee4740405030eF521F18A96eA14fec802D, "Constants.POLY_ZKEVM_REMOTEMINTREDEEMHOP"); + } +} +library Scroll { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xf6f45ccb5e85d1400067ee66f9e168f83e86124e; + address internal constant REMOTEMINTREDEEMHOP = 0x91DDB0E0C36B901C6BF53B9Eb5ACa0Eb1465F558; +} + +abstract contract AddressHelperScroll is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.SCROLL_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.SCROLL_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.SCROLL_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.SCROLL_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.SCROLL_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.SCROLL_WFRAXOFT"); + vm.label(0xf6f45ccb5e85d1400067ee66f9e168f83e86124e, "Constants.SCROLL_REMOTEHOP"); + vm.label(0x91DDB0E0C36B901C6BF53B9Eb5ACa0Eb1465F558, "Constants.SCROLL_REMOTEMINTREDEEMHOP"); + } +} +library Solana { + string internal constant FPIOFT = "8xKX8CRH9LxriRUNCPittu1jiovyQQr4EonWQjHZjWyH"; + string internal constant FRXETHOFT = "5sDrwVNiHMM2jC78hRBH1CtysDQYiNKihubgW2zNu8tf"; + string internal constant FRXUSDOFT = "GzX1ireZDU865FiMaKrdVB1H6AE8LAqWYCg6chrMrfBw"; + string internal constant SFRXETHOFT = "58zpC9acE6F4FBtd88L64NoWHJcmzLsQSy5bjz35Ydgv"; + string internal constant SFRXUSDOFT = "DUvWQMyASSkLNJFwsMDA4kwxEvmfaqpPGrvUVKtitX45"; + string internal constant WFRAXOFT = "zZbQjiRg8uSxZaPu996XuviuZeSY6nsaMuutKZQBJga"; + bytes32 internal constant FPIOFT_BYTES32 = 0xd3cee058686107cc51844f331ee213a33142ab299b5ce473c1cf3a8ddaa721a0; + bytes32 internal constant FRXETHOFT_BYTES32 = 0x38dd9e11bbf63835dc61d3cbf259f4221f5987ac92982c96609b99634662dfb3; + bytes32 internal constant FRXUSDOFT_BYTES32 = 0x5e208a73d5bb1c78e9dbf53badd7299afd6bee9acacdcd4fd668833e53c538ad; + bytes32 internal constant SFRXETHOFT_BYTES32 = 0xbf2f1fc27286a43f25b05bd843a74a5478c4246343fa90c1fcb641a1caf46c61; + bytes32 internal constant SFRXUSDOFT_BYTES32 = 0x8602f005ca65b6da46a3c6ce66ecd1d15be911ca650d5f418d369df184b584cf; + bytes32 internal constant WFRAXOFT_BYTES32 = 0x4939035f8dd13d15a9386e28b6705519aa6f488791323466a3c0116a201e51aa; +} +library Sonic { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x3A5cDA3Ac66Aa80573402610c94B74eD6cdb2F23; + address internal constant REMOTEMINTREDEEMHOP = 0xf6115Bb9b6A4b3660dA409cB7afF1fb773efaD0b; +} + +abstract contract AddressHelperSonic is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.SONIC_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.SONIC_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.SONIC_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.SONIC_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.SONIC_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.SONIC_WFRAXOFT"); + vm.label(0x3A5cDA3Ac66Aa80573402610c94B74eD6cdb2F23, "Constants.SONIC_REMOTEHOP"); + vm.label(0xf6115Bb9b6A4b3660dA409cB7afF1fb773efaD0b, "Constants.SONIC_REMOTEMINTREDEEMHOP"); + } +} +library Unichain { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xc71BF5Ee4740405030eF521F18A96eA14fec802D; + address internal constant REMOTEMINTREDEEMHOP = 0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263; +} + +abstract contract AddressHelperUnichain is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.UNI_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.UNI_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.UNI_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.UNI_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.UNI_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.UNI_WFRAXOFT"); + vm.label(0xc71BF5Ee4740405030eF521F18A96eA14fec802D, "Constants.UNI_REMOTEHOP"); + vm.label(0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263, "Constants.UNI_REMOTEMINTREDEEMHOP"); + } +} +library Worldchain { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x938d99A81814f66b01010d19DDce92A633441699; + address internal constant REMOTEMINTREDEEMHOP = 0x111ddab65Af5fF96b674400246699ED40F550De1; +} + +abstract contract AddressHelperWorldchain is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.WRLD_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.WRLD_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.WRLD_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.WRLD_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.WRLD_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.WRLD_WFRAXOFT"); + vm.label(0x938d99A81814f66b01010d19DDce92A633441699, "Constants.WRLD_REMOTEHOP"); + vm.label(0x111ddab65Af5fF96b674400246699ED40F550De1, "Constants.WRLD_REMOTEMINTREDEEMHOP"); + } +} +library XLayer { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x79152c303AD5aE429eDefa4553CB1Ad2c6EE1396; + address internal constant REMOTEMINTREDEEMHOP = 0x45c6852a5188ce1905567ea83454329bd4982007; +} + +abstract contract AddressHelperXLayer is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.XLAYER_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.XLAYER_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.XLAYER_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.XLAYER_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.XLAYER_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.XLAYER_WFRAXOFT"); + vm.label(0x79152c303AD5aE429eDefa4553CB1Ad2c6EE1396, "Constants.XLAYER_REMOTEHOP"); + vm.label(0x45c6852a5188ce1905567ea83454329bd4982007, "Constants.XLAYER_REMOTEMINTREDEEMHOP"); + } +} +library ZkSync { + address internal constant FPIOFT = 0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E; + address internal constant FRXETHOFT = 0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440; + address internal constant FRXUSDOFT = 0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d; + address internal constant SFRXETHOFT = 0xFD78FD3667DeF2F1097Ed221ec503AE477155394; + address internal constant SFRXUSDOFT = 0x9F87fbb47C33Cd0614E43500b9511018116F79eE; + address internal constant WFRAXOFT = 0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F; + address internal constant REMOTEHOP = 0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb; + address internal constant REMOTEMINTREDEEMHOP = 0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b; +} + +abstract contract AddressHelperZkSync is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E, "Constants.undefined_FPIOFT"); + vm.label(0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440, "Constants.undefined_FRXETHOFT"); + vm.label(0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d, "Constants.undefined_FRXUSDOFT"); + vm.label(0xFD78FD3667DeF2F1097Ed221ec503AE477155394, "Constants.undefined_SFRXETHOFT"); + vm.label(0x9F87fbb47C33Cd0614E43500b9511018116F79eE, "Constants.undefined_SFRXUSDOFT"); + vm.label(0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F, "Constants.undefined_WFRAXOFT"); + vm.label(0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb, "Constants.undefined_REMOTEHOP"); + vm.label(0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b, "Constants.undefined_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/Abstract.sol b/src/contracts/chain-constants/Abstract.sol new file mode 100644 index 0000000..667a76a --- /dev/null +++ b/src/contracts/chain-constants/Abstract.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Abstract { + address internal constant FPIOFT = 0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E; + address internal constant FRXETHOFT = 0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440; + address internal constant FRXUSDOFT = 0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d; + address internal constant SFRXETHOFT = 0xFD78FD3667DeF2F1097Ed221ec503AE477155394; + address internal constant SFRXUSDOFT = 0x9F87fbb47C33Cd0614E43500b9511018116F79eE; + address internal constant WFRAXOFT = 0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F; + address internal constant REMOTEHOP = 0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb; + address internal constant REMOTEMINTREDEEMHOP = 0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b; +} + +abstract contract AddressHelperAbstract is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E, "Constants.ABS_FPIOFT"); + vm.label(0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440, "Constants.ABS_FRXETHOFT"); + vm.label(0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d, "Constants.ABS_FRXUSDOFT"); + vm.label(0xFD78FD3667DeF2F1097Ed221ec503AE477155394, "Constants.ABS_SFRXETHOFT"); + vm.label(0x9F87fbb47C33Cd0614E43500b9511018116F79eE, "Constants.ABS_SFRXUSDOFT"); + vm.label(0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F, "Constants.ABS_WFRAXOFT"); + vm.label(0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb, "Constants.ABS_REMOTEHOP"); + vm.label(0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b, "Constants.ABS_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Aptos.sol b/src/contracts/chain-constants/Aptos.sol new file mode 100644 index 0000000..16594db --- /dev/null +++ b/src/contracts/chain-constants/Aptos.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Aptos { + bytes32 internal constant FPI = 0x15607151cc023512886f5af24d4f77e6e7a5d6fb8a482dfb56b9c4f5c1fca0b2; + bytes32 internal constant FRXETH = 0x8645126a60d36e138d435a28875a2aeef253bf80aae22bebcd411ad4251f1585; + bytes32 internal constant FRXUSD = 0xe4354602aa4311f36240dd57f3f3435ffccdbd0cd2963f1a69da39a2dbcd59b5; + bytes32 internal constant SFRXETH = 0x80d729c4632bcc6279b7bed2542e01e2cebd34ca9f3f15963c29d1621efc221a; + bytes32 internal constant SFRXUSD = 0xbf2efbffbbd7083aaf006379d96b866b73bb4eb9684a7504c62feafe670962c2; + bytes32 internal constant WFRAX = 0x4e4cce8f877d7ad45c896c1823017fe07874f3d8db6e15960eda26e211151300; + bytes32 internal constant FPIOFT = 0xadf0ffffa5ee44a94f0c65be05e701951e65e276419f7460286a139d9403e864; + bytes32 internal constant FRXETHOFT = 0xecb3a766f12981919158fc8ec3b98dd3f8b39a59280e62e80c600cea1b2c0f9c; + bytes32 internal constant FRXUSDOFT = 0xe067037681385b86d8344e6b7746023604c6ac90ddc997ba3c58396c258ad17b; + bytes32 internal constant SFRXETHOFT = 0x28b7264258592031a024ed8e1632090648ec53797c269ac91aa0c9ed94268356; + bytes32 internal constant SFRXUSDOFT = 0xc9bdfdc965bb7fcdcfa6b45870eab33bfaf8f4e8e3f6b89d3e0203aba634a1c9; + bytes32 internal constant WFRAXOFT = 0x267749b1a80d9d582019e6b0572c1dbc98648e24101b0861395cdbed095ceff2; +} diff --git a/src/contracts/chain-constants/Arbitrum.sol b/src/contracts/chain-constants/Arbitrum.sol index 650bd86..0535107 100644 --- a/src/contracts/chain-constants/Arbitrum.sol +++ b/src/contracts/chain-constants/Arbitrum.sol @@ -149,6 +149,14 @@ library Arbitrum { address internal constant USDPLUSFRAXBP_POOL = 0xb34a7d1444a707349Bc7b981B7F2E1f20F81F013; address internal constant VECHR = 0x9A01857f33aa382b1d5bb96C3180347862432B0d; address internal constant VERAM = 0xAAA343032aA79eE9a6897Dab03bef967c3289a06; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x29F5DBD0FE72d8f11271FCBE79Cb87E18a83C70A; + address internal constant REMOTEMINTREDEEMHOP = 0xa46A266dCBf199a71532c76967e200994C5A0D6d; } abstract contract AddressHelperArbitrum is TestBase { @@ -314,5 +322,13 @@ abstract contract AddressHelperArbitrum is TestBase { vm.label(0xb34a7d1444a707349Bc7b981B7F2E1f20F81F013, "Constants.ARBI_USDPLUSFRAXBP_POOL"); vm.label(0x9A01857f33aa382b1d5bb96C3180347862432B0d, "Constants.ARBI_VECHR"); vm.label(0xAAA343032aA79eE9a6897Dab03bef967c3289a06, "Constants.ARBI_VERAM"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.ARBI_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.ARBI_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.ARBI_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.ARBI_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.ARBI_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.ARBI_WFRAXOFT"); + vm.label(0x29F5DBD0FE72d8f11271FCBE79Cb87E18a83C70A, "Constants.ARBI_REMOTEHOP"); + vm.label(0xa46A266dCBf199a71532c76967e200994C5A0D6d, "Constants.ARBI_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/Aurora.sol b/src/contracts/chain-constants/Aurora.sol new file mode 100644 index 0000000..8b3cc80 --- /dev/null +++ b/src/contracts/chain-constants/Aurora.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Aurora { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x53e36C8380Ff62D7964BFa4868A0045E58A52344; + address internal constant REMOTEMINTREDEEMHOP = 0x8EbB34b1880B2EA5e458082590B3A2c9Ea7C41A2; +} + +abstract contract AddressHelperAurora is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.AUR_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.AUR_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.AUR_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.AUR_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.AUR_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.AUR_WFRAXOFT"); + vm.label(0x53e36C8380Ff62D7964BFa4868A0045E58A52344, "Constants.AUR_REMOTEHOP"); + vm.label(0x8EbB34b1880B2EA5e458082590B3A2c9Ea7C41A2, "Constants.AUR_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Avalanche.sol b/src/contracts/chain-constants/Avalanche.sol index 8892e62..9161240 100644 --- a/src/contracts/chain-constants/Avalanche.sol +++ b/src/contracts/chain-constants/Avalanche.sol @@ -58,6 +58,14 @@ library Avalanche { address internal constant PANGOLIN_CANFRAX_WAVAX = 0x0CE543c0f81ac9AAa665cCaAe5EeC70861a6b559; address internal constant PANGOLIN_CANFXS_USDC_E = 0x8614F7ca1f4b08Ef2C158a3027EA55fAA8384aC8; address internal constant TRADER_JOE_FRAX_WAVAX = 0x0d84595e8638dBc631076c51000B2d31120D8aa1; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A; + address internal constant REMOTEMINTREDEEMHOP = 0x452420df4AC1e3db5429b5FD629f3047482C543C; } abstract contract AddressHelperAvalanche is TestBase { @@ -132,5 +140,13 @@ abstract contract AddressHelperAvalanche is TestBase { vm.label(0x0CE543c0f81ac9AAa665cCaAe5EeC70861a6b559, "Constants.AVAX_PANGOLIN_CANFRAX_WAVAX"); vm.label(0x8614F7ca1f4b08Ef2C158a3027EA55fAA8384aC8, "Constants.AVAX_PANGOLIN_CANFXS_USDC_E"); vm.label(0x0d84595e8638dBc631076c51000B2d31120D8aa1, "Constants.AVAX_TRADER_JOE_FRAX_WAVAX"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.AVAX_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.AVAX_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.AVAX_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.AVAX_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.AVAX_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.AVAX_WFRAXOFT"); + vm.label(0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A, "Constants.AVAX_REMOTEHOP"); + vm.label(0x452420df4AC1e3db5429b5FD629f3047482C543C, "Constants.AVAX_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/BSC.sol b/src/contracts/chain-constants/BSC.sol index e0cef38..7a81b6d 100644 --- a/src/contracts/chain-constants/BSC.sol +++ b/src/contracts/chain-constants/BSC.sol @@ -48,6 +48,14 @@ library BSC { address internal constant APESWAP_CANFRAX_USDC = 0x885BE9bCbCdcB70c59F56A78ae64A820e0448589; address internal constant APESWAP_CANFXS_USDC = 0x84f2781E4E60f97D2963260A7b20D883F04F0d20; address internal constant SADDLE_FRAX_BUSD = 0xBD0091CC77Fd3bDb620985a1dD8D3f94E071CCE3; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x452420df4AC1e3db5429b5FD629f3047482C543C; + address internal constant REMOTEMINTREDEEMHOP = 0xdee45510b42Cb0678C8A61D043C698aF66b0d852; } abstract contract AddressHelperBSC is TestBase { @@ -56,61 +64,75 @@ abstract contract AddressHelperBSC is TestBase { } function labelConstants() public { - vm.label(0x90C97F71E18723b0Cf0dfa30ee176Ab653E89F40, "Constants.BSC_FRAX"); - vm.label(0xe48A3d7d0Bc88d552f730B62c006bC925eadB9eE, "Constants.BSC_FXS"); - vm.label(0x2Dd1B4D4548aCCeA497050619965f91f78b3b532, "Constants.BSC_FPI"); - vm.label(0xD1738eB733A636d1b8665f48bC8a24dA889c2562, "Constants.BSC_FPIS"); - vm.label(0x64048A7eEcF3a2F1BA9e144aAc3D7dB6e58F555e, "Constants.BSC_FRXETH"); - vm.label(0x3Cd55356433C89E50DC51aB07EE0fa0A95623D53, "Constants.BSC_SFRXETH"); - vm.label(0xa63f56985F9C7F3bc9fFc5685535649e0C1a55f3, "Constants.BSC_SFRAX"); - vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.BSC_APESWAP_CANFRAX_BUSD"); - vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.BSC_APESWAP_CANFXS_WBNB"); - vm.label(0x5e1F728C0123f7e8B237F61D0105bf9CBd8867B5, "Constants.BSC_IMPOSSIBLE_FRAX_IF"); - vm.label(0x5BE579e5fFF39a958E6269C6D011cd5f21e2cc32, "Constants.BSC_IMPOSSIBLE_FRAX_FXS"); - vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.BSC_PLANET_FINANCE_FRAX_LENDING"); + vm.label(0x90C97F71E18723b0Cf0dfa30ee176Ab653E89F40, "Constants.undefined_FRAX"); + vm.label(0xe48A3d7d0Bc88d552f730B62c006bC925eadB9eE, "Constants.undefined_FXS"); + vm.label(0x2Dd1B4D4548aCCeA497050619965f91f78b3b532, "Constants.undefined_FPI"); + vm.label(0xD1738eB733A636d1b8665f48bC8a24dA889c2562, "Constants.undefined_FPIS"); + vm.label(0x64048A7eEcF3a2F1BA9e144aAc3D7dB6e58F555e, "Constants.undefined_FRXETH"); + vm.label(0x3Cd55356433C89E50DC51aB07EE0fa0A95623D53, "Constants.undefined_SFRXETH"); + vm.label(0xa63f56985F9C7F3bc9fFc5685535649e0C1a55f3, "Constants.undefined_SFRAX"); + vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.undefined_APESWAP_CANFRAX_BUSD"); + vm.label(0x5c8D727b265DBAfaba67E050f2f739cAeEB4A6F9, "Constants.undefined_APESWAP_CANFXS_WBNB"); + vm.label(0x5e1F728C0123f7e8B237F61D0105bf9CBd8867B5, "Constants.undefined_IMPOSSIBLE_FRAX_IF"); + vm.label(0x5BE579e5fFF39a958E6269C6D011cd5f21e2cc32, "Constants.undefined_IMPOSSIBLE_FRAX_FXS"); + vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.undefined_PLANET_FINANCE_FRAX_LENDING"); vm.label( 0x10Ef54F944639764d2d5Efa272262f06cfaF09AE, - "Constants.BSC_FRAXFERRY_V1__ETHEREUM_BSC__FRAX__BSC_SIDE" + "Constants.undefined_FRAXFERRY_V1__ETHEREUM_BSC__FRAX__BSC_SIDE" + ); + vm.label( + 0x5CD3d6465cd21b645F15175840f4659228C6195c, + "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FXS__BSC_SIDE" + ); + vm.label( + 0x1B01514A2B3CdEf16fD3c680a818A0Ab97Da8a09, + "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FPI__BSC_SIDE" ); - vm.label(0x5CD3d6465cd21b645F15175840f4659228C6195c, "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FXS__BSC_SIDE"); - vm.label(0x1B01514A2B3CdEf16fD3c680a818A0Ab97Da8a09, "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FPI__BSC_SIDE"); vm.label( 0x0248940C22D2586450dd5145E81B7Fc0CA4Dd4a2, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FPIS__BSC_SIDE" + "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FPIS__BSC_SIDE" ); vm.label( 0xB7C974530e59017DF7FA06b1EBD9e8a1E9aceC29, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__BSC_SIDE" + "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__FRXETH__BSC_SIDE" ); vm.label( 0x612015939f70C87E2041cc5daD909101c1A2383F, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__BSC_SIDE" + "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__SFRXETH__BSC_SIDE" ); vm.label( 0x5E8422345238F34275888049021821E8E08CAa1f, - "Constants.BSC_FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__BSC_SIDE" + "Constants.undefined_FRAXFERRY_V2__ETHEREUM_BSC__SFRAX__BSC_SIDE" ); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.BSC_CAPTAIN"); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.BSC_FIRST_OFFICER"); - vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.BSC_CREWMEMBER"); - vm.label(0x1B3C6BdEACdc4DD9B0C8E3e2Fd222b4581a52A1A, "Constants.BSC_COMBO_ORACLE"); - vm.label(0x8159D9CD28B7A140Fd92311C1E5c667d97176727, "Constants.BSC_COMBO_ORACLE_UNIV2_UNIV3"); - vm.label(0xa007a9716dba05289df85A90d0Fd9D39BEE808dE, "Constants.BSC_FRAXSWAP_FACTORY_V1"); - vm.label(0xf89e6CA06121B6d4370f4B196Ae458e8b969A011, "Constants.BSC_FRAXSWAP_FACTORY_V2"); - vm.label(0x0000000000000000000000000000000000000000, "Constants.BSC_FRAXSWAP_ROUTER_MULTI_HOP"); - vm.label(0x0AE84c1A6E142Ed90f8A35a7E7B216CB25469E37, "Constants.BSC_FRAXSWAP_ROUTER_V1"); - vm.label(0x67F755137E0AE2a2aa0323c047715Bf6523116E5, "Constants.BSC_FRAXSWAP_ROUTER_V2"); - vm.label(0xC86B106F76ef5b9A085071365eD5355592A7aFa4, "Constants.BSC_FRAXSWAP_V1_FRAX_FXS"); - vm.label(0x84eE532a0d4238f5fC4a1E8c043f8749eD4F274D, "Constants.BSC_FRAXSWAP_V1_FRAX_WBNB"); - vm.label(0xF51709f61447E2647528CCC9030d6FE492C30D63, "Constants.BSC_FRAXSWAP_V2_FRAX_FXS"); - vm.label(0x14732123c443f8E815D5c64f3C7ecb63bCeEab74, "Constants.BSC_FRAXSWAP_V2_FRAX_WBNB"); - vm.label(0x8811Da0385cCf1848B21475A42eA4D07Fc5d964a, "Constants.BSC_COMPTROLLER"); - vm.label(0x49f9cbf5333d8e50c9BE76c775777DB2ACb1d456, "Constants.BSC_FPI_COMPTROLLER"); - vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.BSC_GFRAX"); - vm.label(0x489c8fF79245f14AEEE9520d28209844790cB979, "Constants.BSC_APESWAP_CANFRAX_CANFXS"); - vm.label(0x16BDb03E6074759943149eBB1526DDfD1AA5fc56, "Constants.BSC_APESWAP_CANFRAX_WBNB"); - vm.label(0x885BE9bCbCdcB70c59F56A78ae64A820e0448589, "Constants.BSC_APESWAP_CANFRAX_USDC"); - vm.label(0x84f2781E4E60f97D2963260A7b20D883F04F0d20, "Constants.BSC_APESWAP_CANFXS_USDC"); - vm.label(0xBD0091CC77Fd3bDb620985a1dD8D3f94E071CCE3, "Constants.BSC_SADDLE_FRAX_BUSD"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.undefined_CAPTAIN"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.undefined_FIRST_OFFICER"); + vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.undefined_CREWMEMBER"); + vm.label(0x1B3C6BdEACdc4DD9B0C8E3e2Fd222b4581a52A1A, "Constants.undefined_COMBO_ORACLE"); + vm.label(0x8159D9CD28B7A140Fd92311C1E5c667d97176727, "Constants.undefined_COMBO_ORACLE_UNIV2_UNIV3"); + vm.label(0xa007a9716dba05289df85A90d0Fd9D39BEE808dE, "Constants.undefined_FRAXSWAP_FACTORY_V1"); + vm.label(0xf89e6CA06121B6d4370f4B196Ae458e8b969A011, "Constants.undefined_FRAXSWAP_FACTORY_V2"); + vm.label(0x0000000000000000000000000000000000000000, "Constants.undefined_FRAXSWAP_ROUTER_MULTI_HOP"); + vm.label(0x0AE84c1A6E142Ed90f8A35a7E7B216CB25469E37, "Constants.undefined_FRAXSWAP_ROUTER_V1"); + vm.label(0x67F755137E0AE2a2aa0323c047715Bf6523116E5, "Constants.undefined_FRAXSWAP_ROUTER_V2"); + vm.label(0xC86B106F76ef5b9A085071365eD5355592A7aFa4, "Constants.undefined_FRAXSWAP_V1_FRAX_FXS"); + vm.label(0x84eE532a0d4238f5fC4a1E8c043f8749eD4F274D, "Constants.undefined_FRAXSWAP_V1_FRAX_WBNB"); + vm.label(0xF51709f61447E2647528CCC9030d6FE492C30D63, "Constants.undefined_FRAXSWAP_V2_FRAX_FXS"); + vm.label(0x14732123c443f8E815D5c64f3C7ecb63bCeEab74, "Constants.undefined_FRAXSWAP_V2_FRAX_WBNB"); + vm.label(0x8811Da0385cCf1848B21475A42eA4D07Fc5d964a, "Constants.undefined_COMPTROLLER"); + vm.label(0x49f9cbf5333d8e50c9BE76c775777DB2ACb1d456, "Constants.undefined_FPI_COMPTROLLER"); + vm.label(0x6022bA7e5A70E1bAA98d47a566F3495A26511b25, "Constants.undefined_GFRAX"); + vm.label(0x489c8fF79245f14AEEE9520d28209844790cB979, "Constants.undefined_APESWAP_CANFRAX_CANFXS"); + vm.label(0x16BDb03E6074759943149eBB1526DDfD1AA5fc56, "Constants.undefined_APESWAP_CANFRAX_WBNB"); + vm.label(0x885BE9bCbCdcB70c59F56A78ae64A820e0448589, "Constants.undefined_APESWAP_CANFRAX_USDC"); + vm.label(0x84f2781E4E60f97D2963260A7b20D883F04F0d20, "Constants.undefined_APESWAP_CANFXS_USDC"); + vm.label(0xBD0091CC77Fd3bDb620985a1dD8D3f94E071CCE3, "Constants.undefined_SADDLE_FRAX_BUSD"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.undefined_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.undefined_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.undefined_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.undefined_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.undefined_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.undefined_WFRAXOFT"); + vm.label(0x452420df4AC1e3db5429b5FD629f3047482C543C, "Constants.undefined_REMOTEHOP"); + vm.label(0xdee45510b42Cb0678C8A61D043C698aF66b0d852, "Constants.undefined_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/Base.sol b/src/contracts/chain-constants/Base.sol new file mode 100644 index 0000000..f6f01c5 --- /dev/null +++ b/src/contracts/chain-constants/Base.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Base { + address internal constant FPIOFT = 0xEEdd3A0DDDF977462A97C1F0eBb89C3fbe8D084B; + address internal constant FRXETHOFT = 0x7eb8d1E4E2D0C8b9bEDA7a97b305cF49F3eeE8dA; + address internal constant FRXUSDOFT = 0xe5020A6d073a794B6E7f05678707dE47986Fb0b6; + address internal constant SFRXETHOFT = 0x192e0C7Cc9B263D93fa6d472De47bBefe1Fb12bA; + address internal constant SFRXUSDOFT = 0x91A3f8a8d7a881fBDfcfEcd7A2Dc92a46DCfa14e; + address internal constant WFRAXOFT = 0x0CEAC003B0d2479BebeC9f4b2EBAd0a803759bbf; + address internal constant REMOTEHOP = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant REMOTEMINTREDEEMHOP = 0x73382eb28F35d80Df8C3fe04A3EED71b1aFce5dE; +} + +abstract contract AddressHelperBase is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0xEEdd3A0DDDF977462A97C1F0eBb89C3fbe8D084B, "Constants.BASE_FPIOFT"); + vm.label(0x7eb8d1E4E2D0C8b9bEDA7a97b305cF49F3eeE8dA, "Constants.BASE_FRXETHOFT"); + vm.label(0xe5020A6d073a794B6E7f05678707dE47986Fb0b6, "Constants.BASE_FRXUSDOFT"); + vm.label(0x192e0C7Cc9B263D93fa6d472De47bBefe1Fb12bA, "Constants.BASE_SFRXETHOFT"); + vm.label(0x91A3f8a8d7a881fBDfcfEcd7A2Dc92a46DCfa14e, "Constants.BASE_SFRXUSDOFT"); + vm.label(0x0CEAC003B0d2479BebeC9f4b2EBAd0a803759bbf, "Constants.BASE_WFRAXOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.BASE_REMOTEHOP"); + vm.label(0x73382eb28F35d80Df8C3fe04A3EED71b1aFce5dE, "Constants.BASE_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Bera.sol b/src/contracts/chain-constants/Bera.sol new file mode 100644 index 0000000..0cc9e31 --- /dev/null +++ b/src/contracts/chain-constants/Bera.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Bera { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xc71BF5Ee4740405030eF521F18A96eA14fec802D; + address internal constant REMOTEMINTREDEEMHOP = 0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263; +} + +abstract contract AddressHelperBera is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.BERA_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.BERA_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.BERA_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.BERA_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.BERA_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.BERA_WFRAXOFT"); + vm.label(0xc71BF5Ee4740405030eF521F18A96eA14fec802D, "Constants.BERA_REMOTEHOP"); + vm.label(0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263, "Constants.BERA_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Blast.sol b/src/contracts/chain-constants/Blast.sol new file mode 100644 index 0000000..366ab74 --- /dev/null +++ b/src/contracts/chain-constants/Blast.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Blast { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xe93Cb38f97469eac2f284a87813D0d701b28E58e; + address internal constant REMOTEMINTREDEEMHOP = 0x85b1714b25f40FD5025423124c076476073180b3; +} + +abstract contract AddressHelperBlast is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.BLAST_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.BLAST_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.BLAST_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.BLAST_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.BLAST_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.BLAST_WFRAXOFT"); + vm.label(0xe93Cb38f97469eac2f284a87813D0d701b28E58e, "Constants.BLAST_REMOTEHOP"); + vm.label(0x85b1714b25f40FD5025423124c076476073180b3, "Constants.BLAST_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/FraxtalL2.sol b/src/contracts/chain-constants/FraxtalL2.sol index aff534f..27557fe 100644 --- a/src/contracts/chain-constants/FraxtalL2.sol +++ b/src/contracts/chain-constants/FraxtalL2.sol @@ -7,16 +7,16 @@ import { TestBase } from "forge-std/Test.sol"; library FraxtalL2 { uint256 internal constant CHAIN_ID = 252; - address internal constant FRAX = 0xFc00000000000000000000000000000000000001; - address internal constant FXS = 0xFc00000000000000000000000000000000000002; + address internal constant FRXUSD = 0xFc00000000000000000000000000000000000001; + address internal constant WFRAX = 0xFc00000000000000000000000000000000000002; address internal constant FPI = 0xFc00000000000000000000000000000000000003; address internal constant FPIS = 0xfc00000000000000000000000000000000000004; address internal constant SFRXETH = 0xFC00000000000000000000000000000000000005; address internal constant WFRXETH = 0xFC00000000000000000000000000000000000006; address internal constant FRXBTC = 0xfC00000000000000000000000000000000000007; address internal constant SFRAX = 0xfc00000000000000000000000000000000000008; - address internal constant FRAX_PROXY = 0xFc00000000000000000000000000000000000001; - address internal constant FXS_PROXY = 0xFc00000000000000000000000000000000000002; + address internal constant FRXUSD_PROXY = 0xFc00000000000000000000000000000000000001; + address internal constant WFRAX_PROXY = 0xFc00000000000000000000000000000000000002; address internal constant FPI_PROXY = 0xFc00000000000000000000000000000000000003; address internal constant FPIS_PROXY = 0xfc00000000000000000000000000000000000004; address internal constant SFRXETH_PROXY = 0xFC00000000000000000000000000000000000005; @@ -34,9 +34,9 @@ library FraxtalL2 { address internal constant FXB_20261231 = 0x8e9C334afc76106F08E0383907F4Fca9bB10BA3e; address internal constant FXB_20241231 = 0xa71bB8c79dc8FfA90A6Dd711aA9Fbe5114c19cba; address internal constant FXB_20240630 = 0x758094A71a39De49626FE25B86631ED944558653; - address internal constant FXB_20551231 = 0xc38173D34afaEA88Bc482813B3CD267bc8A1EA83; - address internal constant FXB_20291231 = 0xF1e2b576aF4C6a7eE966b14C810b772391e92153; - address internal constant FXB_20251231 = 0xacA9A33698cF96413A40A4eB9E87906ff40fC6CA; + address internal constant FXB_20551231 = 0xc38173d34afaea88bc482813b3cd267bc8a1ea83; + address internal constant FXB_20291231 = 0xf1e2b576af4c6a7ee966b14c810b772391e92153; + address internal constant FXB_20251231 = 0xaca9a33698cf96413a40a4eb9e87906ff40fc6ca; address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__FXTL_SIDE = 0x00160baF84b3D2014837cc12e838ea399f8b8478; address internal constant FRAXFERRY_V2__ETHEREUM_FRAXTAL__FXS__FXTL_SIDE = @@ -163,6 +163,14 @@ library FraxtalL2 { address internal constant ERC20_FACTORY_PROXY = 0x4200000000000000000000000000000000000012; address internal constant L2_STANDARD_BRIDGE_PROXY = 0x4200000000000000000000000000000000000010; address internal constant L2_TO_L1_MESSAGE_PASSER = 0x4200000000000000000000000000000000000016; + address internal constant FPIOFT = 0x75c38D46001b0F8108c4136216bd2694982C20FC; + address internal constant FRXETHOFT = 0x9aBFE1F8a999B0011ecD6116649AEe8D575F5604; + address internal constant FRXUSDOFT = 0x96A394058E2b84A89bac9667B19661Ed003cF5D4; + address internal constant SFRXETHOFT = 0x999dfAbe3b1cc2EF66eB032Eea42FeA329bBa168; + address internal constant SFRXUSDOFT = 0x88Aa7854D3b2dAA5e37E7Ce73A1F39669623a361; + address internal constant WFRAXOFT = 0xd86fBBd0c8715d2C1f40e451e5C3514e65E7576A; + address internal constant FRAXTALHOP = 0x2A2019b30C157dB6c1C01306b8025167dBe1803B; + address internal constant FRAXTALMINTREDEEMHOP = 0x3e6a2cBaFD864e09e6DAb9Cf035a0AbEa32bc0BC; } abstract contract AddressHelperFraxtalL2 is TestBase { @@ -171,16 +179,16 @@ abstract contract AddressHelperFraxtalL2 is TestBase { } function labelConstants() public { - vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRAX"); - vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_FXS"); + vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRXUSD"); + vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_WFRAX"); vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTL_FPI"); vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTL_FPIS"); vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTL_SFRXETH"); vm.label(0xFC00000000000000000000000000000000000006, "Constants.FXTL_WFRXETH"); vm.label(0xfC00000000000000000000000000000000000007, "Constants.FXTL_FRXBTC"); vm.label(0xfc00000000000000000000000000000000000008, "Constants.FXTL_SFRAX"); - vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRAX_PROXY"); - vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_FXS_PROXY"); + vm.label(0xFc00000000000000000000000000000000000001, "Constants.FXTL_FRXUSD_PROXY"); + vm.label(0xFc00000000000000000000000000000000000002, "Constants.FXTL_WFRAX_PROXY"); vm.label(0xFc00000000000000000000000000000000000003, "Constants.FXTL_FPI_PROXY"); vm.label(0xfc00000000000000000000000000000000000004, "Constants.FXTL_FPIS_PROXY"); vm.label(0xFC00000000000000000000000000000000000005, "Constants.FXTL_SFRXETH_PROXY"); @@ -198,9 +206,9 @@ abstract contract AddressHelperFraxtalL2 is TestBase { vm.label(0x8e9C334afc76106F08E0383907F4Fca9bB10BA3e, "Constants.FXTL_FXB_20261231"); vm.label(0xa71bB8c79dc8FfA90A6Dd711aA9Fbe5114c19cba, "Constants.FXTL_FXB_20241231"); vm.label(0x758094A71a39De49626FE25B86631ED944558653, "Constants.FXTL_FXB_20240630"); - vm.label(0xc38173D34afaEA88Bc482813B3CD267bc8A1EA83, "Constants.FXTL_FXB_20551231"); - vm.label(0xF1e2b576aF4C6a7eE966b14C810b772391e92153, "Constants.FXTL_FXB_20291231"); - vm.label(0xacA9A33698cF96413A40A4eB9E87906ff40fC6CA, "Constants.FXTL_FXB_20251231"); + vm.label(0xc38173d34afaea88bc482813b3cd267bc8a1ea83, "Constants.FXTL_FXB_20551231"); + vm.label(0xf1e2b576af4c6a7ee966b14c810b772391e92153, "Constants.FXTL_FXB_20291231"); + vm.label(0xaca9a33698cf96413a40a4eb9e87906ff40fc6ca, "Constants.FXTL_FXB_20251231"); vm.label( 0x00160baF84b3D2014837cc12e838ea399f8b8478, "Constants.FXTL_FRAXFERRY_V2__ETHEREUM_FRAXTAL__FRAX__FXTL_SIDE" @@ -341,5 +349,13 @@ abstract contract AddressHelperFraxtalL2 is TestBase { vm.label(0x4200000000000000000000000000000000000012, "Constants.FXTL_ERC20_FACTORY_PROXY"); vm.label(0x4200000000000000000000000000000000000010, "Constants.FXTL_L2_STANDARD_BRIDGE_PROXY"); vm.label(0x4200000000000000000000000000000000000016, "Constants.FXTL_L2_TO_L1_MESSAGE_PASSER"); + vm.label(0x75c38D46001b0F8108c4136216bd2694982C20FC, "Constants.FXTL_FPIOFT"); + vm.label(0x9aBFE1F8a999B0011ecD6116649AEe8D575F5604, "Constants.FXTL_FRXETHOFT"); + vm.label(0x96A394058E2b84A89bac9667B19661Ed003cF5D4, "Constants.FXTL_FRXUSDOFT"); + vm.label(0x999dfAbe3b1cc2EF66eB032Eea42FeA329bBa168, "Constants.FXTL_SFRXETHOFT"); + vm.label(0x88Aa7854D3b2dAA5e37E7Ce73A1F39669623a361, "Constants.FXTL_SFRXUSDOFT"); + vm.label(0xd86fBBd0c8715d2C1f40e451e5C3514e65E7576A, "Constants.FXTL_WFRAXOFT"); + vm.label(0x2A2019b30C157dB6c1C01306b8025167dBe1803B, "Constants.FXTL_FRAXTALHOP"); + vm.label(0x3e6a2cBaFD864e09e6DAb9Cf035a0AbEa32bc0BC, "Constants.FXTL_FRAXTALMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/FraxtalTestnetL1.sol b/src/contracts/chain-constants/FraxtalTestnetL1.sol index b1daff3..64d489e 100644 --- a/src/contracts/chain-constants/FraxtalTestnetL1.sol +++ b/src/contracts/chain-constants/FraxtalTestnetL1.sol @@ -6,7 +6,7 @@ pragma solidity >=0.8.0; import { TestBase } from "forge-std/Test.sol"; library FraxtalTestnetL1 { - uint256 internal constant CHAIN_ID = 17_000; + uint256 internal constant CHAIN_ID = 17000; address internal constant PROXY_ADMIN = 0xA0c6294D524f56fF9BdAeE94b69064c529cB9a1e; address internal constant COMPTROLLER = 0x88699c59E413e8A47117820D15d8D33b09B21edD; address internal constant ADDRESS_MANAGER = 0x6C52d1f7aAdD1F27aaa6A9e228CE0312E3CB09A6; diff --git a/src/contracts/chain-constants/Holesky.sol b/src/contracts/chain-constants/Holesky.sol index 44ad698..3b97ec6 100644 --- a/src/contracts/chain-constants/Holesky.sol +++ b/src/contracts/chain-constants/Holesky.sol @@ -6,7 +6,7 @@ pragma solidity >=0.8.0; import { TestBase } from "forge-std/Test.sol"; library Holesky { - uint256 internal constant CHAIN_ID = 17_000; + uint256 internal constant CHAIN_ID = 17000; address internal constant FRAX = 0x0304A365C0fbb4b1Ad423887861b9b69a5f0c00E; address internal constant FXS = 0x4e7300F74F59AFaEcCdc0d434758Df9be238F0BF; address internal constant FPI = 0xfBCB0F967817c924f83e26e04F0FB28ED4d6276F; diff --git a/src/contracts/chain-constants/Hyperliquid.sol b/src/contracts/chain-constants/Hyperliquid.sol new file mode 100644 index 0000000..ad3eb00 --- /dev/null +++ b/src/contracts/chain-constants/Hyperliquid.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + + library Hyperliquid { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + string internal constant REMOTEHOP = ""; + string internal constant REMOTEMINTREDEEMHOP = ""; +} + +abstract contract AddressHelperHyperliquid is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.HYPE_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.HYPE_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.HYPE_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.HYPE_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.HYPE_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.HYPE_WFRAXOFT"); + vm.label(, "Constants.HYPE_REMOTEHOP"); + vm.label(, "Constants.HYPE_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Ink.sol b/src/contracts/chain-constants/Ink.sol new file mode 100644 index 0000000..57adaab --- /dev/null +++ b/src/contracts/chain-constants/Ink.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Ink { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A; + address internal constant REMOTEMINTREDEEMHOP = 0x452420df4AC1e3db5429b5FD629f3047482C543C; +} + +abstract contract AddressHelperInk is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.INK_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.INK_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.INK_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.INK_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.INK_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.INK_WFRAXOFT"); + vm.label(0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A, "Constants.INK_REMOTEHOP"); + vm.label(0x452420df4AC1e3db5429b5FD629f3047482C543C, "Constants.INK_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Katana.sol b/src/contracts/chain-constants/Katana.sol new file mode 100644 index 0000000..c3d68fd --- /dev/null +++ b/src/contracts/chain-constants/Katana.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Katana { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x5d8EB59A12Bc98708702305A7b032f4b69Dd5b5c; + address internal constant REMOTEMINTREDEEMHOP = 0xF6f45CCB5E85D1400067ee66F9e168f83e86124E; +} + +abstract contract AddressHelperKatana is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.KTN_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.KTN_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.KTN_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.KTN_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.KTN_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.KTN_WFRAXOFT"); + vm.label(0x5d8EB59A12Bc98708702305A7b032f4b69Dd5b5c, "Constants.KTN_REMOTEHOP"); + vm.label(0xF6f45CCB5E85D1400067ee66F9e168f83e86124E, "Constants.KTN_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Linea.sol b/src/contracts/chain-constants/Linea.sol new file mode 100644 index 0000000..93265e9 --- /dev/null +++ b/src/contracts/chain-constants/Linea.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Linea { + address internal constant FPIOFT = 0xDaF72Aa849d3C4FAA8A9c8c99f240Cf33dA02fc4; + address internal constant FRXETHOFT = 0xB1aFD04774c02AE84692619448B08BA79F19b1ff; + address internal constant FRXUSDOFT = 0xC7346783f5e645aa998B106Ef9E7f499528673D8; + address internal constant SFRXETHOFT = 0x383Eac7CcaA89684b8277cBabC25BCa8b13B7Aa2; + address internal constant SFRXUSDOFT = 0x592a48c0FB9c7f8BF1701cB0136b90DEa2A5B7B6; + address internal constant WFRAXOFT = 0x5217Ab28ECE654Aab2C68efedb6A22739df6C3D5; + address internal constant REMOTEHOP = 0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876; + address internal constant REMOTEMINTREDEEMHOP = 0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb; +} + +abstract contract AddressHelperLinea is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0xDaF72Aa849d3C4FAA8A9c8c99f240Cf33dA02fc4, "Constants.LINEA_FPIOFT"); + vm.label(0xB1aFD04774c02AE84692619448B08BA79F19b1ff, "Constants.LINEA_FRXETHOFT"); + vm.label(0xC7346783f5e645aa998B106Ef9E7f499528673D8, "Constants.LINEA_FRXUSDOFT"); + vm.label(0x383Eac7CcaA89684b8277cBabC25BCa8b13B7Aa2, "Constants.LINEA_SFRXETHOFT"); + vm.label(0x592a48c0FB9c7f8BF1701cB0136b90DEa2A5B7B6, "Constants.LINEA_SFRXUSDOFT"); + vm.label(0x5217Ab28ECE654Aab2C68efedb6A22739df6C3D5, "Constants.LINEA_WFRAXOFT"); + vm.label(0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876, "Constants.LINEA_REMOTEHOP"); + vm.label(0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb, "Constants.LINEA_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Mainnet.sol b/src/contracts/chain-constants/Mainnet.sol index e55164c..d890155 100644 --- a/src/contracts/chain-constants/Mainnet.sol +++ b/src/contracts/chain-constants/Mainnet.sol @@ -1066,6 +1066,14 @@ library Mainnet { address internal constant NON_FUNGIBLE_POSITION_MANAGER = 0xC36442b4a4522E871399CD717aBDD847Ab11FE88; address internal constant SWAPROUTER = 0xE592427A0AEce92De3Edee1F18E0157C05861564; address internal constant UNISWAP_V3_FACTORY = 0x1F98431c8aD98523631AE4a59f267346ea31F984; + address internal constant FPIOFT = 0x9033BAD7aA130a2466060A2dA71fAe2219781B4b; + address internal constant FRXETHOFT = 0x1c1649A38f4A3c5A0c4a24070f688C525AB7D6E6; + address internal constant FRXUSDOFT = 0x566a6442A5A6e9895B9dCA97cC7879D632c6e4B0; + address internal constant SFRXETHOFT = 0xbBc424e58ED38dd911309611ae2d7A23014Bd960; + address internal constant SFRXUSDOFT = 0x7311CEA93ccf5f4F7b789eE31eBA5D9B9290E126; + address internal constant WFRAXOFT = 0x04ACaF8D2865c0714F79da09645C13FD2888977f; + address internal constant REMOTEHOP = 0x3ad4dC2319394bB4BE99A0e4aE2AbF7bCEbD648E; + address internal constant REMOTEMINTREDEEMHOP = 0x99B5587ab54A49e3F827D10175Caf69C0187bfA8; } abstract contract AddressHelperMainnet is TestBase { @@ -2275,5 +2283,13 @@ abstract contract AddressHelperMainnet is TestBase { vm.label(0xC36442b4a4522E871399CD717aBDD847Ab11FE88, "Constants.ETH_NON_FUNGIBLE_POSITION_MANAGER"); vm.label(0xE592427A0AEce92De3Edee1F18E0157C05861564, "Constants.ETH_SWAPROUTER"); vm.label(0x1F98431c8aD98523631AE4a59f267346ea31F984, "Constants.ETH_UNISWAP_V3_FACTORY"); + vm.label(0x9033BAD7aA130a2466060A2dA71fAe2219781B4b, "Constants.ETH_FPIOFT"); + vm.label(0x1c1649A38f4A3c5A0c4a24070f688C525AB7D6E6, "Constants.ETH_FRXETHOFT"); + vm.label(0x566a6442A5A6e9895B9dCA97cC7879D632c6e4B0, "Constants.ETH_FRXUSDOFT"); + vm.label(0xbBc424e58ED38dd911309611ae2d7A23014Bd960, "Constants.ETH_SFRXETHOFT"); + vm.label(0x7311CEA93ccf5f4F7b789eE31eBA5D9B9290E126, "Constants.ETH_SFRXUSDOFT"); + vm.label(0x04ACaF8D2865c0714F79da09645C13FD2888977f, "Constants.ETH_WFRAXOFT"); + vm.label(0x3ad4dC2319394bB4BE99A0e4aE2AbF7bCEbD648E, "Constants.ETH_REMOTEHOP"); + vm.label(0x99B5587ab54A49e3F827D10175Caf69C0187bfA8, "Constants.ETH_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/Mode.sol b/src/contracts/chain-constants/Mode.sol new file mode 100644 index 0000000..7f1d567 --- /dev/null +++ b/src/contracts/chain-constants/Mode.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Mode { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x486cb4788f1be7cdef9301a7a637b451df3cf262; + address internal constant REMOTEMINTREDEEMHOP = 0x7360575f6f8F91b38dD078241b0Df508f5fBfDf9; +} + +abstract contract AddressHelperMode is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.undefined_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.undefined_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.undefined_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.undefined_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.undefined_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.undefined_WFRAXOFT"); + vm.label(0x486cb4788f1be7cdef9301a7a637b451df3cf262, "Constants.undefined_REMOTEHOP"); + vm.label(0x7360575f6f8F91b38dD078241b0Df508f5fBfDf9, "Constants.undefined_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Movement.sol b/src/contracts/chain-constants/Movement.sol new file mode 100644 index 0000000..a8872e7 --- /dev/null +++ b/src/contracts/chain-constants/Movement.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Movement { + bytes32 internal constant FPI = 0x15607151cc023512886f5af24d4f77e6e7a5d6fb8a482dfb56b9c4f5c1fca0b2; + bytes32 internal constant FRXETH = 0x8645126a60d36e138d435a28875a2aeef253bf80aae22bebcd411ad4251f1585; + bytes32 internal constant FRXUSD = 0xe4354602aa4311f36240dd57f3f3435ffccdbd0cd2963f1a69da39a2dbcd59b5; + bytes32 internal constant SFRXETH = 0x80d729c4632bcc6279b7bed2542e01e2cebd34ca9f3f15963c29d1621efc221a; + bytes32 internal constant SFRXUSD = 0xbf2efbffbbd7083aaf006379d96b866b73bb4eb9684a7504c62feafe670962c2; + bytes32 internal constant WFRAX = 0x4e4cce8f877d7ad45c896c1823017fe07874f3d8db6e15960eda26e211151300; + bytes32 internal constant FPIOFT = 0xadf0ffffa5ee44a94f0c65be05e701951e65e276419f7460286a139d9403e864; + bytes32 internal constant FRXETHOFT = 0xecb3a766f12981919158fc8ec3b98dd3f8b39a59280e62e80c600cea1b2c0f9c; + bytes32 internal constant FRXUSDOFT = 0xe067037681385b86d8344e6b7746023604c6ac90ddc997ba3c58396c258ad17b; + bytes32 internal constant SFRXETHOFT = 0x28b7264258592031a024ed8e1632090648ec53797c269ac91aa0c9ed94268356; + bytes32 internal constant SFRXUSDOFT = 0xc9bdfdc965bb7fcdcfa6b45870eab33bfaf8f4e8e3f6b89d3e0203aba634a1c9; + bytes32 internal constant WFRAXOFT = 0x267749b1a80d9d582019e6b0572c1dbc98648e24101b0861395cdbed095ceff2; +} diff --git a/src/contracts/chain-constants/Optimism.sol b/src/contracts/chain-constants/Optimism.sol index 4163704..7edd520 100644 --- a/src/contracts/chain-constants/Optimism.sol +++ b/src/contracts/chain-constants/Optimism.sol @@ -50,6 +50,14 @@ library Optimism { address internal constant FPI_COMPTROLLER = 0x8Acc8819cBB632dE4a8E732f08b9E578D2A8F635; address internal constant CURVE_4POOL = 0x3da3153E26A230d918bb9F9428A8d60349B73379; address internal constant KYBERSWAP_ELASTIC_FRAX_USDC_OPTIMISM = 0x97cB76cbb84Aa35deaF1dAC3101a506588B6c197; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x31D982ebd82Ad900358984bd049207A4c2468640; + address internal constant REMOTEMINTREDEEMHOP = 0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A; } abstract contract AddressHelperOptimism is TestBase { @@ -116,5 +124,13 @@ abstract contract AddressHelperOptimism is TestBase { vm.label(0x8Acc8819cBB632dE4a8E732f08b9E578D2A8F635, "Constants.OPTI_FPI_COMPTROLLER"); vm.label(0x3da3153E26A230d918bb9F9428A8d60349B73379, "Constants.OPTI_CURVE_4POOL"); vm.label(0x97cB76cbb84Aa35deaF1dAC3101a506588B6c197, "Constants.OPTI_KYBERSWAP_ELASTIC_FRAX_USDC_OPTIMISM"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.OPTI_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.OPTI_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.OPTI_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.OPTI_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.OPTI_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.OPTI_WFRAXOFT"); + vm.label(0x31D982ebd82Ad900358984bd049207A4c2468640, "Constants.OPTI_REMOTEHOP"); + vm.label(0x7a07D606c87b7251c2953A30Fa445d8c5F856C7A, "Constants.OPTI_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/Plumephoenix.sol b/src/contracts/chain-constants/Plumephoenix.sol new file mode 100644 index 0000000..2cadf56 --- /dev/null +++ b/src/contracts/chain-constants/Plumephoenix.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Plumephoenix { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876; + address internal constant REMOTEMINTREDEEMHOP = 0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb; +} + +abstract contract AddressHelperPlumephoenix is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.PLUME_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.PLUME_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.PLUME_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.PLUME_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.PLUME_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.PLUME_WFRAXOFT"); + vm.label(0x6cA98f43719231d38F6426DB64C7F3D5C7CE7876, "Constants.PLUME_REMOTEHOP"); + vm.label(0xa71f2204EDDB8d84F411A0C712687FAe5002e7Fb, "Constants.PLUME_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Polygon.sol b/src/contracts/chain-constants/Polygon.sol index 2ef1bca..3d55fc2 100644 --- a/src/contracts/chain-constants/Polygon.sol +++ b/src/contracts/chain-constants/Polygon.sol @@ -51,6 +51,14 @@ library Polygon { address internal constant DYSTOPIA_VOLATILEV1_AMM___FXS_FRAX = 0xfC2e89aabD257471a461dd506188609B2Bec53Fa; address internal constant FRAX3POOL = 0x5e5A23b52Cb48F5E70271Be83079cA5bC9c9e9ac; address internal constant HOP_LP_USDC = 0x9D373d22FD091d7f9A6649EB067557cc12Fb1A0A; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xf74D38A26948E9DDa53eD85cF03C6b1188FbB30C; + address internal constant REMOTEMINTREDEEMHOP = 0x5658e82E330e094627D9b362ed0E137eA06673C4; } abstract contract AddressHelperPolygon is TestBase { @@ -112,5 +120,13 @@ abstract contract AddressHelperPolygon is TestBase { vm.label(0xfC2e89aabD257471a461dd506188609B2Bec53Fa, "Constants.POLY_DYSTOPIA_VOLATILEV1_AMM___FXS_FRAX"); vm.label(0x5e5A23b52Cb48F5E70271Be83079cA5bC9c9e9ac, "Constants.POLY_FRAX3POOL"); vm.label(0x9D373d22FD091d7f9A6649EB067557cc12Fb1A0A, "Constants.POLY_HOP_LP_USDC"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.POLY_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.POLY_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.POLY_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.POLY_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.POLY_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.POLY_WFRAXOFT"); + vm.label(0xf74D38A26948E9DDa53eD85cF03C6b1188FbB30C, "Constants.POLY_REMOTEHOP"); + vm.label(0x5658e82E330e094627D9b362ed0E137eA06673C4, "Constants.POLY_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/PolygonzkEVM.sol b/src/contracts/chain-constants/PolygonzkEVM.sol index c17931e..7df7f43 100644 --- a/src/contracts/chain-constants/PolygonzkEVM.sol +++ b/src/contracts/chain-constants/PolygonzkEVM.sol @@ -32,6 +32,14 @@ library PolygonzkEVM { address internal constant CREWMEMBER = 0xBB437059584e30598b3AF0154472E47E6e2a45B9; address internal constant COMBO_ORACLE = 0x030BD43af99cb72B51dA233A73F7697Cd2461C0b; address internal constant COMBO_ORACLE_UNIV2_UNIV3 = 0x967d0c5f7362A54b156cf2831Fb17dA8681FAD7D; + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x111ddab65Af5fF96b674400246699ED40F550De1; + address internal constant REMOTEMINTREDEEMHOP = 0xc71BF5Ee4740405030eF521F18A96eA14fec802D; } abstract contract AddressHelperPolygonzkEVM is TestBase { @@ -80,5 +88,13 @@ abstract contract AddressHelperPolygonzkEVM is TestBase { vm.label(0xBB437059584e30598b3AF0154472E47E6e2a45B9, "Constants.POLY_ZKEVM_CREWMEMBER"); vm.label(0x030BD43af99cb72B51dA233A73F7697Cd2461C0b, "Constants.POLY_ZKEVM_COMBO_ORACLE"); vm.label(0x967d0c5f7362A54b156cf2831Fb17dA8681FAD7D, "Constants.POLY_ZKEVM_COMBO_ORACLE_UNIV2_UNIV3"); + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.POLY_ZKEVM_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.POLY_ZKEVM_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.POLY_ZKEVM_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.POLY_ZKEVM_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.POLY_ZKEVM_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.POLY_ZKEVM_WFRAXOFT"); + vm.label(0x111ddab65Af5fF96b674400246699ED40F550De1, "Constants.POLY_ZKEVM_REMOTEHOP"); + vm.label(0xc71BF5Ee4740405030eF521F18A96eA14fec802D, "Constants.POLY_ZKEVM_REMOTEMINTREDEEMHOP"); } } diff --git a/src/contracts/chain-constants/Scroll.sol b/src/contracts/chain-constants/Scroll.sol new file mode 100644 index 0000000..e14078f --- /dev/null +++ b/src/contracts/chain-constants/Scroll.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Scroll { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xf6f45ccb5e85d1400067ee66f9e168f83e86124e; + address internal constant REMOTEMINTREDEEMHOP = 0x91DDB0E0C36B901C6BF53B9Eb5ACa0Eb1465F558; +} + +abstract contract AddressHelperScroll is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.SCROLL_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.SCROLL_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.SCROLL_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.SCROLL_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.SCROLL_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.SCROLL_WFRAXOFT"); + vm.label(0xf6f45ccb5e85d1400067ee66f9e168f83e86124e, "Constants.SCROLL_REMOTEHOP"); + vm.label(0x91DDB0E0C36B901C6BF53B9Eb5ACa0Eb1465F558, "Constants.SCROLL_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Solana.sol b/src/contracts/chain-constants/Solana.sol new file mode 100644 index 0000000..ca7cb5b --- /dev/null +++ b/src/contracts/chain-constants/Solana.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Solana { + string internal constant FPIOFT = "8xKX8CRH9LxriRUNCPittu1jiovyQQr4EonWQjHZjWyH"; + string internal constant FRXETHOFT = "5sDrwVNiHMM2jC78hRBH1CtysDQYiNKihubgW2zNu8tf"; + string internal constant FRXUSDOFT = "GzX1ireZDU865FiMaKrdVB1H6AE8LAqWYCg6chrMrfBw"; + string internal constant SFRXETHOFT = "58zpC9acE6F4FBtd88L64NoWHJcmzLsQSy5bjz35Ydgv"; + string internal constant SFRXUSDOFT = "DUvWQMyASSkLNJFwsMDA4kwxEvmfaqpPGrvUVKtitX45"; + string internal constant WFRAXOFT = "zZbQjiRg8uSxZaPu996XuviuZeSY6nsaMuutKZQBJga"; + bytes32 internal constant FPIOFT_BYTES32 = 0xd3cee058686107cc51844f331ee213a33142ab299b5ce473c1cf3a8ddaa721a0; + bytes32 internal constant FRXETHOFT_BYTES32 = 0x38dd9e11bbf63835dc61d3cbf259f4221f5987ac92982c96609b99634662dfb3; + bytes32 internal constant FRXUSDOFT_BYTES32 = 0x5e208a73d5bb1c78e9dbf53badd7299afd6bee9acacdcd4fd668833e53c538ad; + bytes32 internal constant SFRXETHOFT_BYTES32 = 0xbf2f1fc27286a43f25b05bd843a74a5478c4246343fa90c1fcb641a1caf46c61; + bytes32 internal constant SFRXUSDOFT_BYTES32 = 0x8602f005ca65b6da46a3c6ce66ecd1d15be911ca650d5f418d369df184b584cf; + bytes32 internal constant WFRAXOFT_BYTES32 = 0x4939035f8dd13d15a9386e28b6705519aa6f488791323466a3c0116a201e51aa; +} diff --git a/src/contracts/chain-constants/Sonic.sol b/src/contracts/chain-constants/Sonic.sol new file mode 100644 index 0000000..0cf4ee6 --- /dev/null +++ b/src/contracts/chain-constants/Sonic.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Sonic { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x3A5cDA3Ac66Aa80573402610c94B74eD6cdb2F23; + address internal constant REMOTEMINTREDEEMHOP = 0xf6115Bb9b6A4b3660dA409cB7afF1fb773efaD0b; +} + +abstract contract AddressHelperSonic is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.SONIC_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.SONIC_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.SONIC_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.SONIC_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.SONIC_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.SONIC_WFRAXOFT"); + vm.label(0x3A5cDA3Ac66Aa80573402610c94B74eD6cdb2F23, "Constants.SONIC_REMOTEHOP"); + vm.label(0xf6115Bb9b6A4b3660dA409cB7afF1fb773efaD0b, "Constants.SONIC_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Unichain.sol b/src/contracts/chain-constants/Unichain.sol new file mode 100644 index 0000000..d66e7f4 --- /dev/null +++ b/src/contracts/chain-constants/Unichain.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Unichain { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0xc71BF5Ee4740405030eF521F18A96eA14fec802D; + address internal constant REMOTEMINTREDEEMHOP = 0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263; +} + +abstract contract AddressHelperUnichain is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.UNI_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.UNI_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.UNI_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.UNI_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.UNI_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.UNI_WFRAXOFT"); + vm.label(0xc71BF5Ee4740405030eF521F18A96eA14fec802D, "Constants.UNI_REMOTEHOP"); + vm.label(0x983aF86c94Fe3963989c22CeeEb6eA8Eac32D263, "Constants.UNI_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/Worldchain.sol b/src/contracts/chain-constants/Worldchain.sol new file mode 100644 index 0000000..05d81c1 --- /dev/null +++ b/src/contracts/chain-constants/Worldchain.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library Worldchain { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x938d99A81814f66b01010d19DDce92A633441699; + address internal constant REMOTEMINTREDEEMHOP = 0x111ddab65Af5fF96b674400246699ED40F550De1; +} + +abstract contract AddressHelperWorldchain is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.WRLD_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.WRLD_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.WRLD_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.WRLD_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.WRLD_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.WRLD_WFRAXOFT"); + vm.label(0x938d99A81814f66b01010d19DDce92A633441699, "Constants.WRLD_REMOTEHOP"); + vm.label(0x111ddab65Af5fF96b674400246699ED40F550De1, "Constants.WRLD_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/XLayer.sol b/src/contracts/chain-constants/XLayer.sol new file mode 100644 index 0000000..757076d --- /dev/null +++ b/src/contracts/chain-constants/XLayer.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library XLayer { + address internal constant FPIOFT = 0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927; + address internal constant FRXETHOFT = 0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050; + address internal constant FRXUSDOFT = 0x80Eede496655FB9047dd39d9f418d5483ED600df; + address internal constant SFRXETHOFT = 0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45; + address internal constant SFRXUSDOFT = 0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0; + address internal constant WFRAXOFT = 0x64445f0aecC51E94aD52d8AC56b7190e764E561a; + address internal constant REMOTEHOP = 0x79152c303AD5aE429eDefa4553CB1Ad2c6EE1396; + address internal constant REMOTEMINTREDEEMHOP = 0x45c6852a5188ce1905567ea83454329bd4982007; +} + +abstract contract AddressHelperXLayer is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x90581eCa9469D8D7F5D3B60f4715027aDFCf7927, "Constants.XLAYER_FPIOFT"); + vm.label(0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050, "Constants.XLAYER_FRXETHOFT"); + vm.label(0x80Eede496655FB9047dd39d9f418d5483ED600df, "Constants.XLAYER_FRXUSDOFT"); + vm.label(0x3Ec3849C33291a9eF4c5dB86De593EB4A37fDe45, "Constants.XLAYER_SFRXETHOFT"); + vm.label(0x5Bff88cA1442c2496f7E475E9e7786383Bc070c0, "Constants.XLAYER_SFRXUSDOFT"); + vm.label(0x64445f0aecC51E94aD52d8AC56b7190e764E561a, "Constants.XLAYER_WFRAXOFT"); + vm.label(0x79152c303AD5aE429eDefa4553CB1Ad2c6EE1396, "Constants.XLAYER_REMOTEHOP"); + vm.label(0x45c6852a5188ce1905567ea83454329bd4982007, "Constants.XLAYER_REMOTEMINTREDEEMHOP"); + } +} diff --git a/src/contracts/chain-constants/ZkSync.sol b/src/contracts/chain-constants/ZkSync.sol new file mode 100644 index 0000000..9284e34 --- /dev/null +++ b/src/contracts/chain-constants/ZkSync.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: ISC +pragma solidity >=0.8.0; + +// **NOTE** Generated code, do not modify. Run 'npm run generate:constants'. + +import { TestBase } from "forge-std/Test.sol"; + +library ZkSync { + address internal constant FPIOFT = 0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E; + address internal constant FRXETHOFT = 0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440; + address internal constant FRXUSDOFT = 0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d; + address internal constant SFRXETHOFT = 0xFD78FD3667DeF2F1097Ed221ec503AE477155394; + address internal constant SFRXUSDOFT = 0x9F87fbb47C33Cd0614E43500b9511018116F79eE; + address internal constant WFRAXOFT = 0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F; + address internal constant REMOTEHOP = 0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb; + address internal constant REMOTEMINTREDEEMHOP = 0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b; +} + +abstract contract AddressHelperZkSync is TestBase { + constructor() { + labelConstants(); + } + + function labelConstants() public { + vm.label(0x580F2ee1476eDF4B1760bd68f6AaBaD57dec420E, "Constants.undefined_FPIOFT"); + vm.label(0xc7Ab797019156b543B7a3fBF5A99ECDab9eb4440, "Constants.undefined_FRXETHOFT"); + vm.label(0xEa77c590Bb36c43ef7139cE649cFBCFD6163170d, "Constants.undefined_FRXUSDOFT"); + vm.label(0xFD78FD3667DeF2F1097Ed221ec503AE477155394, "Constants.undefined_SFRXETHOFT"); + vm.label(0x9F87fbb47C33Cd0614E43500b9511018116F79eE, "Constants.undefined_SFRXUSDOFT"); + vm.label(0xAf01aE13Fb67AD2bb2D76f29A83961069a5F245F, "Constants.undefined_WFRAXOFT"); + vm.label(0xc5e4A0cfef8D801278927C25fB51C1DB7b69dDFb, "Constants.undefined_REMOTEHOP"); + vm.label(0xa05E9F9B97c963B5651ed6A50Fae46625a8C400b, "Constants.undefined_REMOTEMINTREDEEMHOP"); + } +}