@wirexapp/wpay-baas-sdk 0.1.0
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/LICENSE +21 -0
- package/README.md +566 -0
- package/dist/abi/accounts.abi.d.ts +405 -0
- package/dist/abi/accounts.abi.d.ts.map +1 -0
- package/dist/abi/accounts.abi.js +351 -0
- package/dist/abi/accounts.abi.js.map +1 -0
- package/dist/abi/contractRegistry.abi.d.ts +220 -0
- package/dist/abi/contractRegistry.abi.d.ts.map +1 -0
- package/dist/abi/contractRegistry.abi.js +287 -0
- package/dist/abi/contractRegistry.abi.js.map +1 -0
- package/dist/abi/corporateAccounts.abi.d.ts +42 -0
- package/dist/abi/corporateAccounts.abi.d.ts.map +1 -0
- package/dist/abi/corporateAccounts.abi.js +34 -0
- package/dist/abi/corporateAccounts.abi.js.map +1 -0
- package/dist/abi/erc20.abi.d.ts +253 -0
- package/dist/abi/erc20.abi.d.ts.map +1 -0
- package/dist/abi/erc20.abi.js +98 -0
- package/dist/abi/erc20.abi.js.map +1 -0
- package/dist/abi/executionDelayPolicy.abi.d.ts +378 -0
- package/dist/abi/executionDelayPolicy.abi.d.ts.map +1 -0
- package/dist/abi/executionDelayPolicy.abi.js +502 -0
- package/dist/abi/executionDelayPolicy.abi.js.map +1 -0
- package/dist/abi/fundsManagement.abi.d.ts +54 -0
- package/dist/abi/fundsManagement.abi.d.ts.map +1 -0
- package/dist/abi/fundsManagement.abi.js +361 -0
- package/dist/abi/fundsManagement.abi.js.map +1 -0
- package/dist/abi/index.d.ts +11 -0
- package/dist/abi/index.d.ts.map +1 -0
- package/dist/abi/index.js +11 -0
- package/dist/abi/index.js.map +1 -0
- package/dist/abi/signer.abi.d.ts +20 -0
- package/dist/abi/signer.abi.d.ts.map +1 -0
- package/dist/abi/signer.abi.js +13 -0
- package/dist/abi/signer.abi.js.map +1 -0
- package/dist/abi/synthetic.abi.d.ts +2459 -0
- package/dist/abi/synthetic.abi.d.ts.map +1 -0
- package/dist/abi/synthetic.abi.js +1739 -0
- package/dist/abi/synthetic.abi.js.map +1 -0
- package/dist/abi/tokenRegistry.abi.d.ts +209 -0
- package/dist/abi/tokenRegistry.abi.d.ts.map +1 -0
- package/dist/abi/tokenRegistry.abi.js +117 -0
- package/dist/abi/tokenRegistry.abi.js.map +1 -0
- package/dist/abi/yieldCalculator.abi.d.ts +327 -0
- package/dist/abi/yieldCalculator.abi.d.ts.map +1 -0
- package/dist/abi/yieldCalculator.abi.js +2 -0
- package/dist/abi/yieldCalculator.abi.js.map +1 -0
- package/dist/client.d.ts +23 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +97 -0
- package/dist/client.js.map +1 -0
- package/dist/core/config/config.service.d.ts +18 -0
- package/dist/core/config/config.service.d.ts.map +1 -0
- package/dist/core/config/config.service.js +78 -0
- package/dist/core/config/config.service.js.map +1 -0
- package/dist/core/config/index.d.ts +4 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +3 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/types.d.ts +40 -0
- package/dist/core/config/types.d.ts.map +1 -0
- package/dist/core/config/types.js +5 -0
- package/dist/core/config/types.js.map +1 -0
- package/dist/core/errors.d.ts +31 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +63 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/internal/http-client.d.ts +40 -0
- package/dist/core/internal/http-client.d.ts.map +1 -0
- package/dist/core/internal/http-client.js +113 -0
- package/dist/core/internal/http-client.js.map +1 -0
- package/dist/core/types.d.ts +82 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +13 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/api/api.module.d.ts +21 -0
- package/dist/modules/api/api.module.d.ts.map +1 -0
- package/dist/modules/api/api.module.js +47 -0
- package/dist/modules/api/api.module.js.map +1 -0
- package/dist/modules/api/baas/activity/activity.service.d.ts +34 -0
- package/dist/modules/api/baas/activity/activity.service.d.ts.map +1 -0
- package/dist/modules/api/baas/activity/activity.service.js +61 -0
- package/dist/modules/api/baas/activity/activity.service.js.map +1 -0
- package/dist/modules/api/baas/activity/index.d.ts +3 -0
- package/dist/modules/api/baas/activity/index.d.ts.map +1 -0
- package/dist/modules/api/baas/activity/index.js +2 -0
- package/dist/modules/api/baas/activity/index.js.map +1 -0
- package/dist/modules/api/baas/activity/types.d.ts +166 -0
- package/dist/modules/api/baas/activity/types.d.ts.map +1 -0
- package/dist/modules/api/baas/activity/types.js +5 -0
- package/dist/modules/api/baas/activity/types.js.map +1 -0
- package/dist/modules/api/baas/baas.module.d.ts +41 -0
- package/dist/modules/api/baas/baas.module.d.ts.map +1 -0
- package/dist/modules/api/baas/baas.module.js +144 -0
- package/dist/modules/api/baas/baas.module.js.map +1 -0
- package/dist/modules/api/baas/bank/bank.service.d.ts +42 -0
- package/dist/modules/api/baas/bank/bank.service.d.ts.map +1 -0
- package/dist/modules/api/baas/bank/bank.service.js +75 -0
- package/dist/modules/api/baas/bank/bank.service.js.map +1 -0
- package/dist/modules/api/baas/bank/index.d.ts +3 -0
- package/dist/modules/api/baas/bank/index.d.ts.map +1 -0
- package/dist/modules/api/baas/bank/index.js +2 -0
- package/dist/modules/api/baas/bank/index.js.map +1 -0
- package/dist/modules/api/baas/bank/types.d.ts +116 -0
- package/dist/modules/api/baas/bank/types.d.ts.map +1 -0
- package/dist/modules/api/baas/bank/types.js +5 -0
- package/dist/modules/api/baas/bank/types.js.map +1 -0
- package/dist/modules/api/baas/cards/cards.service.d.ts +118 -0
- package/dist/modules/api/baas/cards/cards.service.d.ts.map +1 -0
- package/dist/modules/api/baas/cards/cards.service.js +254 -0
- package/dist/modules/api/baas/cards/cards.service.js.map +1 -0
- package/dist/modules/api/baas/cards/index.d.ts +3 -0
- package/dist/modules/api/baas/cards/index.d.ts.map +1 -0
- package/dist/modules/api/baas/cards/index.js +2 -0
- package/dist/modules/api/baas/cards/index.js.map +1 -0
- package/dist/modules/api/baas/cards/types.d.ts +249 -0
- package/dist/modules/api/baas/cards/types.d.ts.map +1 -0
- package/dist/modules/api/baas/cards/types.js +5 -0
- package/dist/modules/api/baas/cards/types.js.map +1 -0
- package/dist/modules/api/baas/config/config.service.d.ts +21 -0
- package/dist/modules/api/baas/config/config.service.d.ts.map +1 -0
- package/dist/modules/api/baas/config/config.service.js +22 -0
- package/dist/modules/api/baas/config/config.service.js.map +1 -0
- package/dist/modules/api/baas/config/index.d.ts +3 -0
- package/dist/modules/api/baas/config/index.d.ts.map +1 -0
- package/dist/modules/api/baas/config/index.js +2 -0
- package/dist/modules/api/baas/config/index.js.map +1 -0
- package/dist/modules/api/baas/config/types.d.ts +42 -0
- package/dist/modules/api/baas/config/types.d.ts.map +1 -0
- package/dist/modules/api/baas/config/types.js +2 -0
- package/dist/modules/api/baas/config/types.js.map +1 -0
- package/dist/modules/api/baas/confirmation/confirmation.service.d.ts +30 -0
- package/dist/modules/api/baas/confirmation/confirmation.service.d.ts.map +1 -0
- package/dist/modules/api/baas/confirmation/confirmation.service.js +39 -0
- package/dist/modules/api/baas/confirmation/confirmation.service.js.map +1 -0
- package/dist/modules/api/baas/confirmation/index.d.ts +3 -0
- package/dist/modules/api/baas/confirmation/index.d.ts.map +1 -0
- package/dist/modules/api/baas/confirmation/index.js +2 -0
- package/dist/modules/api/baas/confirmation/index.js.map +1 -0
- package/dist/modules/api/baas/confirmation/types.d.ts +30 -0
- package/dist/modules/api/baas/confirmation/types.d.ts.map +1 -0
- package/dist/modules/api/baas/confirmation/types.js +5 -0
- package/dist/modules/api/baas/confirmation/types.js.map +1 -0
- package/dist/modules/api/baas/index.d.ts +12 -0
- package/dist/modules/api/baas/index.d.ts.map +1 -0
- package/dist/modules/api/baas/index.js +12 -0
- package/dist/modules/api/baas/index.js.map +1 -0
- package/dist/modules/api/baas/rates/index.d.ts +3 -0
- package/dist/modules/api/baas/rates/index.d.ts.map +1 -0
- package/dist/modules/api/baas/rates/index.js +2 -0
- package/dist/modules/api/baas/rates/index.js.map +1 -0
- package/dist/modules/api/baas/rates/rates.service.d.ts +21 -0
- package/dist/modules/api/baas/rates/rates.service.d.ts.map +1 -0
- package/dist/modules/api/baas/rates/rates.service.js +25 -0
- package/dist/modules/api/baas/rates/rates.service.js.map +1 -0
- package/dist/modules/api/baas/rates/types.d.ts +12 -0
- package/dist/modules/api/baas/rates/types.d.ts.map +1 -0
- package/dist/modules/api/baas/rates/types.js +2 -0
- package/dist/modules/api/baas/rates/types.js.map +1 -0
- package/dist/modules/api/baas/recipients/index.d.ts +3 -0
- package/dist/modules/api/baas/recipients/index.d.ts.map +1 -0
- package/dist/modules/api/baas/recipients/index.js +2 -0
- package/dist/modules/api/baas/recipients/index.js.map +1 -0
- package/dist/modules/api/baas/recipients/recipients.service.d.ts +74 -0
- package/dist/modules/api/baas/recipients/recipients.service.d.ts.map +1 -0
- package/dist/modules/api/baas/recipients/recipients.service.js +190 -0
- package/dist/modules/api/baas/recipients/recipients.service.js.map +1 -0
- package/dist/modules/api/baas/recipients/types.d.ts +208 -0
- package/dist/modules/api/baas/recipients/types.d.ts.map +1 -0
- package/dist/modules/api/baas/recipients/types.js +5 -0
- package/dist/modules/api/baas/recipients/types.js.map +1 -0
- package/dist/modules/api/baas/token/index.d.ts +3 -0
- package/dist/modules/api/baas/token/index.d.ts.map +1 -0
- package/dist/modules/api/baas/token/index.js +2 -0
- package/dist/modules/api/baas/token/index.js.map +1 -0
- package/dist/modules/api/baas/token/token.service.d.ts +21 -0
- package/dist/modules/api/baas/token/token.service.d.ts.map +1 -0
- package/dist/modules/api/baas/token/token.service.js +22 -0
- package/dist/modules/api/baas/token/token.service.js.map +1 -0
- package/dist/modules/api/baas/token/types.d.ts +12 -0
- package/dist/modules/api/baas/token/types.d.ts.map +1 -0
- package/dist/modules/api/baas/token/types.js +2 -0
- package/dist/modules/api/baas/token/types.js.map +1 -0
- package/dist/modules/api/baas/user/index.d.ts +3 -0
- package/dist/modules/api/baas/user/index.d.ts.map +1 -0
- package/dist/modules/api/baas/user/index.js +2 -0
- package/dist/modules/api/baas/user/index.js.map +1 -0
- package/dist/modules/api/baas/user/types.d.ts +145 -0
- package/dist/modules/api/baas/user/types.d.ts.map +1 -0
- package/dist/modules/api/baas/user/types.js +5 -0
- package/dist/modules/api/baas/user/types.js.map +1 -0
- package/dist/modules/api/baas/user/user.service.d.ts +73 -0
- package/dist/modules/api/baas/user/user.service.d.ts.map +1 -0
- package/dist/modules/api/baas/user/user.service.js +140 -0
- package/dist/modules/api/baas/user/user.service.js.map +1 -0
- package/dist/modules/api/baas/wallet/index.d.ts +3 -0
- package/dist/modules/api/baas/wallet/index.d.ts.map +1 -0
- package/dist/modules/api/baas/wallet/index.js +2 -0
- package/dist/modules/api/baas/wallet/index.js.map +1 -0
- package/dist/modules/api/baas/wallet/types.d.ts +26 -0
- package/dist/modules/api/baas/wallet/types.d.ts.map +1 -0
- package/dist/modules/api/baas/wallet/types.js +5 -0
- package/dist/modules/api/baas/wallet/types.js.map +1 -0
- package/dist/modules/api/baas/wallet/wallet.service.d.ts +30 -0
- package/dist/modules/api/baas/wallet/wallet.service.d.ts.map +1 -0
- package/dist/modules/api/baas/wallet/wallet.service.js +43 -0
- package/dist/modules/api/baas/wallet/wallet.service.js.map +1 -0
- package/dist/modules/api/index.d.ts +7 -0
- package/dist/modules/api/index.d.ts.map +1 -0
- package/dist/modules/api/index.js +5 -0
- package/dist/modules/api/index.js.map +1 -0
- package/dist/modules/api/internal/endpoints/wallets.api.d.ts +8 -0
- package/dist/modules/api/internal/endpoints/wallets.api.d.ts.map +1 -0
- package/dist/modules/api/internal/endpoints/wallets.api.js +9 -0
- package/dist/modules/api/internal/endpoints/wallets.api.js.map +1 -0
- package/dist/modules/api/internal/endpoints/withdrawal.api.d.ts +8 -0
- package/dist/modules/api/internal/endpoints/withdrawal.api.d.ts.map +1 -0
- package/dist/modules/api/internal/endpoints/withdrawal.api.js +10 -0
- package/dist/modules/api/internal/endpoints/withdrawal.api.js.map +1 -0
- package/dist/modules/api/types/common.types.d.ts +19 -0
- package/dist/modules/api/types/common.types.d.ts.map +1 -0
- package/dist/modules/api/types/common.types.js +2 -0
- package/dist/modules/api/types/common.types.js.map +1 -0
- package/dist/modules/api/types/wallets.types.d.ts +12 -0
- package/dist/modules/api/types/wallets.types.d.ts.map +1 -0
- package/dist/modules/api/types/wallets.types.js +2 -0
- package/dist/modules/api/types/wallets.types.js.map +1 -0
- package/dist/modules/auth/auth.service.d.ts +32 -0
- package/dist/modules/auth/auth.service.d.ts.map +1 -0
- package/dist/modules/auth/auth.service.js +182 -0
- package/dist/modules/auth/auth.service.js.map +1 -0
- package/dist/modules/auth/index.d.ts +3 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +2 -0
- package/dist/modules/auth/index.js.map +1 -0
- package/dist/modules/auth/types.d.ts +82 -0
- package/dist/modules/auth/types.d.ts.map +1 -0
- package/dist/modules/auth/types.js +2 -0
- package/dist/modules/auth/types.js.map +1 -0
- package/dist/modules/crypto/chains/base/account-abstraction.service.d.ts +28 -0
- package/dist/modules/crypto/chains/base/account-abstraction.service.d.ts.map +1 -0
- package/dist/modules/crypto/chains/base/account-abstraction.service.js +173 -0
- package/dist/modules/crypto/chains/base/account-abstraction.service.js.map +1 -0
- package/dist/modules/crypto/chains/base/account.contract.service.d.ts +26 -0
- package/dist/modules/crypto/chains/base/account.contract.service.d.ts.map +1 -0
- package/dist/modules/crypto/chains/base/account.contract.service.js +109 -0
- package/dist/modules/crypto/chains/base/account.contract.service.js.map +1 -0
- package/dist/modules/crypto/chains/base/crypto.service.d.ts +32 -0
- package/dist/modules/crypto/chains/base/crypto.service.d.ts.map +1 -0
- package/dist/modules/crypto/chains/base/crypto.service.js +211 -0
- package/dist/modules/crypto/chains/base/crypto.service.js.map +1 -0
- package/dist/modules/crypto/chains/base/index.d.ts +6 -0
- package/dist/modules/crypto/chains/base/index.d.ts.map +1 -0
- package/dist/modules/crypto/chains/base/index.js +54 -0
- package/dist/modules/crypto/chains/base/index.js.map +1 -0
- package/dist/modules/crypto/chains/base/wallet.service.d.ts +53 -0
- package/dist/modules/crypto/chains/base/wallet.service.d.ts.map +1 -0
- package/dist/modules/crypto/chains/base/wallet.service.js +142 -0
- package/dist/modules/crypto/chains/base/wallet.service.js.map +1 -0
- package/dist/modules/crypto/chains/base/yield.service.d.ts +38 -0
- package/dist/modules/crypto/chains/base/yield.service.d.ts.map +1 -0
- package/dist/modules/crypto/chains/base/yield.service.js +297 -0
- package/dist/modules/crypto/chains/base/yield.service.js.map +1 -0
- package/dist/modules/crypto/chains/index.d.ts +5 -0
- package/dist/modules/crypto/chains/index.d.ts.map +1 -0
- package/dist/modules/crypto/chains/index.js +3 -0
- package/dist/modules/crypto/chains/index.js.map +1 -0
- package/dist/modules/crypto/chains/registry.d.ts +11 -0
- package/dist/modules/crypto/chains/registry.d.ts.map +1 -0
- package/dist/modules/crypto/chains/registry.js +19 -0
- package/dist/modules/crypto/chains/registry.js.map +1 -0
- package/dist/modules/crypto/chains/types.d.ts +37 -0
- package/dist/modules/crypto/chains/types.d.ts.map +1 -0
- package/dist/modules/crypto/chains/types.js +2 -0
- package/dist/modules/crypto/chains/types.js.map +1 -0
- package/dist/modules/crypto/crypto.module.d.ts +40 -0
- package/dist/modules/crypto/crypto.module.d.ts.map +1 -0
- package/dist/modules/crypto/crypto.module.js +127 -0
- package/dist/modules/crypto/crypto.module.js.map +1 -0
- package/dist/modules/crypto/index.d.ts +9 -0
- package/dist/modules/crypto/index.d.ts.map +1 -0
- package/dist/modules/crypto/index.js +8 -0
- package/dist/modules/crypto/index.js.map +1 -0
- package/dist/modules/crypto/interfaces/account-abstraction.interface.d.ts +8 -0
- package/dist/modules/crypto/interfaces/account-abstraction.interface.d.ts.map +1 -0
- package/dist/modules/crypto/interfaces/account-abstraction.interface.js +2 -0
- package/dist/modules/crypto/interfaces/account-abstraction.interface.js.map +1 -0
- package/dist/modules/crypto/interfaces/account-contract.interface.d.ts +8 -0
- package/dist/modules/crypto/interfaces/account-contract.interface.d.ts.map +1 -0
- package/dist/modules/crypto/interfaces/account-contract.interface.js +2 -0
- package/dist/modules/crypto/interfaces/account-contract.interface.js.map +1 -0
- package/dist/modules/crypto/interfaces/crypto.interface.d.ts +50 -0
- package/dist/modules/crypto/interfaces/crypto.interface.d.ts.map +1 -0
- package/dist/modules/crypto/interfaces/crypto.interface.js +2 -0
- package/dist/modules/crypto/interfaces/crypto.interface.js.map +1 -0
- package/dist/modules/crypto/interfaces/index.d.ts +5 -0
- package/dist/modules/crypto/interfaces/index.d.ts.map +1 -0
- package/dist/modules/crypto/interfaces/index.js +2 -0
- package/dist/modules/crypto/interfaces/index.js.map +1 -0
- package/dist/modules/crypto/interfaces/yield.interface.d.ts +19 -0
- package/dist/modules/crypto/interfaces/yield.interface.d.ts.map +1 -0
- package/dist/modules/crypto/interfaces/yield.interface.js +2 -0
- package/dist/modules/crypto/interfaces/yield.interface.js.map +1 -0
- package/dist/modules/crypto/internal/contract-registry.service.d.ts +14 -0
- package/dist/modules/crypto/internal/contract-registry.service.d.ts.map +1 -0
- package/dist/modules/crypto/internal/contract-registry.service.js +76 -0
- package/dist/modules/crypto/internal/contract-registry.service.js.map +1 -0
- package/dist/modules/crypto/internal/smartDepositWallet.service.d.ts +39 -0
- package/dist/modules/crypto/internal/smartDepositWallet.service.d.ts.map +1 -0
- package/dist/modules/crypto/internal/smartDepositWallet.service.js +183 -0
- package/dist/modules/crypto/internal/smartDepositWallet.service.js.map +1 -0
- package/dist/modules/crypto/types.d.ts +47 -0
- package/dist/modules/crypto/types.d.ts.map +1 -0
- package/dist/modules/crypto/types.js +2 -0
- package/dist/modules/crypto/types.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ApiResponse<T> {
|
|
2
|
+
data: T;
|
|
3
|
+
success: boolean;
|
|
4
|
+
message?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface PaginatedResponse<T> {
|
|
7
|
+
data: T[];
|
|
8
|
+
total: number;
|
|
9
|
+
page: number;
|
|
10
|
+
limit: number;
|
|
11
|
+
hasMore: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ApiError {
|
|
14
|
+
code: string;
|
|
15
|
+
message: string;
|
|
16
|
+
details?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
export type EmptyResponse = Record<string, never>;
|
|
19
|
+
//# sourceMappingURL=common.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../src/modules/api/types/common.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.types.js","sourceRoot":"","sources":["../../../../src/modules/api/types/common.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface WalletBalance {
|
|
2
|
+
tokenSymbol: string;
|
|
3
|
+
tokenAddress: string;
|
|
4
|
+
balance: string;
|
|
5
|
+
balanceUsd: string;
|
|
6
|
+
decimals: number;
|
|
7
|
+
}
|
|
8
|
+
export interface WalletsBalanceResponse {
|
|
9
|
+
balances: WalletBalance[];
|
|
10
|
+
totalBalanceUsd: string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=wallets.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallets.types.d.ts","sourceRoot":"","sources":["../../../../src/modules/api/types/wallets.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallets.types.js","sourceRoot":"","sources":["../../../../src/modules/api/types/wallets.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { LoginCompanyParams, RegisterUserParams, RegisterCompanyParams, AuthResponse, RegisterUserResponse, LoginUserParams } from './types';
|
|
2
|
+
import type { HttpClient, Logger } from '../../core';
|
|
3
|
+
export declare class AuthService {
|
|
4
|
+
private static instance;
|
|
5
|
+
private readonly httpClient;
|
|
6
|
+
private readonly logger?;
|
|
7
|
+
private readonly chainId;
|
|
8
|
+
private state;
|
|
9
|
+
private constructor();
|
|
10
|
+
static initialize(config: {
|
|
11
|
+
httpClient: HttpClient;
|
|
12
|
+
chainId: number;
|
|
13
|
+
logger?: Logger;
|
|
14
|
+
}): AuthService;
|
|
15
|
+
static getInstance(): AuthService;
|
|
16
|
+
static resetInstance(): void;
|
|
17
|
+
static buildAuthHeaders(params: LoginUserParams): Record<string, string>;
|
|
18
|
+
login(params: LoginUserParams): Promise<AuthResponse>;
|
|
19
|
+
loginCompany(params: LoginCompanyParams): Promise<AuthResponse>;
|
|
20
|
+
registerUser(params: RegisterUserParams): Promise<RegisterUserResponse>;
|
|
21
|
+
registerCompany(params: RegisterCompanyParams): Promise<void>;
|
|
22
|
+
setAuthState(response: AuthResponse, userWallet?: string): void;
|
|
23
|
+
setUserWallet(wallet: string): void;
|
|
24
|
+
getAccessToken(): string | null;
|
|
25
|
+
isAuthenticated(): boolean;
|
|
26
|
+
getUserWallet(): string | null;
|
|
27
|
+
private isTokenExpired;
|
|
28
|
+
clearAuth(): void;
|
|
29
|
+
ensureAuthenticated(): void;
|
|
30
|
+
getAuthHeaders(): Record<string, string>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=auth.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EAEpB,eAAe,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIrD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,KAAK,CAIX;IAEF,OAAO;IAMP,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;QACxB,UAAU,EAAE,UAAU,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,WAAW;IAOf,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiBlE,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IAgCrD,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB/D,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+CvE,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnE,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAInC,cAAc,IAAI,MAAM,GAAG,IAAI;IAc/B,eAAe,IAAI,OAAO;IAI1B,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,cAAc;IAQtB,SAAS,IAAI,IAAI;IASjB,mBAAmB,IAAI,IAAI;IAM3B,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAczC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { AuthenticationError, ValidationError } from '../../core';
|
|
2
|
+
export class AuthService {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
this.state = {
|
|
5
|
+
accessToken: null,
|
|
6
|
+
expiresAt: null,
|
|
7
|
+
userWallet: null,
|
|
8
|
+
};
|
|
9
|
+
this.httpClient = config.httpClient;
|
|
10
|
+
this.chainId = config.chainId;
|
|
11
|
+
this.logger = config.logger;
|
|
12
|
+
}
|
|
13
|
+
static initialize(config) {
|
|
14
|
+
if (!AuthService.instance) {
|
|
15
|
+
AuthService.instance = new AuthService(config);
|
|
16
|
+
}
|
|
17
|
+
return AuthService.instance;
|
|
18
|
+
}
|
|
19
|
+
static getInstance() {
|
|
20
|
+
if (!AuthService.instance) {
|
|
21
|
+
throw new AuthenticationError('AuthService not initialized. Call initialize() first.');
|
|
22
|
+
}
|
|
23
|
+
return AuthService.instance;
|
|
24
|
+
}
|
|
25
|
+
static resetInstance() {
|
|
26
|
+
AuthService.instance = null;
|
|
27
|
+
}
|
|
28
|
+
static buildAuthHeaders(params) {
|
|
29
|
+
if (params.privy) {
|
|
30
|
+
return {
|
|
31
|
+
Authorization: `Bearer ${params.privy.accessToken}`,
|
|
32
|
+
Identity: `Bearer ${params.privy.identityToken}`,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (params.authorizationToken) {
|
|
36
|
+
return {
|
|
37
|
+
Authorization: `Bearer ${params.authorizationToken}`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
throw new ValidationError('Either privy or authorizationToken must be provided');
|
|
41
|
+
}
|
|
42
|
+
async login(params) {
|
|
43
|
+
this.logger?.info('Logging in user...');
|
|
44
|
+
const authHeaders = AuthService.buildAuthHeaders(params);
|
|
45
|
+
if (params.userWallet) {
|
|
46
|
+
authHeaders['X-User-Wallet'] = params.userWallet;
|
|
47
|
+
this.state.userWallet = params.userWallet;
|
|
48
|
+
}
|
|
49
|
+
authHeaders['X-Chain-Id'] = String(this.chainId);
|
|
50
|
+
try {
|
|
51
|
+
const response = await this.httpClient.post('api/v1/user/authorize', {}, {
|
|
52
|
+
headers: authHeaders,
|
|
53
|
+
requireAuth: false,
|
|
54
|
+
});
|
|
55
|
+
this.setAuthState(response);
|
|
56
|
+
this.logger?.info('User logged in successfully');
|
|
57
|
+
return response;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.logger?.error('Login failed:', error?.message);
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async loginCompany(params) {
|
|
65
|
+
this.logger?.info('Logging in company...', { companyAddress: params.companyAddress });
|
|
66
|
+
const authHeaders = AuthService.buildAuthHeaders(params);
|
|
67
|
+
const body = params.companyAddress ? { corporation_address: params.companyAddress } : undefined;
|
|
68
|
+
const response = await this.httpClient.post('api/v1/corporations/login', body, {
|
|
69
|
+
headers: authHeaders,
|
|
70
|
+
requireAuth: false,
|
|
71
|
+
});
|
|
72
|
+
this.setAuthState(response);
|
|
73
|
+
this.logger?.info('Company logged in successfully');
|
|
74
|
+
return response;
|
|
75
|
+
}
|
|
76
|
+
async registerUser(params) {
|
|
77
|
+
this.logger?.info('Registering user...');
|
|
78
|
+
const authHeaders = AuthService.buildAuthHeaders(params);
|
|
79
|
+
authHeaders['X-Chain-Id'] = String(this.chainId);
|
|
80
|
+
if (params.privy) {
|
|
81
|
+
if (params.userWallet) {
|
|
82
|
+
authHeaders['X-User-Wallet'] = params.userWallet;
|
|
83
|
+
}
|
|
84
|
+
const response = await this.httpClient.post('api/v1/user/retail', { country: params.country }, {
|
|
85
|
+
headers: authHeaders,
|
|
86
|
+
requireAuth: false,
|
|
87
|
+
});
|
|
88
|
+
this.logger?.info('User registered successfully', { userId: response.id });
|
|
89
|
+
return response;
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const body = { wallet_address: params.userWallet };
|
|
93
|
+
if (params.initialData) {
|
|
94
|
+
body.initial_data = params.initialData;
|
|
95
|
+
}
|
|
96
|
+
const response = await this.httpClient.post('api/v2/user', body, {
|
|
97
|
+
headers: authHeaders,
|
|
98
|
+
requireAuth: false,
|
|
99
|
+
});
|
|
100
|
+
this.logger?.info('User registered successfully', { userId: response.id });
|
|
101
|
+
return response;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
this.logger?.error('User registration failed:', error?.message);
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async registerCompany(params) {
|
|
109
|
+
this.logger?.info('Registering company...', { companyName: params.companyName });
|
|
110
|
+
const authHeaders = AuthService.buildAuthHeaders(params);
|
|
111
|
+
await this.httpClient.post('api/v1/corporations/register', {
|
|
112
|
+
corporation_address: params.companyAddress,
|
|
113
|
+
corporation_name: params.companyName,
|
|
114
|
+
corporation_registration_country: params.registrationCountry,
|
|
115
|
+
corporation_registration_number: params.registrationNumber,
|
|
116
|
+
}, {
|
|
117
|
+
headers: authHeaders,
|
|
118
|
+
requireAuth: false,
|
|
119
|
+
});
|
|
120
|
+
this.logger?.info('Company registered successfully');
|
|
121
|
+
}
|
|
122
|
+
setAuthState(response, userWallet) {
|
|
123
|
+
this.state.accessToken = response.access_token;
|
|
124
|
+
this.state.expiresAt = response.expires_at;
|
|
125
|
+
if (userWallet) {
|
|
126
|
+
this.state.userWallet = userWallet;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
setUserWallet(wallet) {
|
|
130
|
+
this.state.userWallet = wallet;
|
|
131
|
+
}
|
|
132
|
+
getAccessToken() {
|
|
133
|
+
if (!this.state.accessToken) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
if (this.isTokenExpired()) {
|
|
137
|
+
this.logger?.warn('Access token has expired');
|
|
138
|
+
this.clearAuth();
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
return this.state.accessToken;
|
|
142
|
+
}
|
|
143
|
+
isAuthenticated() {
|
|
144
|
+
return this.getAccessToken() !== null;
|
|
145
|
+
}
|
|
146
|
+
getUserWallet() {
|
|
147
|
+
return this.state.userWallet;
|
|
148
|
+
}
|
|
149
|
+
isTokenExpired() {
|
|
150
|
+
if (!this.state.expiresAt) {
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
const now = Math.floor(Date.now() / 1000);
|
|
154
|
+
return this.state.expiresAt < now;
|
|
155
|
+
}
|
|
156
|
+
clearAuth() {
|
|
157
|
+
this.state = {
|
|
158
|
+
accessToken: null,
|
|
159
|
+
expiresAt: null,
|
|
160
|
+
userWallet: null,
|
|
161
|
+
};
|
|
162
|
+
this.logger?.info('Auth state cleared');
|
|
163
|
+
}
|
|
164
|
+
ensureAuthenticated() {
|
|
165
|
+
if (!this.isAuthenticated()) {
|
|
166
|
+
throw new AuthenticationError('User is not authenticated. Please login first.');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
getAuthHeaders() {
|
|
170
|
+
const headers = {};
|
|
171
|
+
const token = this.getAccessToken();
|
|
172
|
+
if (token) {
|
|
173
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
174
|
+
}
|
|
175
|
+
if (this.state.userWallet) {
|
|
176
|
+
headers['X-User-Wallet'] = this.state.userWallet;
|
|
177
|
+
}
|
|
178
|
+
return headers;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
AuthService.instance = null;
|
|
182
|
+
//# sourceMappingURL=auth.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/modules/auth/auth.service.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,OAAO,WAAW;IAatB,YAAoB,MAAoE;QANhF,UAAK,GAAc;YACzB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SACjB,CAAC;QAGA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAIjB;QACC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1B,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,mBAAmB,CAAC,uDAAuD,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAuB;QAC7C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO;gBACL,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;gBACnD,QAAQ,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE;aACjD,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,OAAO;gBACL,aAAa,EAAE,UAAU,MAAM,CAAC,kBAAkB,EAAE;aACrD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,eAAe,CAAC,qDAAqD,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAuB;QACjC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAExC,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,WAAW,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5C,CAAC;QAED,WAAW,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC,uBAAuB,EACvB,EAAE,EACF;gBACE,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,KAAK;aACnB,CACF,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAEjD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAEtF,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC,2BAA2B,EAC3B,IAAI,EACJ;YACE,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,KAAK;SACnB,CACF,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAEpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEzC,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzD,WAAW,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,WAAW,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;YACnD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC,oBAAoB,EACpB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAC3B;gBACE,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,KAAK;aACnB,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B,EAAE,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;YACzC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC,aAAa,EACb,IAAI,EACJ;gBACE,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,KAAK;aACnB,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,2BAA2B,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACxB,8BAA8B,EAC9B;YACE,mBAAmB,EAAE,MAAM,CAAC,cAAc;YAC1C,gBAAgB,EAAE,MAAM,CAAC,WAAW;YACpC,gCAAgC,EAAE,MAAM,CAAC,mBAAmB;YAC5D,+BAA+B,EAAE,MAAM,CAAC,kBAAkB;SAC3D,EACD;YACE,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,KAAK;SACnB,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,CAAC,QAAsB,EAAE,UAAmB;QACtD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACrC,CAAC;IACH,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC;IACxC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;IACpC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,mBAAmB,CAAC,gDAAgD,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,cAAc;QACZ,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACnD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;;AA1Pc,oBAAQ,GAAuB,IAAI,AAA3B,CAA4B"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { AuthService } from './auth.service';
|
|
2
|
+
export type { PrivyAuth, LoginUserParams, LoginCompanyParams, RegisterUserParams, RegisterCompanyParams, AuthResponse, RegisterUserResponse, AuthState, InitialData, UserProfile, ResidenceAddress, ValidateUserParams, ValidateUserResponse, SendVerificationLinkRequest, VerifyTokenRequest, VerifyTokenResponse, } from './types';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export interface PrivyAuth {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
identityToken: string;
|
|
4
|
+
}
|
|
5
|
+
export interface LoginUserParams {
|
|
6
|
+
privy?: PrivyAuth;
|
|
7
|
+
authorizationToken?: string;
|
|
8
|
+
userWallet?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface LoginCompanyParams {
|
|
11
|
+
privy?: PrivyAuth;
|
|
12
|
+
authorizationToken?: string;
|
|
13
|
+
/** Required for Privy auth. Optional for partner token auth. */
|
|
14
|
+
companyAddress?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface UserProfile {
|
|
17
|
+
date_of_birth: string;
|
|
18
|
+
email: string;
|
|
19
|
+
first_name: string;
|
|
20
|
+
last_name: string;
|
|
21
|
+
nationality: string;
|
|
22
|
+
phone_number: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ResidenceAddress {
|
|
25
|
+
city: string;
|
|
26
|
+
country: string;
|
|
27
|
+
line1: string;
|
|
28
|
+
line2?: string;
|
|
29
|
+
post_code: string;
|
|
30
|
+
state?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface InitialData {
|
|
33
|
+
profile: UserProfile;
|
|
34
|
+
residence_address: ResidenceAddress;
|
|
35
|
+
}
|
|
36
|
+
export interface RegisterUserParams {
|
|
37
|
+
privy?: PrivyAuth;
|
|
38
|
+
authorizationToken?: string;
|
|
39
|
+
userWallet?: string;
|
|
40
|
+
country: string;
|
|
41
|
+
initialData?: InitialData;
|
|
42
|
+
}
|
|
43
|
+
export interface RegisterCompanyParams {
|
|
44
|
+
privy?: PrivyAuth;
|
|
45
|
+
authorizationToken?: string;
|
|
46
|
+
companyAddress: string;
|
|
47
|
+
companyName: string;
|
|
48
|
+
registrationCountry: string;
|
|
49
|
+
registrationNumber: string;
|
|
50
|
+
}
|
|
51
|
+
export interface AuthResponse {
|
|
52
|
+
access_token: string;
|
|
53
|
+
expires_at: number;
|
|
54
|
+
}
|
|
55
|
+
export interface RegisterUserResponse {
|
|
56
|
+
id: string;
|
|
57
|
+
}
|
|
58
|
+
export interface AuthState {
|
|
59
|
+
accessToken: string | null;
|
|
60
|
+
expiresAt: number | null;
|
|
61
|
+
userWallet: string | null;
|
|
62
|
+
}
|
|
63
|
+
export interface ValidateUserParams {
|
|
64
|
+
privy: PrivyAuth;
|
|
65
|
+
email?: string;
|
|
66
|
+
phoneNumber?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface ValidateUserResponse {
|
|
69
|
+
valid: boolean;
|
|
70
|
+
errors?: string[];
|
|
71
|
+
}
|
|
72
|
+
export interface SendVerificationLinkRequest {
|
|
73
|
+
email: string;
|
|
74
|
+
}
|
|
75
|
+
export interface VerifyTokenRequest {
|
|
76
|
+
token: string;
|
|
77
|
+
}
|
|
78
|
+
export interface VerifyTokenResponse {
|
|
79
|
+
valid: boolean;
|
|
80
|
+
userId?: string;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,iBAAiB,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/auth/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { KernelAccountClient } from '@zerodev/sdk';
|
|
2
|
+
import { PublicClient } from 'viem';
|
|
3
|
+
import type { IAccountAbstractionService } from '../../interfaces';
|
|
4
|
+
import type { IWalletService } from '../types';
|
|
5
|
+
import { ContractAddresses, Logger } from '../../../../core';
|
|
6
|
+
export declare class BaseAccountAbstractionService implements IAccountAbstractionService {
|
|
7
|
+
private readonly contracts;
|
|
8
|
+
private readonly walletService;
|
|
9
|
+
private readonly logger?;
|
|
10
|
+
private readonly publicRpcClient;
|
|
11
|
+
private readonly kernelPublicClient;
|
|
12
|
+
constructor(config: {
|
|
13
|
+
publicRpcClient: PublicClient;
|
|
14
|
+
kernelPublicClient: KernelAccountClient;
|
|
15
|
+
contracts: ContractAddresses;
|
|
16
|
+
walletService: IWalletService;
|
|
17
|
+
logger?: Logger;
|
|
18
|
+
});
|
|
19
|
+
isExecutorInstalled(): Promise<boolean>;
|
|
20
|
+
isPolicyInstalled(): Promise<boolean>;
|
|
21
|
+
signInPolicyAndExecutor(): Promise<any>;
|
|
22
|
+
signInPolicy(): Promise<any>;
|
|
23
|
+
signInExecutor(): Promise<any>;
|
|
24
|
+
private createExecutionDelayValidator;
|
|
25
|
+
private getExecutorCallData;
|
|
26
|
+
private getPolicyCallData;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=account-abstraction.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-abstraction.service.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto/chains/base/account-abstraction.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,cAAc,CAAC;AAGzE,OAAO,EAAsC,YAAY,EAAyB,MAAM,MAAM,CAAC;AAI/F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG7D,qBAAa,6BAA8B,YAAW,0BAA0B;IAC9E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;gBAE7C,MAAM,EAAE;QAClB,eAAe,EAAE,YAAY,CAAC;QAC9B,kBAAkB,EAAE,mBAAmB,CAAC;QACxC,SAAS,EAAE,iBAAiB,CAAC;QAC7B,aAAa,EAAE,cAAc,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAQY,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAkB9C,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAqE9B,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAsBvC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAe5B,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;YAe7B,6BAA6B;YAiB7B,mBAAmB;YAYnB,iBAAiB;CAuBhC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { toPermissionValidator } from '@zerodev/permissions';
|
|
2
|
+
import { toSudoPolicy } from '@zerodev/permissions/policies';
|
|
3
|
+
import { toECDSASigner } from '@zerodev/permissions/signers';
|
|
4
|
+
import { KernelV3_1AccountAbi } from '@zerodev/sdk';
|
|
5
|
+
import { getEntryPoint, KERNEL_V3_1, VALIDATOR_TYPE } from '@zerodev/sdk/constants';
|
|
6
|
+
import { concatHex, encodeFunctionData, pad, zeroAddress, zeroHash } from 'viem';
|
|
7
|
+
import { signerAbi } from '../../../../abi';
|
|
8
|
+
export class BaseAccountAbstractionService {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.publicRpcClient = config.publicRpcClient;
|
|
11
|
+
this.kernelPublicClient = config.kernelPublicClient;
|
|
12
|
+
this.contracts = config.contracts;
|
|
13
|
+
this.walletService = config.walletService;
|
|
14
|
+
this.logger = config.logger;
|
|
15
|
+
}
|
|
16
|
+
async isExecutorInstalled() {
|
|
17
|
+
const smartWalletClient = await this.walletService.getSmartWalletClientWithoutPolicy();
|
|
18
|
+
try {
|
|
19
|
+
const fundsManagementContract = this.contracts.fundsManagement;
|
|
20
|
+
const res = await this.publicRpcClient.readContract({
|
|
21
|
+
address: smartWalletClient.account.address,
|
|
22
|
+
abi: KernelV3_1AccountAbi,
|
|
23
|
+
functionName: 'isModuleInstalled',
|
|
24
|
+
args: [BigInt(2), fundsManagementContract, '0x'],
|
|
25
|
+
});
|
|
26
|
+
return res;
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
console.error('Error checking if executor is installed:', e);
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async isPolicyInstalled() {
|
|
34
|
+
const mainWalletClient = await this.walletService.getMainWalletClient();
|
|
35
|
+
const mainWalletAddress = mainWalletClient?.address;
|
|
36
|
+
const smartWalletClient = await this.walletService.getSmartWalletClientWithoutPolicy();
|
|
37
|
+
try {
|
|
38
|
+
const bytecode = await this.publicRpcClient.getCode({
|
|
39
|
+
address: smartWalletClient.account.address,
|
|
40
|
+
});
|
|
41
|
+
if (!bytecode || bytecode === '0x') {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const rootValidatorId = (await this.publicRpcClient.readContract({
|
|
45
|
+
address: smartWalletClient.account.address,
|
|
46
|
+
abi: KernelV3_1AccountAbi,
|
|
47
|
+
functionName: 'rootValidator',
|
|
48
|
+
}));
|
|
49
|
+
if (!rootValidatorId || rootValidatorId === '0x') {
|
|
50
|
+
this.logger?.info('Policy not installed');
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const permissionId = ('0x' +
|
|
54
|
+
rootValidatorId.replace('0x', '').slice(2, 10));
|
|
55
|
+
const permissionConfig = await this.publicRpcClient.readContract({
|
|
56
|
+
address: smartWalletClient.account.address,
|
|
57
|
+
abi: KernelV3_1AccountAbi,
|
|
58
|
+
functionName: 'permissionConfig',
|
|
59
|
+
args: [permissionId],
|
|
60
|
+
});
|
|
61
|
+
const { policyData, signer } = permissionConfig;
|
|
62
|
+
if (policyData.length !== 1) {
|
|
63
|
+
this.logger?.info('Policy not installed');
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
const data = policyData[0];
|
|
67
|
+
const policyAddress = '0x' + data.replace('0x', '').slice(4, 44);
|
|
68
|
+
const paddedPermissionId = pad(permissionId, {
|
|
69
|
+
size: 32,
|
|
70
|
+
dir: 'right',
|
|
71
|
+
});
|
|
72
|
+
const ownerAddress = await this.publicRpcClient.readContract({
|
|
73
|
+
address: signer,
|
|
74
|
+
abi: signerAbi,
|
|
75
|
+
functionName: 'signer',
|
|
76
|
+
args: [paddedPermissionId, smartWalletClient.account.address],
|
|
77
|
+
});
|
|
78
|
+
const executionDelayPolicyContract = await this.contracts.executionDelayPolicy;
|
|
79
|
+
return (policyAddress.toLowerCase() === executionDelayPolicyContract?.toLowerCase() &&
|
|
80
|
+
ownerAddress.toLowerCase() === mainWalletAddress.toLowerCase());
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
this.logger?.error('Error checking if policy is installed:', e);
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async signInPolicyAndExecutor() {
|
|
88
|
+
const smartWalletClient = await this.walletService.getSmartWalletClientWithoutPolicy();
|
|
89
|
+
const executorCallData = await this.getExecutorCallData();
|
|
90
|
+
const policyCallData = await this.getPolicyCallData();
|
|
91
|
+
const calls = await smartWalletClient.account.encodeCalls([
|
|
92
|
+
{
|
|
93
|
+
to: smartWalletClient.account.address,
|
|
94
|
+
value: BigInt(0),
|
|
95
|
+
data: executorCallData,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
to: smartWalletClient.account.address,
|
|
99
|
+
value: BigInt(0),
|
|
100
|
+
data: policyCallData,
|
|
101
|
+
},
|
|
102
|
+
]);
|
|
103
|
+
return await this.walletService.sendUserOperationsAndWaitReceipt(calls, smartWalletClient);
|
|
104
|
+
}
|
|
105
|
+
async signInPolicy() {
|
|
106
|
+
const smartWalletClient = await this.walletService.getSmartWalletClientWithoutPolicy();
|
|
107
|
+
const policyCallData = await this.getPolicyCallData();
|
|
108
|
+
const calls = await smartWalletClient.account.encodeCalls([
|
|
109
|
+
{
|
|
110
|
+
to: smartWalletClient.account.address,
|
|
111
|
+
value: BigInt(0),
|
|
112
|
+
data: policyCallData,
|
|
113
|
+
},
|
|
114
|
+
]);
|
|
115
|
+
return await this.walletService.sendUserOperationsAndWaitReceipt(calls, smartWalletClient);
|
|
116
|
+
}
|
|
117
|
+
async signInExecutor() {
|
|
118
|
+
const smartWalletClient = await this.walletService.getSmartWalletClientWithoutPolicy();
|
|
119
|
+
const policyCallData = await this.getExecutorCallData();
|
|
120
|
+
const calls = await smartWalletClient.account.encodeCalls([
|
|
121
|
+
{
|
|
122
|
+
to: smartWalletClient.account.address,
|
|
123
|
+
value: BigInt(0),
|
|
124
|
+
data: policyCallData,
|
|
125
|
+
},
|
|
126
|
+
]);
|
|
127
|
+
return await this.walletService.sendUserOperationsAndWaitReceipt(calls, smartWalletClient);
|
|
128
|
+
}
|
|
129
|
+
async createExecutionDelayValidator() {
|
|
130
|
+
const executionDelayPolicyContract = this.contracts.executionDelayPolicy;
|
|
131
|
+
const rootPolicy = toSudoPolicy({ policyAddress: executionDelayPolicyContract });
|
|
132
|
+
const smartAccountSigner = await this.walletService.getSmartAccountSigner();
|
|
133
|
+
const res = await toPermissionValidator(this.kernelPublicClient, {
|
|
134
|
+
entryPoint: getEntryPoint('0.7'),
|
|
135
|
+
signer: await toECDSASigner({ signer: smartAccountSigner }),
|
|
136
|
+
kernelVersion: KERNEL_V3_1,
|
|
137
|
+
policies: [rootPolicy],
|
|
138
|
+
});
|
|
139
|
+
res.address = executionDelayPolicyContract;
|
|
140
|
+
return res;
|
|
141
|
+
}
|
|
142
|
+
async getExecutorCallData() {
|
|
143
|
+
const initData = concatHex([zeroAddress, zeroHash]);
|
|
144
|
+
const fundsManagementContract = this.contracts.fundsManagement;
|
|
145
|
+
return encodeFunctionData({
|
|
146
|
+
abi: KernelV3_1AccountAbi,
|
|
147
|
+
functionName: 'installModule',
|
|
148
|
+
args: [BigInt(2), fundsManagementContract, initData],
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
async getPolicyCallData() {
|
|
152
|
+
const validator = await this.createExecutionDelayValidator();
|
|
153
|
+
const smartWallet = await this.walletService.getSmartWalletClientWithoutPolicy();
|
|
154
|
+
const rootValidatorId = concatHex([
|
|
155
|
+
VALIDATOR_TYPE[validator.validatorType],
|
|
156
|
+
pad(validator.getIdentifier(), {
|
|
157
|
+
size: 20,
|
|
158
|
+
dir: 'right',
|
|
159
|
+
}),
|
|
160
|
+
]);
|
|
161
|
+
return encodeFunctionData({
|
|
162
|
+
abi: KernelV3_1AccountAbi,
|
|
163
|
+
functionName: 'changeRootValidator',
|
|
164
|
+
args: [
|
|
165
|
+
rootValidatorId,
|
|
166
|
+
zeroAddress,
|
|
167
|
+
await validator.getEnableData(smartWallet.account.address),
|
|
168
|
+
'0x',
|
|
169
|
+
],
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=account-abstraction.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-abstraction.service.js","sourceRoot":"","sources":["../../../../../src/modules/crypto/chains/base/account-abstraction.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { PublicClient } from 'viem';
|
|
2
|
+
import { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
|
|
3
|
+
import { IWalletService } from '../types';
|
|
4
|
+
import type { IAccountContractService } from '../../interfaces';
|
|
5
|
+
import { ContractAddresses, Logger } from '../../../../core';
|
|
6
|
+
export declare class BaseAccountContractService implements IAccountContractService {
|
|
7
|
+
private readonly walletService;
|
|
8
|
+
private readonly logger?;
|
|
9
|
+
private readonly companyId;
|
|
10
|
+
private readonly publicRpcClient;
|
|
11
|
+
private readonly contracts;
|
|
12
|
+
constructor(config: {
|
|
13
|
+
publicRpcClient: PublicClient;
|
|
14
|
+
walletService: IWalletService;
|
|
15
|
+
companyId: string;
|
|
16
|
+
logger?: Logger;
|
|
17
|
+
contracts: ContractAddresses;
|
|
18
|
+
});
|
|
19
|
+
isWalletInAccounts(): Promise<boolean>;
|
|
20
|
+
isWalletInCorporateAccounts(): Promise<boolean>;
|
|
21
|
+
registerInAccounts(): Promise<WaitForUserOperationReceiptReturnType>;
|
|
22
|
+
registerInCorporateAccounts(): Promise<WaitForUserOperationReceiptReturnType>;
|
|
23
|
+
private getCorporateCallData;
|
|
24
|
+
private getCallData;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=account.contract.service.d.ts.map
|