@aastar/sdk 0.24.1 → 0.25.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-5PQP6APK.js +6 -0
- package/dist/{UserClient-KYDCMAIU.js.map → UserClient-5PQP6APK.js.map} +1 -1
- package/dist/UserClient-CD7R3335.cjs +15 -0
- package/dist/{UserClient-S6LS3CB6.cjs.map → UserClient-CD7R3335.cjs.map} +1 -1
- package/dist/account.cjs +8 -8
- package/dist/account.js +3 -3
- package/dist/addresses-D12T3kLs.d.cts +210 -0
- package/dist/addresses-D12T3kLs.d.ts +210 -0
- package/dist/admin.cjs +4 -4
- package/dist/admin.js +3 -3
- package/dist/airaccount.cjs +111 -103
- package/dist/airaccount.d.cts +1 -1
- package/dist/airaccount.d.ts +1 -1
- package/dist/airaccount.js +3 -3
- package/dist/channel.cjs +7 -7
- package/dist/channel.js +3 -3
- package/dist/{chunk-72JZKARR.cjs → chunk-2RHBOBL7.cjs} +6 -6
- package/dist/{chunk-72JZKARR.cjs.map → chunk-2RHBOBL7.cjs.map} +1 -1
- package/dist/{chunk-BYVG7MO7.js → chunk-6DZCDV4Q.js} +2137 -13
- package/dist/chunk-6DZCDV4Q.js.map +1 -0
- package/dist/{chunk-VEAYV52I.cjs → chunk-6IZASQSB.cjs} +236 -109
- package/dist/chunk-6IZASQSB.cjs.map +1 -0
- package/dist/{chunk-NVYVTCHJ.cjs → chunk-7HTUDNH3.cjs} +11 -11
- package/dist/{chunk-NVYVTCHJ.cjs.map → chunk-7HTUDNH3.cjs.map} +1 -1
- package/dist/{chunk-PNBK2CLK.js → chunk-7JVL5CU3.js} +3 -3
- package/dist/{chunk-PNBK2CLK.js.map → chunk-7JVL5CU3.js.map} +1 -1
- package/dist/{chunk-654GQ7G7.js → chunk-A4FO6FKN.js} +3 -3
- package/dist/{chunk-654GQ7G7.js.map → chunk-A4FO6FKN.js.map} +1 -1
- package/dist/{chunk-A4ICWCHR.cjs → chunk-CI4UJW5Y.cjs} +5 -5
- package/dist/{chunk-A4ICWCHR.cjs.map → chunk-CI4UJW5Y.cjs.map} +1 -1
- package/dist/{chunk-RZ2M2RVP.js → chunk-COTHBCR2.js} +3 -3
- package/dist/{chunk-RZ2M2RVP.js.map → chunk-COTHBCR2.js.map} +1 -1
- package/dist/{chunk-2UC7UPHV.js → chunk-D2RDBN46.js} +227 -102
- package/dist/chunk-D2RDBN46.js.map +1 -0
- package/dist/{chunk-WVOJV4Q5.cjs → chunk-FIMXPANS.cjs} +4 -4
- package/dist/{chunk-WVOJV4Q5.cjs.map → chunk-FIMXPANS.cjs.map} +1 -1
- package/dist/{chunk-MXJEULSE.cjs → chunk-G33MXEHU.cjs} +29 -2
- package/dist/chunk-G33MXEHU.cjs.map +1 -0
- package/dist/{chunk-D667CUUS.cjs → chunk-GASCTLKR.cjs} +9 -9
- package/dist/{chunk-D667CUUS.cjs.map → chunk-GASCTLKR.cjs.map} +1 -1
- package/dist/{chunk-PXQDAFXD.js → chunk-IG4BG25C.js} +6 -6
- package/dist/{chunk-PXQDAFXD.js.map → chunk-IG4BG25C.js.map} +1 -1
- package/dist/{chunk-5PH5CSM7.cjs → chunk-J3UAXGNP.cjs} +16 -16
- package/dist/{chunk-5PH5CSM7.cjs.map → chunk-J3UAXGNP.cjs.map} +1 -1
- package/dist/{chunk-WC25H5VG.js → chunk-JCEUTCFZ.js} +4 -4
- package/dist/{chunk-WC25H5VG.js.map → chunk-JCEUTCFZ.js.map} +1 -1
- package/dist/{chunk-MOJJ7QF6.cjs → chunk-KOWTQJIX.cjs} +2177 -49
- package/dist/chunk-KOWTQJIX.cjs.map +1 -0
- package/dist/chunk-L6D2AGTF.js +500 -0
- package/dist/chunk-L6D2AGTF.js.map +1 -0
- package/dist/{chunk-VHY6R2PI.cjs → chunk-LRPAX5AG.cjs} +32 -32
- package/dist/{chunk-VHY6R2PI.cjs.map → chunk-LRPAX5AG.cjs.map} +1 -1
- package/dist/{chunk-UCLK6LTB.js → chunk-MBWBHKUE.js} +28 -3
- package/dist/chunk-MBWBHKUE.js.map +1 -0
- package/dist/{chunk-BOVDJSMK.cjs → chunk-NHDZQPDE.cjs} +26 -26
- package/dist/{chunk-BOVDJSMK.cjs.map → chunk-NHDZQPDE.cjs.map} +1 -1
- package/dist/{chunk-HNJBQR5U.cjs → chunk-OBPTMV5W.cjs} +5 -5
- package/dist/{chunk-HNJBQR5U.cjs.map → chunk-OBPTMV5W.cjs.map} +1 -1
- package/dist/{chunk-JMW5AHLC.js → chunk-QTXPAGNX.js} +9 -9
- package/dist/{chunk-JMW5AHLC.js.map → chunk-QTXPAGNX.js.map} +1 -1
- package/dist/{chunk-WVJ4LQVB.js → chunk-UANSP3OK.js} +3 -3
- package/dist/{chunk-WVJ4LQVB.js.map → chunk-UANSP3OK.js.map} +1 -1
- package/dist/{chunk-DAMWXGKD.js → chunk-UTSFTWFC.js} +3 -3
- package/dist/{chunk-DAMWXGKD.js.map → chunk-UTSFTWFC.js.map} +1 -1
- package/dist/chunk-WTURYJEA.cjs +504 -0
- package/dist/chunk-WTURYJEA.cjs.map +1 -0
- package/dist/{chunk-LDARLWS3.js → chunk-YR7CTWY6.js} +3 -3
- package/dist/{chunk-LDARLWS3.js.map → chunk-YR7CTWY6.js.map} +1 -1
- package/dist/{contract-addresses-RABD77VP.cjs → contract-addresses-6K6IB5OB.cjs} +13 -13
- package/dist/{contract-addresses-RABD77VP.cjs.map → contract-addresses-6K6IB5OB.cjs.map} +1 -1
- package/dist/{contract-addresses-TVXSRQ7I.js → contract-addresses-CHZ7PK5H.js} +3 -3
- package/dist/{contract-addresses-TVXSRQ7I.js.map → contract-addresses-CHZ7PK5H.js.map} +1 -1
- package/dist/core.cjs +285 -261
- package/dist/core.d.cts +6 -175
- package/dist/core.d.ts +6 -175
- package/dist/core.js +2 -2
- package/dist/dapp.cjs +6 -6
- package/dist/dapp.js +3 -3
- package/dist/email.cjs +91 -0
- package/dist/email.cjs.map +1 -0
- package/dist/email.d.cts +115 -0
- package/dist/email.d.ts +115 -0
- package/dist/email.js +88 -0
- package/dist/email.js.map +1 -0
- package/dist/enduser.cjs +7 -7
- package/dist/enduser.js +4 -4
- package/dist/identity.cjs +6 -6
- package/dist/identity.js +3 -3
- package/dist/index.cjs +406 -374
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +17 -17
- package/dist/kms.cjs +111 -103
- package/dist/kms.d.cts +199 -19
- package/dist/kms.d.ts +199 -19
- package/dist/kms.js +3 -3
- package/dist/operator.cjs +7 -7
- package/dist/operator.js +3 -3
- package/dist/paymaster.cjs +16 -16
- package/dist/paymaster.js +3 -3
- package/dist/{src-N72HAQXS.cjs → src-DNURNUIA.cjs} +287 -263
- package/dist/src-DNURNUIA.cjs.map +1 -0
- package/dist/{src-72GWEAPA.cjs → src-DZDH3BSU.cjs} +18 -18
- package/dist/src-DZDH3BSU.cjs.map +1 -0
- package/dist/{src-UNS5B7FX.js → src-EVM7OESP.js} +5 -5
- package/dist/src-EVM7OESP.js.map +1 -0
- package/dist/src-FY3KAPPC.js +5 -0
- package/dist/src-FY3KAPPC.js.map +1 -0
- package/dist/tokens.cjs +12 -4
- package/dist/tokens.d.cts +133 -1
- package/dist/tokens.d.ts +133 -1
- package/dist/tokens.js +3 -3
- package/dist/x402.cjs +26 -26
- package/dist/x402.js +3 -3
- package/package.json +17 -2
- package/dist/UserClient-KYDCMAIU.js +0 -6
- package/dist/UserClient-S6LS3CB6.cjs +0 -15
- package/dist/chunk-2UC7UPHV.js.map +0 -1
- package/dist/chunk-7RVONA2R.js +0 -226
- package/dist/chunk-7RVONA2R.js.map +0 -1
- package/dist/chunk-BYVG7MO7.js.map +0 -1
- package/dist/chunk-GDH4DSVM.cjs +0 -228
- package/dist/chunk-GDH4DSVM.cjs.map +0 -1
- package/dist/chunk-MOJJ7QF6.cjs.map +0 -1
- package/dist/chunk-MXJEULSE.cjs.map +0 -1
- package/dist/chunk-UCLK6LTB.js.map +0 -1
- package/dist/chunk-VEAYV52I.cjs.map +0 -1
- package/dist/src-5URXSFKD.js +0 -5
- package/dist/src-5URXSFKD.js.map +0 -1
- package/dist/src-72GWEAPA.cjs.map +0 -1
- package/dist/src-N72HAQXS.cjs.map +0 -1
- package/dist/src-UNS5B7FX.js.map +0 -1
package/dist/chunk-7RVONA2R.js
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { SuperPaymasterABI } from './chunk-BYVG7MO7.js';
|
|
2
|
-
import { parseAbi, formatEther } from 'viem';
|
|
3
|
-
|
|
4
|
-
var STAKING_ABI = parseAbi([
|
|
5
|
-
"function stake(uint256)",
|
|
6
|
-
"function withdraw(uint256)"
|
|
7
|
-
]);
|
|
8
|
-
var ERC20_ABI = parseAbi([
|
|
9
|
-
"function balanceOf(address) view returns (uint256)",
|
|
10
|
-
"function totalSupply() view returns (uint256)",
|
|
11
|
-
"function approve(address,uint256) returns (bool)",
|
|
12
|
-
"function transfer(address,uint256) returns (bool)"
|
|
13
|
-
]);
|
|
14
|
-
var FinanceClient = class _FinanceClient {
|
|
15
|
-
/**
|
|
16
|
-
* Initialize FinanceClient
|
|
17
|
-
* @param publicClient The public client for queries
|
|
18
|
-
* @param walletClient The wallet client for transactions
|
|
19
|
-
*/
|
|
20
|
-
constructor(publicClient, walletClient) {
|
|
21
|
-
this.publicClient = publicClient;
|
|
22
|
-
this.walletClient = walletClient;
|
|
23
|
-
}
|
|
24
|
-
// ========== Existing static methods (preserved for backward compatibility) ==========
|
|
25
|
-
/** @deprecated Use instance methods instead */
|
|
26
|
-
static async depositToPaymaster(wallet, paymaster, amount) {
|
|
27
|
-
return wallet.writeContract({
|
|
28
|
-
address: paymaster,
|
|
29
|
-
abi: SuperPaymasterABI,
|
|
30
|
-
functionName: "deposit",
|
|
31
|
-
args: [amount],
|
|
32
|
-
chain: wallet.chain
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/** @deprecated Use instance methods instead */
|
|
36
|
-
static async depositViaTransferAndCall(wallet, token, paymaster, amount) {
|
|
37
|
-
const ERC1363_ABI = [{
|
|
38
|
-
name: "transferAndCall",
|
|
39
|
-
type: "function",
|
|
40
|
-
stateMutability: "nonpayable",
|
|
41
|
-
inputs: [{ type: "address", name: "to" }, { type: "uint256", name: "value" }],
|
|
42
|
-
outputs: [{ type: "bool" }]
|
|
43
|
-
}];
|
|
44
|
-
return wallet.writeContract({
|
|
45
|
-
address: token,
|
|
46
|
-
abi: ERC1363_ABI,
|
|
47
|
-
functionName: "transferAndCall",
|
|
48
|
-
args: [paymaster, amount],
|
|
49
|
-
chain: wallet.chain
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
/** @deprecated Use instance methods instead */
|
|
53
|
-
static async stakeGToken(wallet, stakingAddr, amount) {
|
|
54
|
-
return wallet.writeContract({
|
|
55
|
-
address: stakingAddr,
|
|
56
|
-
abi: STAKING_ABI,
|
|
57
|
-
functionName: "stake",
|
|
58
|
-
args: [amount],
|
|
59
|
-
chain: wallet.chain
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
/** @deprecated Use instance methods instead */
|
|
63
|
-
static async withdrawProtocolRevenue(wallet, paymaster, to, amount) {
|
|
64
|
-
return wallet.writeContract({
|
|
65
|
-
address: paymaster,
|
|
66
|
-
abi: SuperPaymasterABI,
|
|
67
|
-
functionName: "withdrawProtocolRevenue",
|
|
68
|
-
args: [to, amount],
|
|
69
|
-
chain: wallet.chain
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/** @deprecated Use instance methods instead */
|
|
73
|
-
static async depositToEntryPoint(wallet, entryPoint, paymaster, amount) {
|
|
74
|
-
return wallet.writeContract({
|
|
75
|
-
address: entryPoint,
|
|
76
|
-
abi: parseAbi(["function depositTo(address) payable"]),
|
|
77
|
-
functionName: "depositTo",
|
|
78
|
-
args: [paymaster],
|
|
79
|
-
value: amount,
|
|
80
|
-
chain: wallet.chain
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
/** @deprecated Use instance methods instead */
|
|
84
|
-
static async getEntryPointBalance(client, entryPoint, account) {
|
|
85
|
-
return client.readContract({
|
|
86
|
-
address: entryPoint,
|
|
87
|
-
abi: parseAbi(["function balanceOf(address) view returns (uint256)"]),
|
|
88
|
-
functionName: "balanceOf",
|
|
89
|
-
args: [account]
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
/** @deprecated Use instance methods instead */
|
|
93
|
-
static async operatorDeposit(wallet, paymaster, amount) {
|
|
94
|
-
return wallet.writeContract({
|
|
95
|
-
address: paymaster,
|
|
96
|
-
abi: SuperPaymasterABI,
|
|
97
|
-
functionName: "deposit",
|
|
98
|
-
args: [amount],
|
|
99
|
-
chain: wallet.chain
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
/** @deprecated Use instance methods instead */
|
|
103
|
-
static async operatorNotifyDeposit(wallet, paymaster, amount) {
|
|
104
|
-
return wallet.writeContract({
|
|
105
|
-
address: paymaster,
|
|
106
|
-
abi: SuperPaymasterABI,
|
|
107
|
-
functionName: "notifyDeposit",
|
|
108
|
-
args: [amount],
|
|
109
|
-
chain: wallet.chain
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
// ========== New instance methods (business primitives) ==========
|
|
113
|
-
/**
|
|
114
|
-
* Get GToken balance
|
|
115
|
-
*/
|
|
116
|
-
async getGTokenBalance(address) {
|
|
117
|
-
const { CORE_ADDRESSES } = await import('./src-5URXSFKD.js');
|
|
118
|
-
return this.publicClient.readContract({
|
|
119
|
-
address: CORE_ADDRESSES.gToken,
|
|
120
|
-
abi: ERC20_ABI,
|
|
121
|
-
functionName: "balanceOf",
|
|
122
|
-
args: [address]
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Get aPNTs balance
|
|
127
|
-
*/
|
|
128
|
-
async getAPNTsBalance(address) {
|
|
129
|
-
const { CORE_ADDRESSES } = await import('./src-5URXSFKD.js');
|
|
130
|
-
return this.publicClient.readContract({
|
|
131
|
-
address: CORE_ADDRESSES.aPNTs,
|
|
132
|
-
abi: ERC20_ABI,
|
|
133
|
-
functionName: "balanceOf",
|
|
134
|
-
args: [address]
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* One-step stake: Approve (if needed) + Stake
|
|
139
|
-
*
|
|
140
|
-
* @param amount Amount of GToken to stake
|
|
141
|
-
* @returns Transaction hash of the stake action
|
|
142
|
-
*/
|
|
143
|
-
async approveAndStake(amount) {
|
|
144
|
-
const account = this.walletClient.account;
|
|
145
|
-
if (!account) throw new Error("Account required");
|
|
146
|
-
const { CORE_ADDRESSES } = await import('./src-5URXSFKD.js');
|
|
147
|
-
const gTokenAddress = CORE_ADDRESSES.gToken;
|
|
148
|
-
const stakingAddress = CORE_ADDRESSES.gTokenStaking;
|
|
149
|
-
const allowance = await this.publicClient.readContract({
|
|
150
|
-
address: gTokenAddress,
|
|
151
|
-
abi: parseAbi(["function allowance(address owner, address spender) view returns (uint256)"]),
|
|
152
|
-
functionName: "allowance",
|
|
153
|
-
args: [account.address, stakingAddress]
|
|
154
|
-
});
|
|
155
|
-
if (allowance < amount) {
|
|
156
|
-
console.log(`[FinanceClient] Approving ${formatEther(amount)} GToken...`);
|
|
157
|
-
const approveTx = await this.walletClient.writeContract({
|
|
158
|
-
address: gTokenAddress,
|
|
159
|
-
abi: parseAbi(["function approve(address spender, uint256 amount) returns (bool)"]),
|
|
160
|
-
functionName: "approve",
|
|
161
|
-
args: [stakingAddress, amount],
|
|
162
|
-
chain: this.walletClient.chain,
|
|
163
|
-
account
|
|
164
|
-
});
|
|
165
|
-
await this.publicClient.waitForTransactionReceipt({ hash: approveTx });
|
|
166
|
-
console.log(`[FinanceClient] Approved.`);
|
|
167
|
-
}
|
|
168
|
-
console.log(`[FinanceClient] Staking...`);
|
|
169
|
-
return _FinanceClient.stakeGToken(this.walletClient, stakingAddress, amount);
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Get circulating supply (total - locked)
|
|
173
|
-
*/
|
|
174
|
-
async getCirculatingSupply() {
|
|
175
|
-
const { CORE_ADDRESSES } = await import('./src-5URXSFKD.js');
|
|
176
|
-
const gTokenAddress = CORE_ADDRESSES.gToken;
|
|
177
|
-
const total = await this.publicClient.readContract({
|
|
178
|
-
address: gTokenAddress,
|
|
179
|
-
abi: ERC20_ABI,
|
|
180
|
-
functionName: "totalSupply"
|
|
181
|
-
});
|
|
182
|
-
const locked = 0n;
|
|
183
|
-
return {
|
|
184
|
-
total,
|
|
185
|
-
locked,
|
|
186
|
-
circulating: total - locked
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Get comprehensive tokenomics data
|
|
191
|
-
*/
|
|
192
|
-
async getTokenomicsOverview() {
|
|
193
|
-
const { CORE_ADDRESSES } = await import('./src-5URXSFKD.js');
|
|
194
|
-
const [totalSupply, totalStaked, blackholeBalance] = await Promise.all([
|
|
195
|
-
this.publicClient.readContract({
|
|
196
|
-
address: CORE_ADDRESSES.gToken,
|
|
197
|
-
abi: parseAbi(["function totalSupply() view returns (uint256)"]),
|
|
198
|
-
functionName: "totalSupply"
|
|
199
|
-
}),
|
|
200
|
-
this.publicClient.readContract({
|
|
201
|
-
address: CORE_ADDRESSES.gTokenStaking,
|
|
202
|
-
abi: parseAbi(["function totalStaked() view returns (uint256)"]),
|
|
203
|
-
functionName: "totalStaked"
|
|
204
|
-
}),
|
|
205
|
-
this.publicClient.readContract({
|
|
206
|
-
address: CORE_ADDRESSES.gToken,
|
|
207
|
-
abi: parseAbi(["function balanceOf(address) view returns (uint256)"]),
|
|
208
|
-
functionName: "balanceOf",
|
|
209
|
-
args: ["0x000000000000000000000000000000000000dEaD"]
|
|
210
|
-
})
|
|
211
|
-
]);
|
|
212
|
-
const circulating = totalSupply - totalStaked - blackholeBalance;
|
|
213
|
-
const ratio = Number(formatEther(totalStaked)) / Number(formatEther(totalSupply)) * 100;
|
|
214
|
-
return {
|
|
215
|
-
totalSupply,
|
|
216
|
-
totalStaked,
|
|
217
|
-
totalBurned: blackholeBalance,
|
|
218
|
-
circulatingSupply: circulating,
|
|
219
|
-
stakingRatio: ratio
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
export { FinanceClient };
|
|
225
|
-
//# sourceMappingURL=chunk-7RVONA2R.js.map
|
|
226
|
-
//# sourceMappingURL=chunk-7RVONA2R.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../tokens/src/index.ts"],"names":[],"mappings":"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","file":"chunk-7RVONA2R.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"]}
|