@maci-protocol/coordinator 0.0.0-ci.00107eb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/LICENSE +21 -0
- package/README.md +103 -0
- package/build/hardhat.config.cjs +39 -0
- package/build/hardhat.config.cjs.map +1 -0
- package/build/hardhat.config.d.cts +27 -0
- package/build/hardhat.config.d.cts.map +1 -0
- package/build/scripts/generateKeypair.d.ts +2 -0
- package/build/scripts/generateKeypair.d.ts.map +1 -0
- package/build/scripts/generateKeypair.js +25 -0
- package/build/scripts/generateKeypair.js.map +1 -0
- package/build/scripts/generateMaciKeyPair.d.ts +2 -0
- package/build/scripts/generateMaciKeyPair.d.ts.map +1 -0
- package/build/scripts/generateMaciKeyPair.js +3 -0
- package/build/scripts/generateMaciKeyPair.js.map +1 -0
- package/build/scripts/getAuthHeader.d.ts +2 -0
- package/build/scripts/getAuthHeader.d.ts.map +1 -0
- package/build/scripts/getAuthHeader.js +31 -0
- package/build/scripts/getAuthHeader.js.map +1 -0
- package/build/tests/constants.d.ts +7 -0
- package/build/tests/constants.d.ts.map +1 -0
- package/build/tests/constants.js +11 -0
- package/build/tests/constants.js.map +1 -0
- package/build/tests/e2e.deploy.test.d.ts +2 -0
- package/build/tests/e2e.deploy.test.d.ts.map +1 -0
- package/build/tests/e2e.deploy.test.js +264 -0
- package/build/tests/e2e.deploy.test.js.map +1 -0
- package/build/tests/e2e.redis.test.d.ts +2 -0
- package/build/tests/e2e.redis.test.d.ts.map +1 -0
- package/build/tests/e2e.redis.test.js +118 -0
- package/build/tests/e2e.redis.test.js.map +1 -0
- package/build/tests/utils.d.ts +20 -0
- package/build/tests/utils.d.ts.map +1 -0
- package/build/tests/utils.js +55 -0
- package/build/tests/utils.js.map +1 -0
- package/build/ts/app.module.d.ts +3 -0
- package/build/ts/app.module.d.ts.map +1 -0
- package/build/ts/app.module.js +42 -0
- package/build/ts/app.module.js.map +1 -0
- package/build/ts/auth/AccountSignatureGuard.service.d.ts +44 -0
- package/build/ts/auth/AccountSignatureGuard.service.d.ts.map +1 -0
- package/build/ts/auth/AccountSignatureGuard.service.js +96 -0
- package/build/ts/auth/AccountSignatureGuard.service.js.map +1 -0
- package/build/ts/auth/__tests__/AccountSignatureGuard.test.d.ts +2 -0
- package/build/ts/auth/__tests__/AccountSignatureGuard.test.d.ts.map +1 -0
- package/build/ts/auth/__tests__/AccountSignatureGuard.test.js +113 -0
- package/build/ts/auth/__tests__/AccountSignatureGuard.test.js.map +1 -0
- package/build/ts/common/__tests__/common.test.d.ts +2 -0
- package/build/ts/common/__tests__/common.test.d.ts.map +1 -0
- package/build/ts/common/__tests__/common.test.js +77 -0
- package/build/ts/common/__tests__/common.test.js.map +1 -0
- package/build/ts/common/accountAbstraction.d.ts +38 -0
- package/build/ts/common/accountAbstraction.d.ts.map +1 -0
- package/build/ts/common/accountAbstraction.js +83 -0
- package/build/ts/common/accountAbstraction.js.map +1 -0
- package/build/ts/common/chain.d.ts +22 -0
- package/build/ts/common/chain.d.ts.map +1 -0
- package/build/ts/common/chain.js +37 -0
- package/build/ts/common/chain.js.map +1 -0
- package/build/ts/common/coordinatorKeypair.d.ts +7 -0
- package/build/ts/common/coordinatorKeypair.d.ts.map +1 -0
- package/build/ts/common/coordinatorKeypair.js +14 -0
- package/build/ts/common/coordinatorKeypair.js.map +1 -0
- package/build/ts/common/errors.d.ts +36 -0
- package/build/ts/common/errors.d.ts.map +1 -0
- package/build/ts/common/errors.js +37 -0
- package/build/ts/common/errors.js.map +1 -0
- package/build/ts/common/http.d.ts +6 -0
- package/build/ts/common/http.d.ts.map +1 -0
- package/build/ts/common/http.js +49 -0
- package/build/ts/common/http.js.map +1 -0
- package/build/ts/common/index.d.ts +6 -0
- package/build/ts/common/index.d.ts.map +1 -0
- package/build/ts/common/index.js +6 -0
- package/build/ts/common/index.js.map +1 -0
- package/build/ts/common/networks.d.ts +10 -0
- package/build/ts/common/networks.d.ts.map +1 -0
- package/build/ts/common/networks.js +61 -0
- package/build/ts/common/networks.js.map +1 -0
- package/build/ts/common/types.d.ts +8 -0
- package/build/ts/common/types.d.ts.map +1 -0
- package/build/ts/common/types.js +2 -0
- package/build/ts/common/types.js.map +1 -0
- package/build/ts/crypto/__tests__/crypto.service.test.d.ts +2 -0
- package/build/ts/crypto/__tests__/crypto.service.test.d.ts.map +1 -0
- package/build/ts/crypto/__tests__/crypto.service.test.js +26 -0
- package/build/ts/crypto/__tests__/crypto.service.test.js.map +1 -0
- package/build/ts/crypto/crypto.module.d.ts +3 -0
- package/build/ts/crypto/crypto.module.d.ts.map +1 -0
- package/build/ts/crypto/crypto.module.js +18 -0
- package/build/ts/crypto/crypto.module.js.map +1 -0
- package/build/ts/crypto/crypto.service.d.ts +31 -0
- package/build/ts/crypto/crypto.service.d.ts.map +1 -0
- package/build/ts/crypto/crypto.service.js +68 -0
- package/build/ts/crypto/crypto.service.js.map +1 -0
- package/build/ts/deployer/__tests__/deployer.controller.test.d.ts +2 -0
- package/build/ts/deployer/__tests__/deployer.controller.test.d.ts.map +1 -0
- package/build/ts/deployer/__tests__/deployer.controller.test.js +82 -0
- package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -0
- package/build/ts/deployer/__tests__/deployer.service.test.d.ts +2 -0
- package/build/ts/deployer/__tests__/deployer.service.test.d.ts.map +1 -0
- package/build/ts/deployer/__tests__/deployer.service.test.js +272 -0
- package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -0
- package/build/ts/deployer/__tests__/utils.d.ts +61 -0
- package/build/ts/deployer/__tests__/utils.d.ts.map +1 -0
- package/build/ts/deployer/__tests__/utils.js +122 -0
- package/build/ts/deployer/__tests__/utils.js.map +1 -0
- package/build/ts/deployer/constants.d.ts +13 -0
- package/build/ts/deployer/constants.d.ts.map +1 -0
- package/build/ts/deployer/constants.js +13 -0
- package/build/ts/deployer/constants.js.map +1 -0
- package/build/ts/deployer/deployer.controller.d.ts +34 -0
- package/build/ts/deployer/deployer.controller.d.ts.map +1 -0
- package/build/ts/deployer/deployer.controller.js +102 -0
- package/build/ts/deployer/deployer.controller.js.map +1 -0
- package/build/ts/deployer/deployer.module.d.ts +3 -0
- package/build/ts/deployer/deployer.module.d.ts.map +1 -0
- package/build/ts/deployer/deployer.module.js +23 -0
- package/build/ts/deployer/deployer.module.js.map +1 -0
- package/build/ts/deployer/deployer.service.d.ts +85 -0
- package/build/ts/deployer/deployer.service.d.ts.map +1 -0
- package/build/ts/deployer/deployer.service.js +505 -0
- package/build/ts/deployer/deployer.service.js.map +1 -0
- package/build/ts/deployer/dto.d.ts +46 -0
- package/build/ts/deployer/dto.d.ts.map +1 -0
- package/build/ts/deployer/dto.js +125 -0
- package/build/ts/deployer/dto.js.map +1 -0
- package/build/ts/deployer/types.d.ts +351 -0
- package/build/ts/deployer/types.d.ts.map +1 -0
- package/build/ts/deployer/types.js +2 -0
- package/build/ts/deployer/types.js.map +1 -0
- package/build/ts/file/__tests__/file.service.test.d.ts +2 -0
- package/build/ts/file/__tests__/file.service.test.d.ts.map +1 -0
- package/build/ts/file/__tests__/file.service.test.js +77 -0
- package/build/ts/file/__tests__/file.service.test.js.map +1 -0
- package/build/ts/file/file.module.d.ts +3 -0
- package/build/ts/file/file.module.d.ts.map +1 -0
- package/build/ts/file/file.module.js +18 -0
- package/build/ts/file/file.module.js.map +1 -0
- package/build/ts/file/file.service.d.ts +63 -0
- package/build/ts/file/file.service.d.ts.map +1 -0
- package/build/ts/file/file.service.js +121 -0
- package/build/ts/file/file.service.js.map +1 -0
- package/build/ts/file/types.d.ts +36 -0
- package/build/ts/file/types.d.ts.map +1 -0
- package/build/ts/file/types.js +2 -0
- package/build/ts/file/types.js.map +1 -0
- package/build/ts/health/__tests__/health.controller.test.d.ts +2 -0
- package/build/ts/health/__tests__/health.controller.test.d.ts.map +1 -0
- package/build/ts/health/__tests__/health.controller.test.js +52 -0
- package/build/ts/health/__tests__/health.controller.test.js.map +1 -0
- package/build/ts/health/__tests__/health.service.test.d.ts +2 -0
- package/build/ts/health/__tests__/health.service.test.d.ts.map +1 -0
- package/build/ts/health/__tests__/health.service.test.js +101 -0
- package/build/ts/health/__tests__/health.service.test.js.map +1 -0
- package/build/ts/health/health.controller.d.ts +16 -0
- package/build/ts/health/health.controller.d.ts.map +1 -0
- package/build/ts/health/health.controller.js +43 -0
- package/build/ts/health/health.controller.js.map +1 -0
- package/build/ts/health/health.module.d.ts +3 -0
- package/build/ts/health/health.module.d.ts.map +1 -0
- package/build/ts/health/health.module.js +22 -0
- package/build/ts/health/health.module.js.map +1 -0
- package/build/ts/health/health.service.d.ts +42 -0
- package/build/ts/health/health.service.d.ts.map +1 -0
- package/build/ts/health/health.service.js +176 -0
- package/build/ts/health/health.service.js.map +1 -0
- package/build/ts/health/types.d.ts +87 -0
- package/build/ts/health/types.d.ts.map +1 -0
- package/build/ts/health/types.js +2 -0
- package/build/ts/health/types.js.map +1 -0
- package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.d.ts +11 -0
- package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.d.ts.map +1 -0
- package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.js +12 -0
- package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.js.map +1 -0
- package/build/ts/jest/setup.d.ts +8 -0
- package/build/ts/jest/setup.d.ts.map +1 -0
- package/build/ts/jest/setup.js +2 -0
- package/build/ts/jest/setup.js.map +1 -0
- package/build/ts/jest/transform.d.ts +8 -0
- package/build/ts/jest/transform.d.ts.map +1 -0
- package/build/ts/jest/transform.js +10 -0
- package/build/ts/jest/transform.js.map +1 -0
- package/build/ts/main.d.ts +2 -0
- package/build/ts/main.d.ts.map +1 -0
- package/build/ts/main.js +46 -0
- package/build/ts/main.js.map +1 -0
- package/build/ts/proof/__tests__/proof.controller.test.d.ts +2 -0
- package/build/ts/proof/__tests__/proof.controller.test.d.ts.map +1 -0
- package/build/ts/proof/__tests__/proof.controller.test.js +90 -0
- package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -0
- package/build/ts/proof/__tests__/proof.gateway.test.d.ts +2 -0
- package/build/ts/proof/__tests__/proof.gateway.test.d.ts.map +1 -0
- package/build/ts/proof/__tests__/proof.gateway.test.js +63 -0
- package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -0
- package/build/ts/proof/__tests__/proof.service.test.d.ts +2 -0
- package/build/ts/proof/__tests__/proof.service.test.d.ts.map +1 -0
- package/build/ts/proof/__tests__/proof.service.test.js +84 -0
- package/build/ts/proof/__tests__/proof.service.test.js.map +1 -0
- package/build/ts/proof/dto.d.ts +70 -0
- package/build/ts/proof/dto.d.ts.map +1 -0
- package/build/ts/proof/dto.js +261 -0
- package/build/ts/proof/dto.js.map +1 -0
- package/build/ts/proof/proof.controller.d.ts +47 -0
- package/build/ts/proof/proof.controller.d.ts.map +1 -0
- package/build/ts/proof/proof.controller.js +158 -0
- package/build/ts/proof/proof.controller.js.map +1 -0
- package/build/ts/proof/proof.gateway.d.ts +35 -0
- package/build/ts/proof/proof.gateway.d.ts.map +1 -0
- package/build/ts/proof/proof.gateway.js +93 -0
- package/build/ts/proof/proof.gateway.js.map +1 -0
- package/build/ts/proof/proof.module.d.ts +3 -0
- package/build/ts/proof/proof.module.d.ts.map +1 -0
- package/build/ts/proof/proof.module.js +25 -0
- package/build/ts/proof/proof.module.js.map +1 -0
- package/build/ts/proof/proof.service.d.ts +52 -0
- package/build/ts/proof/proof.service.d.ts.map +1 -0
- package/build/ts/proof/proof.service.js +164 -0
- package/build/ts/proof/proof.service.js.map +1 -0
- package/build/ts/proof/types.d.ts +144 -0
- package/build/ts/proof/types.d.ts.map +1 -0
- package/build/ts/proof/types.js +11 -0
- package/build/ts/proof/types.js.map +1 -0
- package/build/ts/redis/__tests__/redis.service.test.d.ts +2 -0
- package/build/ts/redis/__tests__/redis.service.test.d.ts.map +1 -0
- package/build/ts/redis/__tests__/redis.service.test.js +148 -0
- package/build/ts/redis/__tests__/redis.service.test.js.map +1 -0
- package/build/ts/redis/redis.module.d.ts +3 -0
- package/build/ts/redis/redis.module.d.ts.map +1 -0
- package/build/ts/redis/redis.module.js +18 -0
- package/build/ts/redis/redis.module.js.map +1 -0
- package/build/ts/redis/redis.service.d.ts +53 -0
- package/build/ts/redis/redis.service.d.ts.map +1 -0
- package/build/ts/redis/redis.service.js +99 -0
- package/build/ts/redis/redis.service.js.map +1 -0
- package/build/ts/redis/types.d.ts +66 -0
- package/build/ts/redis/types.d.ts.map +1 -0
- package/build/ts/redis/types.js +2 -0
- package/build/ts/redis/types.js.map +1 -0
- package/build/ts/redis/utils.d.ts +20 -0
- package/build/ts/redis/utils.d.ts.map +1 -0
- package/build/ts/redis/utils.js +27 -0
- package/build/ts/redis/utils.js.map +1 -0
- package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts +2 -0
- package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts.map +1 -0
- package/build/ts/scheduler/__tests__/scheduler.controller.test.js +62 -0
- package/build/ts/scheduler/__tests__/scheduler.controller.test.js.map +1 -0
- package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts +2 -0
- package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts.map +1 -0
- package/build/ts/scheduler/__tests__/scheduler.service.test.js +369 -0
- package/build/ts/scheduler/__tests__/scheduler.service.test.js.map +1 -0
- package/build/ts/scheduler/dto.d.ts +41 -0
- package/build/ts/scheduler/dto.d.ts.map +1 -0
- package/build/ts/scheduler/dto.js +115 -0
- package/build/ts/scheduler/dto.js.map +1 -0
- package/build/ts/scheduler/scheduler.controller.d.ts +32 -0
- package/build/ts/scheduler/scheduler.controller.d.ts.map +1 -0
- package/build/ts/scheduler/scheduler.controller.js +118 -0
- package/build/ts/scheduler/scheduler.controller.js.map +1 -0
- package/build/ts/scheduler/scheduler.module.d.ts +3 -0
- package/build/ts/scheduler/scheduler.module.d.ts.map +1 -0
- package/build/ts/scheduler/scheduler.module.js +24 -0
- package/build/ts/scheduler/scheduler.module.js.map +1 -0
- package/build/ts/scheduler/scheduler.service.d.ts +71 -0
- package/build/ts/scheduler/scheduler.service.d.ts.map +1 -0
- package/build/ts/scheduler/scheduler.service.js +297 -0
- package/build/ts/scheduler/scheduler.service.js.map +1 -0
- package/build/ts/scheduler/types.d.ts +65 -0
- package/build/ts/scheduler/types.d.ts.map +1 -0
- package/build/ts/scheduler/types.js +2 -0
- package/build/ts/scheduler/types.js.map +1 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.d.ts +2 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.d.ts.map +1 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +44 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.d.ts +2 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.d.ts.map +1 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js +76 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js.map +1 -0
- package/build/ts/sessionKeys/__tests__/utils.d.ts +25 -0
- package/build/ts/sessionKeys/__tests__/utils.d.ts.map +1 -0
- package/build/ts/sessionKeys/__tests__/utils.js +65 -0
- package/build/ts/sessionKeys/__tests__/utils.js.map +1 -0
- package/build/ts/sessionKeys/dto.d.ts +11 -0
- package/build/ts/sessionKeys/dto.d.ts.map +1 -0
- package/build/ts/sessionKeys/dto.js +29 -0
- package/build/ts/sessionKeys/dto.js.map +1 -0
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +53 -0
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -0
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js +105 -0
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js.map +1 -0
- package/build/ts/sessionKeys/sessionKeys.controller.d.ts +26 -0
- package/build/ts/sessionKeys/sessionKeys.controller.d.ts.map +1 -0
- package/build/ts/sessionKeys/sessionKeys.controller.js +74 -0
- package/build/ts/sessionKeys/sessionKeys.controller.js.map +1 -0
- package/build/ts/sessionKeys/sessionKeys.module.d.ts +3 -0
- package/build/ts/sessionKeys/sessionKeys.module.d.ts.map +1 -0
- package/build/ts/sessionKeys/sessionKeys.module.js +23 -0
- package/build/ts/sessionKeys/sessionKeys.module.js.map +1 -0
- package/build/ts/sessionKeys/sessionKeys.service.d.ts +62 -0
- package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -0
- package/build/ts/sessionKeys/sessionKeys.service.js +121 -0
- package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -0
- package/build/ts/sessionKeys/types.d.ts +11 -0
- package/build/ts/sessionKeys/types.d.ts.map +1 -0
- package/build/ts/sessionKeys/types.js +2 -0
- package/build/ts/sessionKeys/types.js.map +1 -0
- package/build/ts/subgraph/__tests__/subgraph.controller.test.d.ts +2 -0
- package/build/ts/subgraph/__tests__/subgraph.controller.test.d.ts.map +1 -0
- package/build/ts/subgraph/__tests__/subgraph.controller.test.js +50 -0
- package/build/ts/subgraph/__tests__/subgraph.controller.test.js.map +1 -0
- package/build/ts/subgraph/__tests__/subgraph.gateway.test.d.ts +2 -0
- package/build/ts/subgraph/__tests__/subgraph.gateway.test.d.ts.map +1 -0
- package/build/ts/subgraph/__tests__/subgraph.gateway.test.js +83 -0
- package/build/ts/subgraph/__tests__/subgraph.gateway.test.js.map +1 -0
- package/build/ts/subgraph/__tests__/subgraph.service.test.d.ts +2 -0
- package/build/ts/subgraph/__tests__/subgraph.service.test.d.ts.map +1 -0
- package/build/ts/subgraph/__tests__/subgraph.service.test.js +58 -0
- package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -0
- package/build/ts/subgraph/dto.d.ts +27 -0
- package/build/ts/subgraph/dto.d.ts.map +1 -0
- package/build/ts/subgraph/dto.js +83 -0
- package/build/ts/subgraph/dto.js.map +1 -0
- package/build/ts/subgraph/subgraph.controller.d.ts +24 -0
- package/build/ts/subgraph/subgraph.controller.d.ts.map +1 -0
- package/build/ts/subgraph/subgraph.controller.js +71 -0
- package/build/ts/subgraph/subgraph.controller.js.map +1 -0
- package/build/ts/subgraph/subgraph.gateway.d.ts +35 -0
- package/build/ts/subgraph/subgraph.gateway.d.ts.map +1 -0
- package/build/ts/subgraph/subgraph.gateway.js +93 -0
- package/build/ts/subgraph/subgraph.gateway.js.map +1 -0
- package/build/ts/subgraph/subgraph.module.d.ts +3 -0
- package/build/ts/subgraph/subgraph.module.d.ts.map +1 -0
- package/build/ts/subgraph/subgraph.module.js +23 -0
- package/build/ts/subgraph/subgraph.module.js.map +1 -0
- package/build/ts/subgraph/subgraph.service.d.ts +24 -0
- package/build/ts/subgraph/subgraph.service.d.ts.map +1 -0
- package/build/ts/subgraph/subgraph.service.js +119 -0
- package/build/ts/subgraph/subgraph.service.js.map +1 -0
- package/build/ts/subgraph/types.d.ts +93 -0
- package/build/ts/subgraph/types.d.ts.map +1 -0
- package/build/ts/subgraph/types.js +24 -0
- package/build/ts/subgraph/types.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +131 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var AccountSignatureGuard_1;
|
|
11
|
+
import { Logger, Injectable, SetMetadata, } from "@nestjs/common";
|
|
12
|
+
import { Reflector } from "@nestjs/core";
|
|
13
|
+
import { ethers } from "ethers";
|
|
14
|
+
import fs from "fs";
|
|
15
|
+
import path from "path";
|
|
16
|
+
import { CryptoService } from "../crypto/crypto.service";
|
|
17
|
+
/**
|
|
18
|
+
* Public metadata key
|
|
19
|
+
*/
|
|
20
|
+
export const PUBLIC_METADATA_KEY = "isPublic";
|
|
21
|
+
/**
|
|
22
|
+
* Public decorator to by-pass auth checks
|
|
23
|
+
*
|
|
24
|
+
* @returns public decorator
|
|
25
|
+
*/
|
|
26
|
+
export const Public = () => SetMetadata(PUBLIC_METADATA_KEY, true);
|
|
27
|
+
/**
|
|
28
|
+
* AccountSignatureGuard is responsible for protecting calling controller and websocket gateway functions.
|
|
29
|
+
* If account address is not added to .env file, you will not be allowed to call any API methods.
|
|
30
|
+
* Make sure you send `Authorization: Bearer encrypt({signature}:{digest})` header where:
|
|
31
|
+
* 1. encrypt - RSA public encryption.
|
|
32
|
+
* 2. signature - eth wallet signature for any message
|
|
33
|
+
* 3. digest - hex representation of message digest
|
|
34
|
+
*
|
|
35
|
+
* ```
|
|
36
|
+
* const signature = await signer.signMessage("message");
|
|
37
|
+
* const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
|
|
38
|
+
* ```
|
|
39
|
+
* See tests for more details about authorization.
|
|
40
|
+
*/
|
|
41
|
+
let AccountSignatureGuard = AccountSignatureGuard_1 = class AccountSignatureGuard {
|
|
42
|
+
cryptoService;
|
|
43
|
+
reflector;
|
|
44
|
+
/**
|
|
45
|
+
* Logger
|
|
46
|
+
*/
|
|
47
|
+
logger;
|
|
48
|
+
constructor(cryptoService, reflector) {
|
|
49
|
+
this.cryptoService = cryptoService;
|
|
50
|
+
this.reflector = reflector;
|
|
51
|
+
this.logger = new Logger(AccountSignatureGuard_1.name);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* This function should return a boolean, indicating whether the request is allowed or not based on message signature and digest.
|
|
55
|
+
*
|
|
56
|
+
* @param ctx - execution context
|
|
57
|
+
* @returns whether the request is allowed or not
|
|
58
|
+
*/
|
|
59
|
+
async canActivate(ctx) {
|
|
60
|
+
try {
|
|
61
|
+
const isPublic = this.reflector.get(PUBLIC_METADATA_KEY, ctx.getHandler());
|
|
62
|
+
if (isPublic) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
const request = ctx.switchToHttp().getRequest();
|
|
66
|
+
const socket = ctx.switchToWs().getClient();
|
|
67
|
+
const encryptedHeader = socket.handshake?.headers.authorization || request.headers?.authorization;
|
|
68
|
+
if (!encryptedHeader) {
|
|
69
|
+
this.logger.warn("No authorization header");
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const privateKey = await fs.promises.readFile(path.resolve(process.env.COORDINATOR_PRIVATE_KEY_PATH));
|
|
73
|
+
const [signature, digest] = this.cryptoService
|
|
74
|
+
.decrypt(privateKey, encryptedHeader.replace("Bearer", "").trim())
|
|
75
|
+
.split(":");
|
|
76
|
+
if (!signature || !digest) {
|
|
77
|
+
this.logger.warn("No signature or digest");
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const address = ethers.recoverAddress(Buffer.from(digest, "hex"), signature).toLowerCase();
|
|
81
|
+
const coordinatorAddress = process.env.COORDINATOR_ADDRESSES?.split(",").map((value) => value.toLowerCase()) ?? [];
|
|
82
|
+
return coordinatorAddress.includes(address);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
this.logger.error("Error", error);
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
AccountSignatureGuard = AccountSignatureGuard_1 = __decorate([
|
|
91
|
+
Injectable(),
|
|
92
|
+
__metadata("design:paramtypes", [CryptoService,
|
|
93
|
+
Reflector])
|
|
94
|
+
], AccountSignatureGuard);
|
|
95
|
+
export { AccountSignatureGuard };
|
|
96
|
+
//# sourceMappingURL=AccountSignatureGuard.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountSignatureGuard.service.js","sourceRoot":"","sources":["../../../ts/auth/AccountSignatureGuard.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountSignatureGuard.test.d.ts","sourceRoot":"","sources":["../../../../ts/auth/__tests__/AccountSignatureGuard.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import dotenv from "dotenv";
|
|
2
|
+
import { getBytes, hashMessage } from "ethers";
|
|
3
|
+
import hardhat from "hardhat";
|
|
4
|
+
import { AccountSignatureGuard, PUBLIC_METADATA_KEY, Public } from "../AccountSignatureGuard.service";
|
|
5
|
+
dotenv.config();
|
|
6
|
+
jest.mock("../../crypto/crypto.service", () => ({
|
|
7
|
+
CryptoService: {
|
|
8
|
+
getInstance: jest.fn(),
|
|
9
|
+
},
|
|
10
|
+
}));
|
|
11
|
+
describe("AccountSignatureGuard", () => {
|
|
12
|
+
const mockRequest = {
|
|
13
|
+
headers: { authorization: "data" },
|
|
14
|
+
};
|
|
15
|
+
const mockContext = {
|
|
16
|
+
getHandler: jest.fn(),
|
|
17
|
+
switchToHttp: jest.fn().mockReturnValue({
|
|
18
|
+
getRequest: jest.fn(() => mockRequest),
|
|
19
|
+
}),
|
|
20
|
+
switchToWs: jest.fn().mockReturnValue({
|
|
21
|
+
getClient: jest.fn(() => ({ handshake: mockRequest })),
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
const mockSignature = "0xc0436b6fbd5ff883fe88367f081d0780706b5c29fbfde8db2c1d607510f9095a73b3bc9b94a1588d561eaf49d195b134e3f92c36449c017ecf92c5e4d84a32131c";
|
|
25
|
+
const mockDigest = "7f6c0e5c497ded52462ec18daeb1c94cefa11cd6949ebdb7074b2a32cac13fba";
|
|
26
|
+
const mockCryptoService = {
|
|
27
|
+
decrypt: jest.fn(),
|
|
28
|
+
};
|
|
29
|
+
const reflector = {
|
|
30
|
+
get: jest.fn(),
|
|
31
|
+
};
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
mockCryptoService.decrypt = jest.fn(() => `${mockSignature}:${mockDigest}`);
|
|
34
|
+
reflector.get.mockReturnValue(false);
|
|
35
|
+
});
|
|
36
|
+
afterEach(() => {
|
|
37
|
+
jest.clearAllMocks();
|
|
38
|
+
});
|
|
39
|
+
test("should create public decorator properly", () => {
|
|
40
|
+
const decorator = Public();
|
|
41
|
+
expect(decorator.KEY).toBe(PUBLIC_METADATA_KEY);
|
|
42
|
+
});
|
|
43
|
+
test("should return false if there is no Authorization header", async () => {
|
|
44
|
+
const ctx = {
|
|
45
|
+
getHandler: jest.fn(),
|
|
46
|
+
switchToHttp: jest.fn().mockReturnValue({
|
|
47
|
+
getRequest: jest.fn(() => ({
|
|
48
|
+
headers: { authorization: "" },
|
|
49
|
+
})),
|
|
50
|
+
}),
|
|
51
|
+
switchToWs: jest.fn().mockReturnValue({
|
|
52
|
+
getClient: jest.fn(() => ({ handshake: { headers: { authorization: "" } } })),
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
56
|
+
const result = await guard.canActivate(ctx);
|
|
57
|
+
expect(result).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
test("should return false if there is no signature", async () => {
|
|
60
|
+
mockCryptoService.decrypt.mockReturnValue(`:${mockDigest}`);
|
|
61
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
62
|
+
const result = await guard.canActivate(mockContext);
|
|
63
|
+
expect(result).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
test("should return false if there is no digest", async () => {
|
|
66
|
+
mockCryptoService.decrypt.mockReturnValue(mockSignature);
|
|
67
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
68
|
+
const result = await guard.canActivate(mockContext);
|
|
69
|
+
expect(result).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
test("should return false if signature or digest are invalid", async () => {
|
|
72
|
+
mockCryptoService.decrypt.mockReturnValue(`signature:digest`);
|
|
73
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
74
|
+
const result = await guard.canActivate(mockContext);
|
|
75
|
+
expect(result).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
test("should return false if signer is different", async () => {
|
|
78
|
+
const [, signer] = await hardhat.ethers.getSigners();
|
|
79
|
+
const signature = await signer.signMessage("message");
|
|
80
|
+
const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
|
|
81
|
+
mockCryptoService.decrypt.mockReturnValue(`${signature}:${digest}`);
|
|
82
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
83
|
+
const result = await guard.canActivate(mockContext);
|
|
84
|
+
expect(result).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
test("should return true if authorization is passed properly", async () => {
|
|
87
|
+
const [signer] = await hardhat.ethers.getSigners();
|
|
88
|
+
process.env.COORDINATOR_ADDRESSES = await signer.getAddress();
|
|
89
|
+
const signature = await signer.signMessage("message");
|
|
90
|
+
const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
|
|
91
|
+
mockCryptoService.decrypt.mockReturnValue(`${signature}:${digest}`);
|
|
92
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
93
|
+
const result = await guard.canActivate(mockContext);
|
|
94
|
+
expect(result).toBe(true);
|
|
95
|
+
});
|
|
96
|
+
test("should return false if there is no COORDINATOR_ADDRESSES env", async () => {
|
|
97
|
+
const [signer] = await hardhat.ethers.getSigners();
|
|
98
|
+
process.env.COORDINATOR_ADDRESSES = undefined;
|
|
99
|
+
const signature = await signer.signMessage("message");
|
|
100
|
+
const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
|
|
101
|
+
mockCryptoService.decrypt.mockReturnValue(`${signature}:${digest}`);
|
|
102
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
103
|
+
const result = await guard.canActivate(mockContext);
|
|
104
|
+
expect(result).toBe(false);
|
|
105
|
+
});
|
|
106
|
+
test("should return true if can skip authorization", async () => {
|
|
107
|
+
reflector.get.mockReturnValue(true);
|
|
108
|
+
const guard = new AccountSignatureGuard(mockCryptoService, reflector);
|
|
109
|
+
const result = await guard.canActivate(mockContext);
|
|
110
|
+
expect(result).toBe(true);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=AccountSignatureGuard.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountSignatureGuard.test.js","sourceRoot":"","sources":["../../../../ts/auth/__tests__/AccountSignatureGuard.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../../../ts/common/__tests__/common.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ESupportedChains } from "@maci-protocol/sdk";
|
|
2
|
+
import { mainnet, sepolia, arbitrum, localhost, arbitrumSepolia, baseSepolia, lineaSepolia, scrollSepolia, scroll, base, linea, gnosis, polygon, optimism, optimismSepolia, hardhat, polygonAmoy, polygonZkEvm, polygonZkEvmCardona, zksyncSepoliaTestnet, zksync, gnosisChiado, } from "viem/chains";
|
|
3
|
+
import { getBundlerClient, getPublicClient, getZeroDevBundlerRPCUrl } from "../accountAbstraction";
|
|
4
|
+
import { getRpcUrl } from "../chain";
|
|
5
|
+
import { ErrorCodes } from "../errors";
|
|
6
|
+
import { viemChain } from "../networks";
|
|
7
|
+
describe("common", () => {
|
|
8
|
+
describe("getPublicClient", () => {
|
|
9
|
+
test("should return a public client", async () => {
|
|
10
|
+
const publicClient = await getPublicClient(ESupportedChains.Sepolia);
|
|
11
|
+
expect(publicClient).toBeDefined();
|
|
12
|
+
});
|
|
13
|
+
test("should throw when given an unsupported network", async () => {
|
|
14
|
+
await expect(() => getPublicClient("Unsupported")).rejects.toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
describe("getZeroDevBundlerRPCUrl", () => {
|
|
18
|
+
test("should throw when the network is not supported", () => {
|
|
19
|
+
expect(() => getZeroDevBundlerRPCUrl("Unsupported")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
|
|
20
|
+
});
|
|
21
|
+
test("should return an RPCUrl for a supported network", () => {
|
|
22
|
+
const rpcUrlOPS = getZeroDevBundlerRPCUrl(ESupportedChains.OptimismSepolia);
|
|
23
|
+
expect(rpcUrlOPS).toBeDefined();
|
|
24
|
+
const rpcUrlSepolia = getZeroDevBundlerRPCUrl(ESupportedChains.Sepolia);
|
|
25
|
+
expect(rpcUrlSepolia).toBeDefined();
|
|
26
|
+
const rpcUrlOP = getZeroDevBundlerRPCUrl(ESupportedChains.Optimism);
|
|
27
|
+
expect(rpcUrlOP).toBeDefined();
|
|
28
|
+
});
|
|
29
|
+
test("should throw when a unsupported zero dev network is given", () => {
|
|
30
|
+
expect(() => getZeroDevBundlerRPCUrl(ESupportedChains.Base)).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe("getBundlerClient", () => {
|
|
34
|
+
test("should throw when the network is not supported", () => {
|
|
35
|
+
expect(() => getBundlerClient("Unsupported")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe("getRpcUrl", () => {
|
|
39
|
+
test("should throw when given an unsupported network", async () => {
|
|
40
|
+
await expect(() => getRpcUrl("Unsupported")).rejects.toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
|
|
41
|
+
});
|
|
42
|
+
test("should throw when COORDINATOR_RPC_URL is not set", async () => {
|
|
43
|
+
delete process.env.COORDINATOR_RPC_URL;
|
|
44
|
+
await expect(() => getRpcUrl(ESupportedChains.OptimismSepolia)).rejects.toThrow(ErrorCodes.COORDINATOR_RPC_URL_NOT_SET.toString());
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe("viemChain", () => {
|
|
48
|
+
test("should return correct chain for all supported networks", () => {
|
|
49
|
+
expect(viemChain(ESupportedChains.Mainnet)).toBe(mainnet);
|
|
50
|
+
expect(viemChain(ESupportedChains.Sepolia)).toBe(sepolia);
|
|
51
|
+
expect(viemChain(ESupportedChains.Optimism)).toBe(optimism);
|
|
52
|
+
expect(viemChain(ESupportedChains.OptimismSepolia)).toBe(optimismSepolia);
|
|
53
|
+
expect(viemChain(ESupportedChains.Scroll)).toBe(scroll);
|
|
54
|
+
expect(viemChain(ESupportedChains.ScrollSepolia)).toBe(scrollSepolia);
|
|
55
|
+
expect(viemChain(ESupportedChains.Arbitrum)).toBe(arbitrum);
|
|
56
|
+
expect(viemChain(ESupportedChains.ArbitrumSepolia)).toBe(arbitrumSepolia);
|
|
57
|
+
expect(viemChain(ESupportedChains.Base)).toBe(base);
|
|
58
|
+
expect(viemChain(ESupportedChains.BaseSepolia)).toBe(baseSepolia);
|
|
59
|
+
expect(viemChain(ESupportedChains.Gnosis)).toBe(gnosis);
|
|
60
|
+
expect(viemChain(ESupportedChains.GnosisChiado)).toBe(gnosisChiado);
|
|
61
|
+
expect(viemChain(ESupportedChains.Polygon)).toBe(polygon);
|
|
62
|
+
expect(viemChain(ESupportedChains.PolygonAmoy)).toBe(polygonAmoy);
|
|
63
|
+
expect(viemChain(ESupportedChains.Linea)).toBe(linea);
|
|
64
|
+
expect(viemChain(ESupportedChains.LineaSepolia)).toBe(lineaSepolia);
|
|
65
|
+
expect(viemChain(ESupportedChains.ZkSyncEra)).toBe(zksync);
|
|
66
|
+
expect(viemChain(ESupportedChains.ZkSyncSepolia)).toBe(zksyncSepoliaTestnet);
|
|
67
|
+
expect(viemChain(ESupportedChains.PolygonZkEvm)).toBe(polygonZkEvm);
|
|
68
|
+
expect(viemChain(ESupportedChains.PolygonCardonaZkEvm)).toBe(polygonZkEvmCardona);
|
|
69
|
+
expect(viemChain(ESupportedChains.Hardhat)).toBe(hardhat);
|
|
70
|
+
expect(viemChain(ESupportedChains.Localhost)).toBe(localhost);
|
|
71
|
+
});
|
|
72
|
+
test("should throw error for unsupported network", () => {
|
|
73
|
+
expect(() => viemChain("UNSUPPORTED_NETWORK")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=common.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../../../ts/common/__tests__/common.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ESupportedChains } from "@maci-protocol/sdk";
|
|
2
|
+
import { type Hex } from "viem";
|
|
3
|
+
import type { BundlerClientType, KernelClientType, PublicClientHTTPType } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Get a public client
|
|
6
|
+
*
|
|
7
|
+
* @param chainName - the name of the chain to use
|
|
8
|
+
* @returns the public client
|
|
9
|
+
*/
|
|
10
|
+
export declare const getPublicClient: (chainName: ESupportedChains) => Promise<PublicClientHTTPType>;
|
|
11
|
+
/**
|
|
12
|
+
* Get the ZeroDev bundler RPC URL based on the network
|
|
13
|
+
*
|
|
14
|
+
* @param network - the network we are on
|
|
15
|
+
* @returns the ZeroDev bundler RPC URL
|
|
16
|
+
*/
|
|
17
|
+
export declare const getZeroDevBundlerRPCUrl: (network: ESupportedChains) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Get a bundler client
|
|
20
|
+
*
|
|
21
|
+
* @param chainName - the chain name
|
|
22
|
+
* @returns the bundler client
|
|
23
|
+
*/
|
|
24
|
+
export declare const getBundlerClient: (chainName: ESupportedChains) => BundlerClientType;
|
|
25
|
+
/**
|
|
26
|
+
* The offset for the address in the contract creation event
|
|
27
|
+
*/
|
|
28
|
+
export declare const addressOffset = 26;
|
|
29
|
+
/**
|
|
30
|
+
* Get a Kernel account handle given a session key
|
|
31
|
+
*
|
|
32
|
+
* @param sessionKey - the session key to use
|
|
33
|
+
* @param approval - the approval to the session key
|
|
34
|
+
* @param chain - the chain to use
|
|
35
|
+
* @returns the kernel client
|
|
36
|
+
*/
|
|
37
|
+
export declare const getKernelClient: (sessionKey: Hex, approval: string, chain: ESupportedChains) => Promise<KernelClientType>;
|
|
38
|
+
//# sourceMappingURL=accountAbstraction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountAbstraction.d.ts","sourceRoot":"","sources":["../../../ts/common/accountAbstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,OAAO,EAA4B,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAI1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAQzF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,WAAW,gBAAgB,KAAG,OAAO,CAAC,oBAAoB,CAI5F,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,gBAAgB,KAAG,MAWnE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,gBAAgB,KAAG,iBAI3D,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,GAAG,EACf,UAAU,MAAM,EAChB,OAAO,gBAAgB,KACtB,OAAO,CAAC,gBAAgB,CA0B1B,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ESupportedChains } from "@maci-protocol/sdk";
|
|
2
|
+
import { deserializePermissionAccount } from "@zerodev/permissions";
|
|
3
|
+
import { toECDSASigner } from "@zerodev/permissions/signers";
|
|
4
|
+
import { createKernelAccountClient } from "@zerodev/sdk";
|
|
5
|
+
import { getEntryPoint, KERNEL_V3_1 } from "@zerodev/sdk/constants";
|
|
6
|
+
import dotenv from "dotenv";
|
|
7
|
+
import { createPublicClient, http } from "viem";
|
|
8
|
+
import { createBundlerClient } from "viem/account-abstraction";
|
|
9
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
10
|
+
import { getRpcUrl } from "./chain";
|
|
11
|
+
import { ErrorCodes } from "./errors";
|
|
12
|
+
import { viemChain } from "./networks";
|
|
13
|
+
dotenv.config();
|
|
14
|
+
/**
|
|
15
|
+
* Get a public client
|
|
16
|
+
*
|
|
17
|
+
* @param chainName - the name of the chain to use
|
|
18
|
+
* @returns the public client
|
|
19
|
+
*/
|
|
20
|
+
export const getPublicClient = async (chainName) => createPublicClient({
|
|
21
|
+
transport: http(await getRpcUrl(chainName)),
|
|
22
|
+
chain: viemChain(chainName),
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Get the ZeroDev bundler RPC URL based on the network
|
|
26
|
+
*
|
|
27
|
+
* @param network - the network we are on
|
|
28
|
+
* @returns the ZeroDev bundler RPC URL
|
|
29
|
+
*/
|
|
30
|
+
export const getZeroDevBundlerRPCUrl = (network) => {
|
|
31
|
+
switch (network) {
|
|
32
|
+
case ESupportedChains.OptimismSepolia:
|
|
33
|
+
return process.env.ZERODEV_BUNDLER_RPC_OP_SEPOLIA || "";
|
|
34
|
+
case ESupportedChains.Optimism:
|
|
35
|
+
return process.env.ZERODEV_BUNDLER_RPC_OP || "";
|
|
36
|
+
case ESupportedChains.Sepolia:
|
|
37
|
+
return process.env.ZERODEV_BUNDLER_RPC_SEPOLIA || "";
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString());
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Get a bundler client
|
|
44
|
+
*
|
|
45
|
+
* @param chainName - the chain name
|
|
46
|
+
* @returns the bundler client
|
|
47
|
+
*/
|
|
48
|
+
export const getBundlerClient = (chainName) => createBundlerClient({
|
|
49
|
+
transport: http(getZeroDevBundlerRPCUrl(chainName)),
|
|
50
|
+
chain: viemChain(chainName),
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* The offset for the address in the contract creation event
|
|
54
|
+
*/
|
|
55
|
+
export const addressOffset = 26;
|
|
56
|
+
/**
|
|
57
|
+
* Get a Kernel account handle given a session key
|
|
58
|
+
*
|
|
59
|
+
* @param sessionKey - the session key to use
|
|
60
|
+
* @param approval - the approval to the session key
|
|
61
|
+
* @param chain - the chain to use
|
|
62
|
+
* @returns the kernel client
|
|
63
|
+
*/
|
|
64
|
+
export const getKernelClient = async (sessionKey, approval, chain) => {
|
|
65
|
+
const bundlerUrl = getZeroDevBundlerRPCUrl(chain);
|
|
66
|
+
const publicClient = await getPublicClient(chain);
|
|
67
|
+
// Using a stored private key
|
|
68
|
+
const sessionKeySigner = await toECDSASigner({
|
|
69
|
+
signer: privateKeyToAccount(sessionKey),
|
|
70
|
+
});
|
|
71
|
+
try {
|
|
72
|
+
const sessionKeyAccount = await deserializePermissionAccount(publicClient, getEntryPoint("0.7"), KERNEL_V3_1, approval, sessionKeySigner);
|
|
73
|
+
return createKernelAccountClient({
|
|
74
|
+
bundlerTransport: http(bundlerUrl),
|
|
75
|
+
account: sessionKeyAccount,
|
|
76
|
+
chain: viemChain(chain),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw new Error(ErrorCodes.INVALID_APPROVAL.toString());
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=accountAbstraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountAbstraction.js","sourceRoot":"","sources":["../../../ts/common/accountAbstraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ESupportedChains } from "@maci-protocol/sdk";
|
|
2
|
+
import { type HDNodeWallet, type Signer, Wallet } from "ethers";
|
|
3
|
+
/**
|
|
4
|
+
* Get the RPC url for the chain we need to interact with
|
|
5
|
+
*
|
|
6
|
+
* @param network - the network we want to interact with
|
|
7
|
+
* @returns the RPC url for the network
|
|
8
|
+
*/
|
|
9
|
+
export declare const getRpcUrl: (network: ESupportedChains) => Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Get wallet from private key or mnemonic env variable
|
|
12
|
+
*
|
|
13
|
+
* @returns wallet
|
|
14
|
+
*/
|
|
15
|
+
export declare const getWallet: () => Wallet | HDNodeWallet;
|
|
16
|
+
/**
|
|
17
|
+
* Get a Ethers Signer given a chain and private key
|
|
18
|
+
* @param chain
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare const getSigner: (chain: ESupportedChains) => Promise<Signer>;
|
|
22
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../ts/common/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIjF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAU,SAAS,gBAAgB,KAAG,OAAO,CAAC,MAAM,CAYzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAAO,MAAM,GAAG,YACoE,CAAC;AAE3G;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAU,OAAO,gBAAgB,KAAG,OAAO,CAAC,MAAM,CAOvE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ESupportedChains } from "@maci-protocol/sdk";
|
|
2
|
+
import { JsonRpcProvider, Wallet } from "ethers";
|
|
3
|
+
import { ErrorCodes } from "./errors";
|
|
4
|
+
/**
|
|
5
|
+
* Get the RPC url for the chain we need to interact with
|
|
6
|
+
*
|
|
7
|
+
* @param network - the network we want to interact with
|
|
8
|
+
* @returns the RPC url for the network
|
|
9
|
+
*/
|
|
10
|
+
export const getRpcUrl = async (network) => {
|
|
11
|
+
const rpcUrl = process.env.COORDINATOR_RPC_URL;
|
|
12
|
+
if (!rpcUrl) {
|
|
13
|
+
return Promise.reject(new Error(ErrorCodes.COORDINATOR_RPC_URL_NOT_SET.toString()));
|
|
14
|
+
}
|
|
15
|
+
if (!Object.values(ESupportedChains).includes(network)) {
|
|
16
|
+
return Promise.reject(new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString()));
|
|
17
|
+
}
|
|
18
|
+
return Promise.resolve(rpcUrl);
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Get wallet from private key or mnemonic env variable
|
|
22
|
+
*
|
|
23
|
+
* @returns wallet
|
|
24
|
+
*/
|
|
25
|
+
export const getWallet = () => process.env.PRIVATE_KEY ? new Wallet(process.env.PRIVATE_KEY) : Wallet.fromPhrase(process.env.MNEMONIC);
|
|
26
|
+
/**
|
|
27
|
+
* Get a Ethers Signer given a chain and private key
|
|
28
|
+
* @param chain
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export const getSigner = async (chain) => {
|
|
32
|
+
const wallet = getWallet();
|
|
33
|
+
const alchemyRpcUrl = await getRpcUrl(chain);
|
|
34
|
+
const provider = new JsonRpcProvider(alchemyRpcUrl);
|
|
35
|
+
return wallet.connect(provider);
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../ts/common/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAkC,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,OAAyB,EAAmB,EAAE;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAA0B,EAAE,CACnD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC;AAE3G;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,KAAuB,EAAmB,EAAE;IAC1E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Keypair } from "@maci-protocol/domainobjs";
|
|
2
|
+
/**
|
|
3
|
+
* Instantiate the MACI Coordinator keypair.
|
|
4
|
+
* @returns {Keypair} - The MACI Coordinator keypair.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getCoordinatorKeypair: () => Keypair;
|
|
7
|
+
//# sourceMappingURL=coordinatorKeypair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinatorKeypair.d.ts","sourceRoot":"","sources":["../../../ts/common/coordinatorKeypair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,2BAA2B,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,OAUxC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Keypair, PrivateKey } from "@maci-protocol/domainobjs";
|
|
2
|
+
/**
|
|
3
|
+
* Instantiate the MACI Coordinator keypair.
|
|
4
|
+
* @returns {Keypair} - The MACI Coordinator keypair.
|
|
5
|
+
*/
|
|
6
|
+
export const getCoordinatorKeypair = () => {
|
|
7
|
+
const privateKey = String(process.env.COORDINATOR_MACI_PRIVATE_KEY);
|
|
8
|
+
if (!privateKey) {
|
|
9
|
+
throw new Error("COORDINATOR_MACI_PRIVATE_KEY environment variable is not set.");
|
|
10
|
+
}
|
|
11
|
+
const maciPrivateKey = PrivateKey.deserialize(privateKey);
|
|
12
|
+
return new Keypair(maciPrivateKey);
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=coordinatorKeypair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinatorKeypair.js","sourceRoot":"","sources":["../../../ts/common/coordinatorKeypair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAY,EAAE;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAEpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE1D,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error codes that are used for api responses
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ErrorCodes {
|
|
5
|
+
NOT_MERGED_STATE_TREE = 0,
|
|
6
|
+
PRIVATE_KEY_MISMATCH = 1,
|
|
7
|
+
POLL_NOT_FOUND = 2,
|
|
8
|
+
DECRYPTION = 3,
|
|
9
|
+
ENCRYPTION = 4,
|
|
10
|
+
FILE_NOT_FOUND = 5,
|
|
11
|
+
SUBGRAPH_DEPLOY = 6,
|
|
12
|
+
SUBGRAPH_DEPLOY_KEY_NOT_FOUND = 7,
|
|
13
|
+
SESSION_KEY_NOT_FOUND = 8,
|
|
14
|
+
INVALID_APPROVAL = 9,
|
|
15
|
+
UNSUPPORTED_NETWORK = 10,
|
|
16
|
+
COORDINATOR_RPC_URL_NOT_SET = 11,
|
|
17
|
+
FAILED_TO_MERGE_STATE_TREE = 12,
|
|
18
|
+
FAILED_TO_MERGE_MESSAGE_SUBTREES = 13,
|
|
19
|
+
FAILED_TO_MERGE_MESSAGE_TREE = 14,
|
|
20
|
+
UNSUPPORTED_VOICE_CREDIT_PROXY_FACTORY = 15,
|
|
21
|
+
UNSUPPORTED_VOICE_CREDIT_PROXY = 16,
|
|
22
|
+
UNSUPPORTED_POLICY = 17,
|
|
23
|
+
FAILED_TO_DEPLOY_CONTRACT = 18,
|
|
24
|
+
FAILED_TO_SET_MACI_INSTANCE_ON_POLICY = 19,
|
|
25
|
+
MACI_NOT_DEPLOYED = 20,
|
|
26
|
+
VERIFIER_NOT_DEPLOYED = 21,
|
|
27
|
+
VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED = 22,
|
|
28
|
+
FAILED_TO_SET_VERIFYING_KEYS = 23,
|
|
29
|
+
FAILED_TO_DEPLOY_MACI = 24,
|
|
30
|
+
FAILED_TO_DEPLOY_POLL = 25,
|
|
31
|
+
NOT_MERGED_MESSAGE_TREE = 26,
|
|
32
|
+
FAILED_TO_UPDATE_SCHEDULED_POLL = 27,
|
|
33
|
+
POLL_ALREADY_SCHEDULED = 28,
|
|
34
|
+
POLL_ALREADY_TALLIED = 29
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../ts/common/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,UAAU;IACpB,qBAAqB,IAAA;IACrB,oBAAoB,IAAA;IACpB,cAAc,IAAA;IACd,UAAU,IAAA;IACV,UAAU,IAAA;IACV,cAAc,IAAA;IACd,eAAe,IAAA;IACf,6BAA6B,IAAA;IAC7B,qBAAqB,IAAA;IACrB,gBAAgB,IAAA;IAChB,mBAAmB,KAAA;IACnB,2BAA2B,KAAA;IAC3B,0BAA0B,KAAA;IAC1B,gCAAgC,KAAA;IAChC,4BAA4B,KAAA;IAC5B,sCAAsC,KAAA;IACtC,8BAA8B,KAAA;IAC9B,kBAAkB,KAAA;IAClB,yBAAyB,KAAA;IACzB,qCAAqC,KAAA;IACrC,iBAAiB,KAAA;IACjB,qBAAqB,KAAA;IACrB,oCAAoC,KAAA;IACpC,4BAA4B,KAAA;IAC5B,qBAAqB,KAAA;IACrB,qBAAqB,KAAA;IACrB,uBAAuB,KAAA;IACvB,+BAA+B,KAAA;IAC/B,sBAAsB,KAAA;IACtB,oBAAoB,KAAA;CACrB"}
|