@aastar/sdk 0.22.0 → 0.23.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/dist/UserClient-J3JPDIG7.cjs +15 -0
- package/dist/{UserClient-AJOGJXOC.cjs.map → UserClient-J3JPDIG7.cjs.map} +1 -1
- package/dist/UserClient-XTHQ2AP3.js +6 -0
- package/dist/{UserClient-Y65JLJ23.js.map → UserClient-XTHQ2AP3.js.map} +1 -1
- package/dist/account.cjs +7 -7
- package/dist/account.js +2 -2
- package/dist/admin.cjs +3 -3
- package/dist/admin.js +2 -2
- package/dist/airaccount.cjs +117 -97
- package/dist/airaccount.d.cts +2 -1
- package/dist/airaccount.d.ts +2 -1
- package/dist/airaccount.js +2 -2
- package/dist/channel.cjs +6 -6
- package/dist/channel.js +2 -2
- package/dist/{chunk-VUNNHEND.js → chunk-2DDWYKF2.js} +9 -9
- package/dist/{chunk-VUNNHEND.js.map → chunk-2DDWYKF2.js.map} +1 -1
- package/dist/{chunk-MG72SGVS.cjs → chunk-2GZMRCQW.cjs} +5 -5
- package/dist/{chunk-MG72SGVS.cjs.map → chunk-2GZMRCQW.cjs.map} +1 -1
- package/dist/{chunk-T2GF4S3E.js → chunk-2UDF62XV.js} +6 -6
- package/dist/{chunk-T2GF4S3E.js.map → chunk-2UDF62XV.js.map} +1 -1
- package/dist/{chunk-XTF6MNIK.js → chunk-2WBSYPUY.js} +3 -3
- package/dist/{chunk-XTF6MNIK.js.map → chunk-2WBSYPUY.js.map} +1 -1
- package/dist/{chunk-2TS6T2WY.js → chunk-5G5SB6CP.js} +3 -3
- package/dist/{chunk-2TS6T2WY.js.map → chunk-5G5SB6CP.js.map} +1 -1
- package/dist/{chunk-BBZAD5G2.cjs → chunk-6I22EW6V.cjs} +11 -11
- package/dist/{chunk-BBZAD5G2.cjs.map → chunk-6I22EW6V.cjs.map} +1 -1
- package/dist/{chunk-6ISQM3SF.cjs → chunk-6PJAHZZ2.cjs} +26 -26
- package/dist/{chunk-6ISQM3SF.cjs.map → chunk-6PJAHZZ2.cjs.map} +1 -1
- package/dist/{chunk-RF3MSLRW.cjs → chunk-CGKPULZX.cjs} +16 -16
- package/dist/{chunk-RF3MSLRW.cjs.map → chunk-CGKPULZX.cjs.map} +1 -1
- package/dist/{chunk-SNVHOCU6.js → chunk-D23CZFOM.js} +3 -3
- package/dist/{chunk-SNVHOCU6.js.map → chunk-D23CZFOM.js.map} +1 -1
- package/dist/{chunk-7RNOKMAJ.cjs → chunk-E37CPC2U.cjs} +9 -9
- package/dist/{chunk-7RNOKMAJ.cjs.map → chunk-E37CPC2U.cjs.map} +1 -1
- package/dist/{chunk-LKSQASFZ.js → chunk-EZC7Q3SG.js} +3 -3
- package/dist/{chunk-LKSQASFZ.js.map → chunk-EZC7Q3SG.js.map} +1 -1
- package/dist/{chunk-JCK7VAZF.js → chunk-H5EQBNC6.js} +8 -8
- package/dist/{chunk-JCK7VAZF.js.map → chunk-H5EQBNC6.js.map} +1 -1
- package/dist/{chunk-OVNOSAL3.cjs → chunk-LAZA3JD7.cjs} +182 -6
- package/dist/chunk-LAZA3JD7.cjs.map +1 -0
- package/dist/{chunk-TS5CXRNI.cjs → chunk-MFBTMF5U.cjs} +3 -3
- package/dist/{chunk-TS5CXRNI.cjs.map → chunk-MFBTMF5U.cjs.map} +1 -1
- package/dist/{chunk-XZDMKHKG.js → chunk-PFMCPSS4.js} +3 -3
- package/dist/{chunk-XZDMKHKG.js.map → chunk-PFMCPSS4.js.map} +1 -1
- package/dist/{chunk-7HO4IUHZ.cjs → chunk-PKYWLTIJ.cjs} +32 -32
- package/dist/{chunk-7HO4IUHZ.cjs.map → chunk-PKYWLTIJ.cjs.map} +1 -1
- package/dist/{chunk-MQMTICTP.js → chunk-SXLWFZFX.js} +3 -3
- package/dist/{chunk-MQMTICTP.js.map → chunk-SXLWFZFX.js.map} +1 -1
- package/dist/{chunk-UUT246S2.js → chunk-TM2LH4ZE.js} +3 -3
- package/dist/{chunk-UUT246S2.js.map → chunk-TM2LH4ZE.js.map} +1 -1
- package/dist/{chunk-R3N7L7RE.js → chunk-UMTCWOQV.js} +4 -4
- package/dist/{chunk-R3N7L7RE.js.map → chunk-UMTCWOQV.js.map} +1 -1
- package/dist/{chunk-DOVGH7HB.cjs → chunk-UQMMEDHO.cjs} +4 -4
- package/dist/{chunk-DOVGH7HB.cjs.map → chunk-UQMMEDHO.cjs.map} +1 -1
- package/dist/{chunk-FZLBMUPN.cjs → chunk-UULR2KA6.cjs} +5 -5
- package/dist/{chunk-FZLBMUPN.cjs.map → chunk-UULR2KA6.cjs.map} +1 -1
- package/dist/{chunk-6OWZOTE7.js → chunk-V65JXHM6.js} +178 -7
- package/dist/chunk-V65JXHM6.js.map +1 -0
- package/dist/{chunk-3OIVYXUG.cjs → chunk-W4ENVPZH.cjs} +6 -6
- package/dist/{chunk-3OIVYXUG.cjs.map → chunk-W4ENVPZH.cjs.map} +1 -1
- package/dist/{chunk-BLA57KBS.cjs → chunk-XFJSY5LG.cjs} +12 -12
- package/dist/{chunk-BLA57KBS.cjs.map → chunk-XFJSY5LG.cjs.map} +1 -1
- package/dist/core.cjs +202 -202
- package/dist/core.d.cts +3 -516
- package/dist/core.d.ts +3 -516
- package/dist/core.js +1 -1
- package/dist/dapp.cjs +5 -5
- package/dist/dapp.js +2 -2
- package/dist/enduser.cjs +6 -6
- package/dist/enduser.js +3 -3
- package/dist/identity.cjs +5 -5
- package/dist/identity.js +2 -2
- package/dist/index.cjs +303 -303
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +15 -15
- package/dist/initConfig-D8jgrcDb.d.cts +518 -0
- package/dist/initConfig-D8jgrcDb.d.ts +518 -0
- package/dist/kms.cjs +117 -97
- package/dist/kms.d.cts +183 -3
- package/dist/kms.d.ts +183 -3
- package/dist/kms.js +2 -2
- package/dist/operator.cjs +6 -6
- package/dist/operator.js +2 -2
- package/dist/paymaster.cjs +15 -15
- package/dist/paymaster.js +2 -2
- package/dist/{src-SCR3OCME.js → src-2P72LYVT.js} +3 -3
- package/dist/src-2P72LYVT.js.map +1 -0
- package/dist/{src-UQ4RDCJG.cjs → src-4Q2WFLO2.cjs} +204 -204
- package/dist/src-4Q2WFLO2.cjs.map +1 -0
- package/dist/{src-WGYHZSLY.cjs → src-HECKBVR2.cjs} +17 -17
- package/dist/src-HECKBVR2.cjs.map +1 -0
- package/dist/{src-MDGW57S5.js → src-KLP4Q2Y3.js} +4 -4
- package/dist/src-KLP4Q2Y3.js.map +1 -0
- package/dist/tokens.cjs +3 -3
- package/dist/tokens.js +2 -2
- package/dist/x402.cjs +25 -25
- package/dist/x402.js +2 -2
- package/package.json +1 -1
- package/dist/UserClient-AJOGJXOC.cjs +0 -15
- package/dist/UserClient-Y65JLJ23.js +0 -6
- package/dist/chunk-6OWZOTE7.js.map +0 -1
- package/dist/chunk-OVNOSAL3.cjs.map +0 -1
- package/dist/src-MDGW57S5.js.map +0 -1
- package/dist/src-SCR3OCME.js.map +0 -1
- package/dist/src-UQ4RDCJG.cjs.map +0 -1
- package/dist/src-WGYHZSLY.cjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMFBTMF5U_cjs = require('./chunk-MFBTMF5U.cjs');
|
|
4
4
|
|
|
5
5
|
// ../admin/src/ProtocolGovernance.ts
|
|
6
|
-
var ProtocolGovernance = class extends
|
|
6
|
+
var ProtocolGovernance = class extends chunkMFBTMF5U_cjs.BaseClient {
|
|
7
7
|
registryAddress;
|
|
8
8
|
entryPointAddress;
|
|
9
9
|
constructor(config) {
|
|
@@ -33,7 +33,7 @@ var ProtocolGovernance = class extends chunkTS5CXRNI_cjs.BaseClient {
|
|
|
33
33
|
* Approve a new SuperPaymaster contract address
|
|
34
34
|
*/
|
|
35
35
|
async setSuperPaymaster(paymaster, options) {
|
|
36
|
-
const registry =
|
|
36
|
+
const registry = chunkMFBTMF5U_cjs.registryActions(this.registryAddress);
|
|
37
37
|
return await registry(this.client).setSuperPaymaster({
|
|
38
38
|
paymaster,
|
|
39
39
|
account: options?.account
|
|
@@ -43,7 +43,7 @@ var ProtocolGovernance = class extends chunkTS5CXRNI_cjs.BaseClient {
|
|
|
43
43
|
* Set the Staking contract address
|
|
44
44
|
*/
|
|
45
45
|
async setStaking(staking, options) {
|
|
46
|
-
const registry =
|
|
46
|
+
const registry = chunkMFBTMF5U_cjs.registryActions(this.registryAddress);
|
|
47
47
|
return await registry(this.client).setStaking({
|
|
48
48
|
staking,
|
|
49
49
|
account: options?.account
|
|
@@ -55,7 +55,7 @@ var ProtocolGovernance = class extends chunkTS5CXRNI_cjs.BaseClient {
|
|
|
55
55
|
* and writes back the full struct via configureRole.
|
|
56
56
|
*/
|
|
57
57
|
async configureRole(params, options) {
|
|
58
|
-
const registry =
|
|
58
|
+
const registry = chunkMFBTMF5U_cjs.registryActions(this.registryAddress)(this.client);
|
|
59
59
|
const current = await registry.getRoleConfig({ roleId: params.roleId });
|
|
60
60
|
return await registry.configureRole({
|
|
61
61
|
roleId: params.roleId,
|
|
@@ -77,7 +77,7 @@ var ProtocolGovernance = class extends chunkTS5CXRNI_cjs.BaseClient {
|
|
|
77
77
|
* This is the final step of "Protocol Admin" lifecycle.
|
|
78
78
|
*/
|
|
79
79
|
async transferToDAO(daoAddress, options) {
|
|
80
|
-
const registry =
|
|
80
|
+
const registry = chunkMFBTMF5U_cjs.registryActions(this.registryAddress);
|
|
81
81
|
return await registry(this.client).transferOwnership({
|
|
82
82
|
newOwner: daoAddress,
|
|
83
83
|
account: options?.account
|
|
@@ -87,7 +87,7 @@ var ProtocolGovernance = class extends chunkTS5CXRNI_cjs.BaseClient {
|
|
|
87
87
|
// 4. Query Capabilities
|
|
88
88
|
// ===========================================
|
|
89
89
|
async getProtocolParams() {
|
|
90
|
-
const registry =
|
|
90
|
+
const registry = chunkMFBTMF5U_cjs.registryActions(this.registryAddress)(this.client);
|
|
91
91
|
const [sp, staking] = await Promise.all([
|
|
92
92
|
registry.SUPER_PAYMASTER(),
|
|
93
93
|
registry.GTOKEN_STAKING()
|
|
@@ -104,5 +104,5 @@ var ProtocolGovernance = class extends chunkTS5CXRNI_cjs.BaseClient {
|
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
exports.ProtocolGovernance = ProtocolGovernance;
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
108
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-E37CPC2U.cjs.map
|
|
108
|
+
//# sourceMappingURL=chunk-E37CPC2U.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../admin/src/ProtocolGovernance.ts"],"names":["BaseClient","registryActions"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../admin/src/ProtocolGovernance.ts"],"names":["BaseClient","registryActions"],"mappings":"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","file":"chunk-E37CPC2U.cjs","sourcesContent":["import { type Address, type Hash, type Hex } from 'viem';\nimport { BaseClient, type ClientConfig, type TransactionOptions } from '@aastar/core';\nimport { registryActions, entryPointActions } from '@aastar/core'; // L2/L1 Actions\n\nexport interface ProtocolParams {\n minStake: bigint;\n treasury: Address;\n entryPoint: Address;\n superPaymaster: Address;\n}\n\n/**\n * ProtocolGovernance - L3 Pattern\n * \n * Responsibilities:\n * 1. Global Protocol Parameter Management (Registry, EntryPoint)\n * 2. High-level Governance Operations (DAO Transfer, Upgrades)\n * 3. SuperPaymaster & Module Approval\n */\nexport class ProtocolGovernance extends BaseClient {\n public registryAddress: Address;\n public entryPointAddress: Address;\n\n constructor(config: ClientConfig & { \n registryAddress: Address; \n entryPointAddress: Address \n }) {\n super(config);\n this.registryAddress = config.registryAddress;\n this.entryPointAddress = config.entryPointAddress;\n }\n\n // ===========================================\n // 1. Global Parameter Management\n // ===========================================\n\n /**\n * Update the Global Treasury Address where protocol fees are collected\n */\n async setTreasury(treasury: Address, options?: TransactionOptions): Promise<Hash> {\n // Note: Registry might not have direct setTreasury if it relies on SuperPaymaster's config.\n // Assuming Registry has ownership pointers or config pointers.\n // If Logic resides in SuperPaymaster, we would use superPaymasterActions.\n // Based on provided ABI/Actions, Registry manages Role Configs mainly.\n // Let's assume we are updating a System Role or similar global config if available,\n // OR adhering to what registryActions provides.\n \n // Checking registryActions... it has 'transferOwnership' but maybe not direct 'setTreasury' depending on version.\n // If strictly following ABI, we might need to update a specific Role Parameter (e.g. AOA/Super config).\n \n throw new Error(\"Method not mapped to RegistryABI v1. Please verify contract capabilities.\");\n }\n\n /**\n * Update the supported EntryPoint address\n */\n async updateEntryPoint(entryPoint: Address, options?: TransactionOptions): Promise<Hash> {\n // Placeholder: Real implementation depends on if Registry stores EntryPoint\n // registryActions typically provides getters. Setters usually restricted to Owner.\n // If action not available, throw standard error.\n throw new Error(\"Method not mapped to RegistryABI v1.\");\n }\n\n // ===========================================\n // 2. Role & Module Governance\n // ===========================================\n\n /**\n * Approve a new SuperPaymaster contract address\n */\n async setSuperPaymaster(paymaster: Address, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress);\n return await registry(this.client).setSuperPaymaster({\n paymaster,\n account: options?.account\n });\n }\n\n /**\n * Set the Staking contract address\n */\n async setStaking(staking: Address, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress);\n return await registry(this.client).setStaking({\n staking,\n account: options?.account\n });\n }\n\n /**\n * Configure a Role's parameters (Admin only).\n * Reads the current on-chain config first, then merges the provided overrides\n * and writes back the full struct via configureRole.\n */\n async configureRole(params: {\n roleId: Hex;\n minStake?: bigint;\n ticketPrice?: bigint;\n exitFeePercent?: bigint;\n minExitFee?: bigint;\n }, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress)(this.client);\n const current = await registry.getRoleConfig({ roleId: params.roleId });\n return await (registry as any).configureRole({\n roleId: params.roleId,\n config: {\n ...current,\n ...(params.minStake !== undefined && { minStake: params.minStake }),\n ...(params.ticketPrice !== undefined && { ticketPrice: params.ticketPrice }),\n ...(params.exitFeePercent !== undefined && { exitFeePercent: params.exitFeePercent }),\n ...(params.minExitFee !== undefined && { minExitFee: params.minExitFee }),\n },\n account: options?.account,\n });\n }\n\n // ===========================================\n // 3. Transfer to DAO (Exit/Upgrade)\n // ===========================================\n\n /**\n * Transfer Protocol Ownership to a DAO (Multisig/Timelock)\n * This is the final step of \"Protocol Admin\" lifecycle.\n */\n async transferToDAO(daoAddress: Address, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress);\n return await registry(this.client).transferOwnership({\n newOwner: daoAddress,\n account: options?.account\n });\n }\n\n // ===========================================\n // 4. Query Capabilities\n // ===========================================\n\n async getProtocolParams(): Promise<ProtocolParams> {\n const registry = registryActions(this.registryAddress)(this.client); // Read-only via Client\n \n // Parallel fetch\n const [sp, staking] = await Promise.all([\n registry.SUPER_PAYMASTER(),\n registry.GTOKEN_STAKING()\n ]);\n\n return {\n minStake: 0n, // Global default not directly exposed, usually per role\n treasury: await registry.owner(), // Approximation for now\n entryPoint: this.entryPointAddress,\n superPaymaster: sp\n };\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseClient, registryActions } from './chunk-
|
|
1
|
+
import { BaseClient, registryActions } from './chunk-5G5SB6CP.js';
|
|
2
2
|
|
|
3
3
|
// ../admin/src/ProtocolGovernance.ts
|
|
4
4
|
var ProtocolGovernance = class extends BaseClient {
|
|
@@ -102,5 +102,5 @@ var ProtocolGovernance = class extends BaseClient {
|
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
export { ProtocolGovernance };
|
|
105
|
-
//# sourceMappingURL=chunk-
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
105
|
+
//# sourceMappingURL=chunk-EZC7Q3SG.js.map
|
|
106
|
+
//# sourceMappingURL=chunk-EZC7Q3SG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../admin/src/ProtocolGovernance.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../admin/src/ProtocolGovernance.ts"],"names":[],"mappings":"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","file":"chunk-EZC7Q3SG.js","sourcesContent":["import { type Address, type Hash, type Hex } from 'viem';\nimport { BaseClient, type ClientConfig, type TransactionOptions } from '@aastar/core';\nimport { registryActions, entryPointActions } from '@aastar/core'; // L2/L1 Actions\n\nexport interface ProtocolParams {\n minStake: bigint;\n treasury: Address;\n entryPoint: Address;\n superPaymaster: Address;\n}\n\n/**\n * ProtocolGovernance - L3 Pattern\n * \n * Responsibilities:\n * 1. Global Protocol Parameter Management (Registry, EntryPoint)\n * 2. High-level Governance Operations (DAO Transfer, Upgrades)\n * 3. SuperPaymaster & Module Approval\n */\nexport class ProtocolGovernance extends BaseClient {\n public registryAddress: Address;\n public entryPointAddress: Address;\n\n constructor(config: ClientConfig & { \n registryAddress: Address; \n entryPointAddress: Address \n }) {\n super(config);\n this.registryAddress = config.registryAddress;\n this.entryPointAddress = config.entryPointAddress;\n }\n\n // ===========================================\n // 1. Global Parameter Management\n // ===========================================\n\n /**\n * Update the Global Treasury Address where protocol fees are collected\n */\n async setTreasury(treasury: Address, options?: TransactionOptions): Promise<Hash> {\n // Note: Registry might not have direct setTreasury if it relies on SuperPaymaster's config.\n // Assuming Registry has ownership pointers or config pointers.\n // If Logic resides in SuperPaymaster, we would use superPaymasterActions.\n // Based on provided ABI/Actions, Registry manages Role Configs mainly.\n // Let's assume we are updating a System Role or similar global config if available,\n // OR adhering to what registryActions provides.\n \n // Checking registryActions... it has 'transferOwnership' but maybe not direct 'setTreasury' depending on version.\n // If strictly following ABI, we might need to update a specific Role Parameter (e.g. AOA/Super config).\n \n throw new Error(\"Method not mapped to RegistryABI v1. Please verify contract capabilities.\");\n }\n\n /**\n * Update the supported EntryPoint address\n */\n async updateEntryPoint(entryPoint: Address, options?: TransactionOptions): Promise<Hash> {\n // Placeholder: Real implementation depends on if Registry stores EntryPoint\n // registryActions typically provides getters. Setters usually restricted to Owner.\n // If action not available, throw standard error.\n throw new Error(\"Method not mapped to RegistryABI v1.\");\n }\n\n // ===========================================\n // 2. Role & Module Governance\n // ===========================================\n\n /**\n * Approve a new SuperPaymaster contract address\n */\n async setSuperPaymaster(paymaster: Address, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress);\n return await registry(this.client).setSuperPaymaster({\n paymaster,\n account: options?.account\n });\n }\n\n /**\n * Set the Staking contract address\n */\n async setStaking(staking: Address, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress);\n return await registry(this.client).setStaking({\n staking,\n account: options?.account\n });\n }\n\n /**\n * Configure a Role's parameters (Admin only).\n * Reads the current on-chain config first, then merges the provided overrides\n * and writes back the full struct via configureRole.\n */\n async configureRole(params: {\n roleId: Hex;\n minStake?: bigint;\n ticketPrice?: bigint;\n exitFeePercent?: bigint;\n minExitFee?: bigint;\n }, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress)(this.client);\n const current = await registry.getRoleConfig({ roleId: params.roleId });\n return await (registry as any).configureRole({\n roleId: params.roleId,\n config: {\n ...current,\n ...(params.minStake !== undefined && { minStake: params.minStake }),\n ...(params.ticketPrice !== undefined && { ticketPrice: params.ticketPrice }),\n ...(params.exitFeePercent !== undefined && { exitFeePercent: params.exitFeePercent }),\n ...(params.minExitFee !== undefined && { minExitFee: params.minExitFee }),\n },\n account: options?.account,\n });\n }\n\n // ===========================================\n // 3. Transfer to DAO (Exit/Upgrade)\n // ===========================================\n\n /**\n * Transfer Protocol Ownership to a DAO (Multisig/Timelock)\n * This is the final step of \"Protocol Admin\" lifecycle.\n */\n async transferToDAO(daoAddress: Address, options?: TransactionOptions): Promise<Hash> {\n const registry = registryActions(this.registryAddress);\n return await registry(this.client).transferOwnership({\n newOwner: daoAddress,\n account: options?.account\n });\n }\n\n // ===========================================\n // 4. Query Capabilities\n // ===========================================\n\n async getProtocolParams(): Promise<ProtocolParams> {\n const registry = registryActions(this.registryAddress)(this.client); // Read-only via Client\n \n // Parallel fetch\n const [sp, staking] = await Promise.all([\n registry.SUPER_PAYMASTER(),\n registry.GTOKEN_STAKING()\n ]);\n\n return {\n minStake: 0n, // Global default not directly exposed, usually per role\n treasury: await registry.owner(), // Approximation for now\n entryPoint: this.entryPointAddress,\n superPaymaster: sp\n };\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SuperPaymasterABI } from './chunk-
|
|
1
|
+
import { SuperPaymasterABI } from './chunk-5G5SB6CP.js';
|
|
2
2
|
import { parseAbi, formatEther } from 'viem';
|
|
3
3
|
|
|
4
4
|
var STAKING_ABI = parseAbi([
|
|
@@ -114,7 +114,7 @@ var FinanceClient = class _FinanceClient {
|
|
|
114
114
|
* Get GToken balance
|
|
115
115
|
*/
|
|
116
116
|
async getGTokenBalance(address) {
|
|
117
|
-
const { CORE_ADDRESSES } = await import('./src-
|
|
117
|
+
const { CORE_ADDRESSES } = await import('./src-2P72LYVT.js');
|
|
118
118
|
return this.publicClient.readContract({
|
|
119
119
|
address: CORE_ADDRESSES.gToken,
|
|
120
120
|
abi: ERC20_ABI,
|
|
@@ -126,7 +126,7 @@ var FinanceClient = class _FinanceClient {
|
|
|
126
126
|
* Get aPNTs balance
|
|
127
127
|
*/
|
|
128
128
|
async getAPNTsBalance(address) {
|
|
129
|
-
const { CORE_ADDRESSES } = await import('./src-
|
|
129
|
+
const { CORE_ADDRESSES } = await import('./src-2P72LYVT.js');
|
|
130
130
|
return this.publicClient.readContract({
|
|
131
131
|
address: CORE_ADDRESSES.aPNTs,
|
|
132
132
|
abi: ERC20_ABI,
|
|
@@ -143,7 +143,7 @@ var FinanceClient = class _FinanceClient {
|
|
|
143
143
|
async approveAndStake(amount) {
|
|
144
144
|
const account = this.walletClient.account;
|
|
145
145
|
if (!account) throw new Error("Account required");
|
|
146
|
-
const { CORE_ADDRESSES } = await import('./src-
|
|
146
|
+
const { CORE_ADDRESSES } = await import('./src-2P72LYVT.js');
|
|
147
147
|
const gTokenAddress = CORE_ADDRESSES.gToken;
|
|
148
148
|
const stakingAddress = CORE_ADDRESSES.gTokenStaking;
|
|
149
149
|
const allowance = await this.publicClient.readContract({
|
|
@@ -172,7 +172,7 @@ var FinanceClient = class _FinanceClient {
|
|
|
172
172
|
* Get circulating supply (total - locked)
|
|
173
173
|
*/
|
|
174
174
|
async getCirculatingSupply() {
|
|
175
|
-
const { CORE_ADDRESSES } = await import('./src-
|
|
175
|
+
const { CORE_ADDRESSES } = await import('./src-2P72LYVT.js');
|
|
176
176
|
const gTokenAddress = CORE_ADDRESSES.gToken;
|
|
177
177
|
const total = await this.publicClient.readContract({
|
|
178
178
|
address: gTokenAddress,
|
|
@@ -190,7 +190,7 @@ var FinanceClient = class _FinanceClient {
|
|
|
190
190
|
* Get comprehensive tokenomics data
|
|
191
191
|
*/
|
|
192
192
|
async getTokenomicsOverview() {
|
|
193
|
-
const { CORE_ADDRESSES } = await import('./src-
|
|
193
|
+
const { CORE_ADDRESSES } = await import('./src-2P72LYVT.js');
|
|
194
194
|
const [totalSupply, totalStaked, blackholeBalance] = await Promise.all([
|
|
195
195
|
this.publicClient.readContract({
|
|
196
196
|
address: CORE_ADDRESSES.gToken,
|
|
@@ -222,5 +222,5 @@ var FinanceClient = class _FinanceClient {
|
|
|
222
222
|
};
|
|
223
223
|
|
|
224
224
|
export { FinanceClient };
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
226
|
-
//# sourceMappingURL=chunk-
|
|
225
|
+
//# sourceMappingURL=chunk-H5EQBNC6.js.map
|
|
226
|
+
//# sourceMappingURL=chunk-H5EQBNC6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../tokens/src/index.ts"],"names":[],"mappings":"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","file":"chunk-JCK7VAZF.js","sourcesContent":["import { type Address, parseAbi, type Hash, formatEther } from 'viem';\nimport { SuperPaymasterABI as SUPERPAYMASTER_ABI, CONTRACTS, type PublicClient, type WalletClient } from '@aastar/core';\n\nconst STAKING_ABI = parseAbi([\n 'function stake(uint256)',\n 'function withdraw(uint256)'\n]);\n\nconst ERC20_ABI = parseAbi([\n 'function balanceOf(address) view returns (uint256)',\n 'function totalSupply() view returns (uint256)',\n 'function approve(address,uint256) returns (bool)',\n 'function transfer(address,uint256) returns (bool)'\n]);\n\nexport class FinanceClient {\n /**\n * Initialize FinanceClient\n * @param publicClient The public client for queries\n * @param walletClient The wallet client for transactions\n */\n constructor(\n private publicClient: PublicClient,\n private walletClient: WalletClient\n ) {}\n\n // ========== Existing static methods (preserved for backward compatibility) ==========\n \n /** @deprecated Use instance methods instead */\n static async depositToPaymaster(wallet: WalletClient, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async depositViaTransferAndCall(wallet: WalletClient, token: Address, paymaster: Address, amount: bigint) {\n const ERC1363_ABI = [{\n name: 'transferAndCall',\n type: 'function',\n stateMutability: 'nonpayable',\n inputs: [{ type: 'address', name: 'to' }, { type: 'uint256', name: 'value' }],\n outputs: [{ type: 'bool' }]\n }] as const;\n\n return wallet.writeContract({\n address: token,\n abi: ERC1363_ABI,\n functionName: 'transferAndCall',\n args: [paymaster, amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async stakeGToken(wallet: WalletClient, stakingAddr: Address, amount: bigint) {\n return wallet.writeContract({\n address: stakingAddr,\n abi: STAKING_ABI,\n functionName: 'stake',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async withdrawProtocolRevenue(wallet: WalletClient, paymaster: Address, to: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'withdrawProtocolRevenue',\n args: [to, amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async depositToEntryPoint(wallet: WalletClient, entryPoint: Address, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: entryPoint,\n abi: parseAbi(['function depositTo(address) payable']),\n functionName: 'depositTo',\n args: [paymaster],\n value: amount,\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async getEntryPointBalance(client: any, entryPoint: Address, account: Address): Promise<bigint> {\n return client.readContract({\n address: entryPoint,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: [account]\n });\n }\n\n /** @deprecated Use instance methods instead */\n static async operatorDeposit(wallet: WalletClient, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async operatorNotifyDeposit(wallet: WalletClient, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'notifyDeposit',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n // ========== New instance methods (business primitives) ==========\n\n /**\n * Get GToken balance\n */\n async getGTokenBalance(address: Address): Promise<bigint> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n }) as Promise<bigint>;\n }\n\n /**\n * Get aPNTs balance\n */\n async getAPNTsBalance(address: Address): Promise<bigint> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.aPNTs,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n }) as Promise<bigint>;\n }\n\n /**\n * One-step stake: Approve (if needed) + Stake\n * \n * @param amount Amount of GToken to stake\n * @returns Transaction hash of the stake action\n */\n async approveAndStake(amount: bigint): Promise<Hash> {\n const account = this.walletClient.account;\n if (!account) throw new Error(\"Account required\");\n\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n const stakingAddress = CORE_ADDRESSES.gTokenStaking;\n \n // 1. Check Allowance\n const allowance = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: parseAbi(['function allowance(address owner, address spender) view returns (uint256)']),\n functionName: 'allowance',\n args: [account.address, stakingAddress]\n }); // as bigint\n\n if ((allowance as bigint) < amount) {\n console.log(`[FinanceClient] Approving ${formatEther(amount)} GToken...`);\n const approveTx = await this.walletClient.writeContract({\n address: gTokenAddress,\n abi: parseAbi(['function approve(address spender, uint256 amount) returns (bool)']),\n functionName: 'approve',\n args: [stakingAddress, amount],\n chain: this.walletClient.chain,\n account\n });\n await this.publicClient.waitForTransactionReceipt({ hash: approveTx });\n console.log(`[FinanceClient] Approved.`);\n }\n\n // 2. Stake\n console.log(`[FinanceClient] Staking...`);\n return FinanceClient.stakeGToken(this.walletClient, stakingAddress, amount);\n }\n\n /**\n * Get circulating supply (total - locked)\n */\n async getCirculatingSupply(): Promise<{\n total: bigint;\n locked: bigint;\n circulating: bigint;\n }> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n\n const total = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: ERC20_ABI,\n functionName: 'totalSupply'\n }) as bigint;\n\n // In a real scenario, we might query GTokenStaking's totalStaked\n const locked = 0n;\n\n return {\n total,\n locked,\n circulating: total - locked\n };\n }\n\n /**\n * Get comprehensive tokenomics data\n */\n async getTokenomicsOverview(): Promise<{\n totalSupply: bigint;\n totalStaked: bigint;\n totalBurned: bigint;\n circulatingSupply: bigint;\n stakingRatio: number;\n }> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n \n const [totalSupply, totalStaked, blackholeBalance] = await Promise.all([\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function totalSupply() view returns (uint256)']),\n functionName: 'totalSupply'\n }) as Promise<bigint>,\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gTokenStaking,\n abi: parseAbi(['function totalStaked() view returns (uint256)']),\n functionName: 'totalStaked'\n }) as Promise<bigint>,\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: ['0x000000000000000000000000000000000000dEaD']\n }) as Promise<bigint>\n ]);\n\n const circulating = totalSupply - totalStaked - blackholeBalance;\n const ratio = Number(formatEther(totalStaked)) / Number(formatEther(totalSupply)) * 100;\n\n return {\n totalSupply,\n totalStaked,\n totalBurned: blackholeBalance,\n circulatingSupply: circulating,\n stakingRatio: ratio\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../tokens/src/index.ts"],"names":[],"mappings":"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","file":"chunk-H5EQBNC6.js","sourcesContent":["import { type Address, parseAbi, type Hash, formatEther } from 'viem';\nimport { SuperPaymasterABI as SUPERPAYMASTER_ABI, CONTRACTS, type PublicClient, type WalletClient } from '@aastar/core';\n\nconst STAKING_ABI = parseAbi([\n 'function stake(uint256)',\n 'function withdraw(uint256)'\n]);\n\nconst ERC20_ABI = parseAbi([\n 'function balanceOf(address) view returns (uint256)',\n 'function totalSupply() view returns (uint256)',\n 'function approve(address,uint256) returns (bool)',\n 'function transfer(address,uint256) returns (bool)'\n]);\n\nexport class FinanceClient {\n /**\n * Initialize FinanceClient\n * @param publicClient The public client for queries\n * @param walletClient The wallet client for transactions\n */\n constructor(\n private publicClient: PublicClient,\n private walletClient: WalletClient\n ) {}\n\n // ========== Existing static methods (preserved for backward compatibility) ==========\n \n /** @deprecated Use instance methods instead */\n static async depositToPaymaster(wallet: WalletClient, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async depositViaTransferAndCall(wallet: WalletClient, token: Address, paymaster: Address, amount: bigint) {\n const ERC1363_ABI = [{\n name: 'transferAndCall',\n type: 'function',\n stateMutability: 'nonpayable',\n inputs: [{ type: 'address', name: 'to' }, { type: 'uint256', name: 'value' }],\n outputs: [{ type: 'bool' }]\n }] as const;\n\n return wallet.writeContract({\n address: token,\n abi: ERC1363_ABI,\n functionName: 'transferAndCall',\n args: [paymaster, amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async stakeGToken(wallet: WalletClient, stakingAddr: Address, amount: bigint) {\n return wallet.writeContract({\n address: stakingAddr,\n abi: STAKING_ABI,\n functionName: 'stake',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async withdrawProtocolRevenue(wallet: WalletClient, paymaster: Address, to: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'withdrawProtocolRevenue',\n args: [to, amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async depositToEntryPoint(wallet: WalletClient, entryPoint: Address, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: entryPoint,\n abi: parseAbi(['function depositTo(address) payable']),\n functionName: 'depositTo',\n args: [paymaster],\n value: amount,\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async getEntryPointBalance(client: any, entryPoint: Address, account: Address): Promise<bigint> {\n return client.readContract({\n address: entryPoint,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: [account]\n });\n }\n\n /** @deprecated Use instance methods instead */\n static async operatorDeposit(wallet: WalletClient, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n /** @deprecated Use instance methods instead */\n static async operatorNotifyDeposit(wallet: WalletClient, paymaster: Address, amount: bigint) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'notifyDeposit',\n args: [amount],\n chain: wallet.chain\n } as any);\n }\n\n // ========== New instance methods (business primitives) ==========\n\n /**\n * Get GToken balance\n */\n async getGTokenBalance(address: Address): Promise<bigint> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n }) as Promise<bigint>;\n }\n\n /**\n * Get aPNTs balance\n */\n async getAPNTsBalance(address: Address): Promise<bigint> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.aPNTs,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n }) as Promise<bigint>;\n }\n\n /**\n * One-step stake: Approve (if needed) + Stake\n * \n * @param amount Amount of GToken to stake\n * @returns Transaction hash of the stake action\n */\n async approveAndStake(amount: bigint): Promise<Hash> {\n const account = this.walletClient.account;\n if (!account) throw new Error(\"Account required\");\n\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n const stakingAddress = CORE_ADDRESSES.gTokenStaking;\n \n // 1. Check Allowance\n const allowance = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: parseAbi(['function allowance(address owner, address spender) view returns (uint256)']),\n functionName: 'allowance',\n args: [account.address, stakingAddress]\n }); // as bigint\n\n if ((allowance as bigint) < amount) {\n console.log(`[FinanceClient] Approving ${formatEther(amount)} GToken...`);\n const approveTx = await this.walletClient.writeContract({\n address: gTokenAddress,\n abi: parseAbi(['function approve(address spender, uint256 amount) returns (bool)']),\n functionName: 'approve',\n args: [stakingAddress, amount],\n chain: this.walletClient.chain,\n account\n });\n await this.publicClient.waitForTransactionReceipt({ hash: approveTx });\n console.log(`[FinanceClient] Approved.`);\n }\n\n // 2. Stake\n console.log(`[FinanceClient] Staking...`);\n return FinanceClient.stakeGToken(this.walletClient, stakingAddress, amount);\n }\n\n /**\n * Get circulating supply (total - locked)\n */\n async getCirculatingSupply(): Promise<{\n total: bigint;\n locked: bigint;\n circulating: bigint;\n }> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n\n const total = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: ERC20_ABI,\n functionName: 'totalSupply'\n }) as bigint;\n\n // In a real scenario, we might query GTokenStaking's totalStaked\n const locked = 0n;\n\n return {\n total,\n locked,\n circulating: total - locked\n };\n }\n\n /**\n * Get comprehensive tokenomics data\n */\n async getTokenomicsOverview(): Promise<{\n totalSupply: bigint;\n totalStaked: bigint;\n totalBurned: bigint;\n circulatingSupply: bigint;\n stakingRatio: number;\n }> {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n \n const [totalSupply, totalStaked, blackholeBalance] = await Promise.all([\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function totalSupply() view returns (uint256)']),\n functionName: 'totalSupply'\n }) as Promise<bigint>,\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gTokenStaking,\n abi: parseAbi(['function totalStaked() view returns (uint256)']),\n functionName: 'totalStaked'\n }) as Promise<bigint>,\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: ['0x000000000000000000000000000000000000dEaD']\n }) as Promise<bigint>\n ]);\n\n const circulating = totalSupply - totalStaked - blackholeBalance;\n const ratio = Number(formatEther(totalStaked)) / Number(formatEther(totalSupply)) * 100;\n\n return {\n totalSupply,\n totalStaked,\n totalBurned: blackholeBalance,\n circulatingSupply: circulating,\n stakingRatio: ratio\n };\n }\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkXQROKLZI_cjs = require('./chunk-XQROKLZI.cjs');
|
|
4
|
+
var chunkMFBTMF5U_cjs = require('./chunk-MFBTMF5U.cjs');
|
|
4
5
|
var chunkMXJEULSE_cjs = require('./chunk-MXJEULSE.cjs');
|
|
5
6
|
var viem = require('viem');
|
|
6
7
|
var axios = require('axios');
|
|
@@ -196,8 +197,8 @@ var AIRACCOUNT_ABI = [
|
|
|
196
197
|
];
|
|
197
198
|
var AIRACCOUNT_FACTORY_ABI = [
|
|
198
199
|
// Full config creation
|
|
199
|
-
"function createAccount(address owner, uint256 salt, (address[3] guardians, bytes32[3] guardianP256X, bytes32[3] guardianP256Y, uint256 dailyLimit, uint8[] approvedAlgIds, uint256 minDailyLimit, address[] initialTokens, (
|
|
200
|
-
"function getAddress(address owner, uint256 salt, (address[3] guardians, bytes32[3] guardianP256X, bytes32[3] guardianP256Y, uint256 dailyLimit, uint8[] approvedAlgIds, uint256 minDailyLimit, address[] initialTokens, (
|
|
200
|
+
"function createAccount(address owner, uint256 salt, (address[3] guardians, bytes32[3] guardianP256X, bytes32[3] guardianP256Y, uint256 dailyLimit, uint8[] approvedAlgIds, uint256 minDailyLimit, address[] initialTokens, (uint128 tier1Limit, uint128 tier2Limit, uint256 dailyLimit)[] initialTokenConfigs) config) external returns (address)",
|
|
201
|
+
"function getAddress(address owner, uint256 salt, (address[3] guardians, bytes32[3] guardianP256X, bytes32[3] guardianP256Y, uint256 dailyLimit, uint8[] approvedAlgIds, uint256 minDailyLimit, address[] initialTokens, (uint128 tier1Limit, uint128 tier2Limit, uint256 dailyLimit)[] initialTokenConfigs) config) external view returns (address)",
|
|
201
202
|
// Default guardian setup (requires guardian acceptance sigs — M5.3+)
|
|
202
203
|
"function createAccountWithDefaults(address owner, uint256 salt, address guardian1, bytes guardian1Sig, address guardian2, bytes guardian2Sig, uint256 dailyLimit) external returns (address)",
|
|
203
204
|
"function getAddressWithDefaults(address owner, uint256 salt, address guardian1, address guardian2, uint256 dailyLimit) external view returns (address)",
|
|
@@ -214,7 +215,7 @@ var AIRACCOUNT_FACTORY_ABI = [
|
|
|
214
215
|
"function defaultHookModule() external view returns (address)",
|
|
215
216
|
// M7.4 ERC-7828 chain-qualified address helpers
|
|
216
217
|
"function getChainQualifiedAddress(address account) external view returns (bytes32)",
|
|
217
|
-
"function getAddressWithChainId(address owner, uint256 salt, (address[3] guardians, bytes32[3] guardianP256X, bytes32[3] guardianP256Y, uint256 dailyLimit, uint8[] approvedAlgIds, uint256 minDailyLimit, address[] initialTokens, (
|
|
218
|
+
"function getAddressWithChainId(address owner, uint256 salt, (address[3] guardians, bytes32[3] guardianP256X, bytes32[3] guardianP256Y, uint256 dailyLimit, uint8[] approvedAlgIds, uint256 minDailyLimit, address[] initialTokens, (uint128 tier1Limit, uint128 tier2Limit, uint256 dailyLimit)[] initialTokenConfigs) config) external view returns (address account, bytes32 chainQualified)",
|
|
218
219
|
// Events
|
|
219
220
|
"event AccountCreated(address indexed account, address indexed owner, uint256 salt)"
|
|
220
221
|
];
|
|
@@ -715,6 +716,55 @@ function readBuildP256GrantHash(validator, account, keyX, keyY, cfg) {
|
|
|
715
716
|
return readFn(validator, "buildP256GrantHash")([account, keyX, keyY, cfg]);
|
|
716
717
|
}
|
|
717
718
|
|
|
719
|
+
// ../airaccount/src/server/services/account-init-config.ts
|
|
720
|
+
function toGuardianSpecs(p) {
|
|
721
|
+
const specs = [];
|
|
722
|
+
for (const e of p.ecdsaGuardians ?? []) specs.push({ ecdsa: e });
|
|
723
|
+
for (const k of p.p256Guardians) specs.push({ p256: { x: k.x, y: k.y } });
|
|
724
|
+
return specs;
|
|
725
|
+
}
|
|
726
|
+
function buildFullInitConfig(p) {
|
|
727
|
+
return chunkMFBTMF5U_cjs.buildInitConfig({
|
|
728
|
+
guardians: toGuardianSpecs(p),
|
|
729
|
+
dailyLimit: p.dailyLimit,
|
|
730
|
+
...p.approvedAlgIds ? { approvedAlgIds: p.approvedAlgIds } : {},
|
|
731
|
+
...p.minDailyLimit !== void 0 ? { minDailyLimit: p.minDailyLimit } : {}
|
|
732
|
+
});
|
|
733
|
+
}
|
|
734
|
+
function initConfigToTuple(c) {
|
|
735
|
+
return [
|
|
736
|
+
c.guardians,
|
|
737
|
+
c.guardianP256X,
|
|
738
|
+
c.guardianP256Y,
|
|
739
|
+
c.dailyLimit,
|
|
740
|
+
c.approvedAlgIds,
|
|
741
|
+
c.minDailyLimit,
|
|
742
|
+
c.initialTokens,
|
|
743
|
+
c.initialTokenConfigs.map((t) => [t.tier1Limit, t.tier2Limit, t.dailyLimit])
|
|
744
|
+
];
|
|
745
|
+
}
|
|
746
|
+
function serializeGuardianSpecs(specs) {
|
|
747
|
+
return specs.map(
|
|
748
|
+
(s) => s.p256 ? { p256: { x: s.p256.x, y: s.p256.y } } : { ecdsa: s.ecdsa }
|
|
749
|
+
);
|
|
750
|
+
}
|
|
751
|
+
function initConfigFromRecord(record) {
|
|
752
|
+
if (!record.guardianSpecs || record.guardianSpecs.length === 0) {
|
|
753
|
+
throw new Error(
|
|
754
|
+
"initConfigFromRecord: record has no guardianSpecs (not a full-config / P-256 account)"
|
|
755
|
+
);
|
|
756
|
+
}
|
|
757
|
+
const guardians = record.guardianSpecs.map(
|
|
758
|
+
(s) => "p256" in s ? { p256: { x: s.p256.x, y: s.p256.y } } : { ecdsa: s.ecdsa }
|
|
759
|
+
);
|
|
760
|
+
return chunkMFBTMF5U_cjs.buildInitConfig({
|
|
761
|
+
guardians,
|
|
762
|
+
dailyLimit: record.dailyLimit ? BigInt(record.dailyLimit) : 0n,
|
|
763
|
+
...record.approvedAlgIds ? { approvedAlgIds: record.approvedAlgIds } : {},
|
|
764
|
+
...record.minDailyLimit !== void 0 ? { minDailyLimit: BigInt(record.minDailyLimit) } : {}
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
|
|
718
768
|
// ../airaccount/src/server/services/account-manager.ts
|
|
719
769
|
var ZERO32 = "0x" + "0".repeat(64);
|
|
720
770
|
var EMPTY_P256 = [ZERO32, ZERO32, ZERO32];
|
|
@@ -727,6 +777,17 @@ var AccountManager = class {
|
|
|
727
777
|
}
|
|
728
778
|
logger;
|
|
729
779
|
async createAccount(userId, options) {
|
|
780
|
+
if (options?.p256Guardians && options.p256Guardians.length > 0) {
|
|
781
|
+
return this.createAccountWithP256Guardians(userId, {
|
|
782
|
+
p256Guardians: options.p256Guardians,
|
|
783
|
+
ecdsaGuardians: options.ecdsaGuardians,
|
|
784
|
+
dailyLimit: options.dailyLimit ?? 0n,
|
|
785
|
+
approvedAlgIds: options.approvedAlgIds,
|
|
786
|
+
minDailyLimit: options.minDailyLimit,
|
|
787
|
+
salt: options.salt,
|
|
788
|
+
entryPointVersion: options.entryPointVersion
|
|
789
|
+
});
|
|
790
|
+
}
|
|
730
791
|
const version = options?.entryPointVersion ?? this.ethereum.getDefaultVersion();
|
|
731
792
|
const versionStr = version;
|
|
732
793
|
const existingAccounts = await this.storage.getAccounts();
|
|
@@ -943,6 +1004,109 @@ var AccountManager = class {
|
|
|
943
1004
|
this.logger.log(`[AccountManager] account created with guardians: ${accountAddress}`);
|
|
944
1005
|
return account;
|
|
945
1006
|
}
|
|
1007
|
+
/**
|
|
1008
|
+
* Create an AirAccount with one or more P-256 (WebAuthn passkey) guardians installed at
|
|
1009
|
+
* DEPLOY time — the server-client path #118 adds for KMS-custodied / counterfactual accounts
|
|
1010
|
+
* (e.g. YAA) that cannot drive the viem extension layer for account creation.
|
|
1011
|
+
*
|
|
1012
|
+
* Uses the factory's full-config `createAccount(owner, salt, config)` path because it is the
|
|
1013
|
+
* ONLY entrypoint that accepts an 8-field `InitConfig` (and therefore `guardianP256X/Y`). The
|
|
1014
|
+
* 8-field config is built by the core `buildInitConfig` (0.22.0) — never hand-rolled — and the
|
|
1015
|
+
* address is predicted via the factory's full-config `getAddress(owner, salt, config)` (NOT
|
|
1016
|
+
* `getAddressWithDefaults`), binding the address to `keccak256(config)`.
|
|
1017
|
+
*
|
|
1018
|
+
* ### Acceptance-signature semantics (verified against AAStarAirAccountFactoryV7.sol)
|
|
1019
|
+
* On this path the contract performs NO guardian-acceptance signature check — for P-256 OR ECDSA
|
|
1020
|
+
* guardians. Front-run protection comes from `_getSalt(owner, salt, _getConfigHash(config))`:
|
|
1021
|
+
* any change to the guardian set (or any other config field) yields a different CREATE2 address,
|
|
1022
|
+
* so an attacker cannot collide on the victim's counterfactual address with a weaker config.
|
|
1023
|
+
* P-256 guardians are an owner-bootstrap (single guardian can't form a recovery quorum), so no
|
|
1024
|
+
* acceptance ceremony exists for them by design (#110④). This is why optional ECDSA guardians may
|
|
1025
|
+
* also be passed here WITHOUT signatures — distinct from createAccountWithGuardians(), which uses
|
|
1026
|
+
* the owner-only-salt `createAccountWithDefaults` path and DOES require ECDSA acceptance sigs.
|
|
1027
|
+
*
|
|
1028
|
+
* The deploy UserOp is still signed by the existing KMS owner-key path (unchanged): this method
|
|
1029
|
+
* only predicts the address and persists the full config; transfer-manager rebuilds the
|
|
1030
|
+
* byte-identical initCode (via {@link initConfigFromRecord}) at first-UserOp deploy time.
|
|
1031
|
+
*
|
|
1032
|
+
* @throws if no P-256 guardian is supplied, dailyLimit <= 0, or EntryPoint is v0.6.
|
|
1033
|
+
*/
|
|
1034
|
+
async createAccountWithP256Guardians(userId, params) {
|
|
1035
|
+
if (!params.p256Guardians || params.p256Guardians.length === 0) {
|
|
1036
|
+
throw new Error("createAccountWithP256Guardians requires at least one P-256 guardian");
|
|
1037
|
+
}
|
|
1038
|
+
if (params.dailyLimit <= 0n) {
|
|
1039
|
+
throw new Error(
|
|
1040
|
+
"P-256 guardian accounts require dailyLimit > 0 (a guardian set enables the on-chain guard)"
|
|
1041
|
+
);
|
|
1042
|
+
}
|
|
1043
|
+
const version = params.entryPointVersion ?? this.ethereum.getDefaultVersion();
|
|
1044
|
+
if (version === "0.6" /* V0_6 */) {
|
|
1045
|
+
throw new Error(
|
|
1046
|
+
"createAccountWithP256Guardians requires EntryPoint v0.7 or v0.8; the v0.6 factory does not support the full-config createAccount(InitConfig) path"
|
|
1047
|
+
);
|
|
1048
|
+
}
|
|
1049
|
+
const versionStr = version;
|
|
1050
|
+
const fullParams = {
|
|
1051
|
+
p256Guardians: params.p256Guardians,
|
|
1052
|
+
ecdsaGuardians: params.ecdsaGuardians,
|
|
1053
|
+
dailyLimit: params.dailyLimit,
|
|
1054
|
+
approvedAlgIds: params.approvedAlgIds,
|
|
1055
|
+
minDailyLimit: params.minDailyLimit
|
|
1056
|
+
};
|
|
1057
|
+
const specs = toGuardianSpecs(fullParams);
|
|
1058
|
+
const config = buildFullInitConfig(fullParams);
|
|
1059
|
+
const existingAccounts = await this.storage.getAccounts();
|
|
1060
|
+
const existing = existingAccounts.find(
|
|
1061
|
+
(a) => a.userId === userId && a.entryPointVersion === versionStr && !!a.guardianSpecs && a.guardianSpecs.length > 0
|
|
1062
|
+
);
|
|
1063
|
+
if (existing) return existing;
|
|
1064
|
+
const { address: signerAddress } = await this.signer.ensureSigner(userId);
|
|
1065
|
+
if (typeof params.salt === "number" && !Number.isSafeInteger(params.salt)) {
|
|
1066
|
+
throw new Error(
|
|
1067
|
+
`salt value ${params.salt} exceeds Number.MAX_SAFE_INTEGER; pass it as a bigint to avoid precision loss`
|
|
1068
|
+
);
|
|
1069
|
+
}
|
|
1070
|
+
const saltBig = BigInt(params.salt ?? Math.floor(Math.random() * 1e6));
|
|
1071
|
+
const factory = this.ethereum.getFactoryContract(version);
|
|
1072
|
+
const factoryAddress = factory.address ?? this.ethereum.getFactoryAddress(version);
|
|
1073
|
+
const accountAddress = await readPredictedAddress(
|
|
1074
|
+
factory,
|
|
1075
|
+
signerAddress,
|
|
1076
|
+
saltBig,
|
|
1077
|
+
initConfigToTuple(config)
|
|
1078
|
+
);
|
|
1079
|
+
let deployed = false;
|
|
1080
|
+
try {
|
|
1081
|
+
const code = await this.ethereum.getProvider().getCode({ address: accountAddress });
|
|
1082
|
+
deployed = !!code && code !== "0x";
|
|
1083
|
+
} catch {
|
|
1084
|
+
}
|
|
1085
|
+
const validatorAddress = this.ethereum.getValidatorAddress(version);
|
|
1086
|
+
const account = {
|
|
1087
|
+
userId,
|
|
1088
|
+
address: accountAddress,
|
|
1089
|
+
signerAddress,
|
|
1090
|
+
// Persist as a lossless decimal string (#118 M2); transfer-manager rebuilds via BigInt(account.salt).
|
|
1091
|
+
salt: saltBig.toString(),
|
|
1092
|
+
deployed,
|
|
1093
|
+
deploymentTxHash: null,
|
|
1094
|
+
validatorAddress,
|
|
1095
|
+
entryPointVersion: versionStr,
|
|
1096
|
+
factoryAddress,
|
|
1097
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1098
|
+
dailyLimit: params.dailyLimit.toString(),
|
|
1099
|
+
// Persist the RESOLVED config so transfer-manager rebuilds byte-identical initCode at deploy.
|
|
1100
|
+
guardianSpecs: serializeGuardianSpecs(specs),
|
|
1101
|
+
approvedAlgIds: [...config.approvedAlgIds],
|
|
1102
|
+
minDailyLimit: config.minDailyLimit.toString()
|
|
1103
|
+
};
|
|
1104
|
+
await this.storage.saveAccount(account);
|
|
1105
|
+
this.logger.log(
|
|
1106
|
+
`[AccountManager] account created with ${params.p256Guardians.length} P-256 guardian(s): ${accountAddress}`
|
|
1107
|
+
);
|
|
1108
|
+
return account;
|
|
1109
|
+
}
|
|
946
1110
|
};
|
|
947
1111
|
var EXECUTE_USER_OP_SELECTOR = chunkXQROKLZI_cjs.selectorFromId(
|
|
948
1112
|
"executeUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32)"
|
|
@@ -1546,7 +1710,14 @@ var TransferManager = class {
|
|
|
1546
1710
|
let deployCalldata;
|
|
1547
1711
|
if (version === "0.7" /* V0_7 */ || version === "0.8" /* V0_8 */) {
|
|
1548
1712
|
const storedDailyLimit = account.dailyLimit ? BigInt(account.dailyLimit) : 0n;
|
|
1549
|
-
if (account.
|
|
1713
|
+
if (account.guardianSpecs && account.guardianSpecs.length > 0) {
|
|
1714
|
+
const rebuilt = initConfigFromRecord(account);
|
|
1715
|
+
deployCalldata = encodeFn(AIRACCOUNT_FACTORY_ABI_PARSED, "createAccount", [
|
|
1716
|
+
account.signerAddress,
|
|
1717
|
+
BigInt(account.salt),
|
|
1718
|
+
initConfigToTuple(rebuilt)
|
|
1719
|
+
]);
|
|
1720
|
+
} else if (account.guardian1 && account.guardian2 && account.guardian1Sig && account.guardian2Sig) {
|
|
1550
1721
|
const sig1 = account.guardian1Sig.startsWith("0x") ? account.guardian1Sig : `0x${account.guardian1Sig}`;
|
|
1551
1722
|
const sig2 = account.guardian2Sig.startsWith("0x") ? account.guardian2Sig : `0x${account.guardian2Sig}`;
|
|
1552
1723
|
deployCalldata = encodeFn(AIRACCOUNT_FACTORY_ABI_PARSED, "createAccountWithDefaults", [
|
|
@@ -4776,12 +4947,15 @@ exports.beginGrantSessionChallenge = beginGrantSessionChallenge;
|
|
|
4776
4947
|
exports.buildAuthenticationCredential = buildAuthenticationCredential;
|
|
4777
4948
|
exports.buildAuthenticatorData = buildAuthenticatorData;
|
|
4778
4949
|
exports.buildClientDataJSON = buildClientDataJSON;
|
|
4950
|
+
exports.buildFullInitConfig = buildFullInitConfig;
|
|
4779
4951
|
exports.buildInstallModuleHash = buildInstallModuleHash;
|
|
4780
4952
|
exports.buildUninstallModuleHash = buildUninstallModuleHash;
|
|
4781
4953
|
exports.computeOapdSalt = computeOapdSalt;
|
|
4782
4954
|
exports.erc8004AddressesForChain = erc8004AddressesForChain;
|
|
4783
4955
|
exports.getOapdAddress = getOapdAddress;
|
|
4784
4956
|
exports.getOapdAddressWithChainId = getOapdAddressWithChainId;
|
|
4957
|
+
exports.initConfigFromRecord = initConfigFromRecord;
|
|
4958
|
+
exports.initConfigToTuple = initConfigToTuple;
|
|
4785
4959
|
exports.isExecuteUserOpWrapped = isExecuteUserOpWrapped;
|
|
4786
4960
|
exports.isOapdDeployed = isOapdDeployed;
|
|
4787
4961
|
exports.isPendingConfirmation = isPendingConfirmation;
|
|
@@ -4791,7 +4965,9 @@ exports.runAuthenticationCeremony = runAuthenticationCeremony;
|
|
|
4791
4965
|
exports.runGrantSessionCeremony = runGrantSessionCeremony;
|
|
4792
4966
|
exports.runWebAuthnCeremony = runWebAuthnCeremony;
|
|
4793
4967
|
exports.sepoliaV07Config = sepoliaV07Config;
|
|
4968
|
+
exports.serializeGuardianSpecs = serializeGuardianSpecs;
|
|
4969
|
+
exports.toGuardianSpecs = toGuardianSpecs;
|
|
4794
4970
|
exports.validateConfig = validateConfig;
|
|
4795
4971
|
exports.wrapExecuteUserOp = wrapExecuteUserOp;
|
|
4796
|
-
//# sourceMappingURL=chunk-
|
|
4797
|
-
//# sourceMappingURL=chunk-
|
|
4972
|
+
//# sourceMappingURL=chunk-LAZA3JD7.cjs.map
|
|
4973
|
+
//# sourceMappingURL=chunk-LAZA3JD7.cjs.map
|