@devbond/gc 1.0.0 → 2.0.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.
Files changed (42) hide show
  1. package/dist/autonomy/behavior.d.ts +3 -2
  2. package/dist/autonomy/behavior.js +2 -2
  3. package/dist/autonomy/behavior.js.map +1 -1
  4. package/dist/autonomy/llm-client.d.ts +5 -9
  5. package/dist/autonomy/llm-client.js +13 -138
  6. package/dist/autonomy/llm-client.js.map +1 -1
  7. package/dist/finance/action/buyback.d.ts +36 -0
  8. package/dist/finance/action/buyback.js +27 -0
  9. package/dist/finance/action/buyback.js.map +1 -0
  10. package/dist/finance/action/gas-refill.d.ts +29 -0
  11. package/dist/finance/action/gas-refill.js +106 -0
  12. package/dist/finance/action/gas-refill.js.map +1 -0
  13. package/dist/finance/action/index.d.ts +8 -0
  14. package/dist/finance/action/index.js +9 -0
  15. package/dist/finance/action/index.js.map +1 -0
  16. package/dist/finance/action/pay-bills.d.ts +35 -0
  17. package/dist/finance/action/pay-bills.js +39 -0
  18. package/dist/finance/action/pay-bills.js.map +1 -0
  19. package/dist/finance/action/treasury.d.ts +26 -0
  20. package/dist/finance/action/treasury.js +46 -0
  21. package/dist/finance/action/treasury.js.map +1 -0
  22. package/dist/finance/action/x402.d.ts +124 -0
  23. package/dist/finance/action/x402.js +200 -0
  24. package/dist/finance/action/x402.js.map +1 -0
  25. package/dist/finance/earn.d.ts +49 -0
  26. package/dist/finance/earn.js +77 -0
  27. package/dist/finance/earn.js.map +1 -0
  28. package/dist/finance/index.d.ts +5 -0
  29. package/dist/finance/index.js +5 -0
  30. package/dist/finance/index.js.map +1 -0
  31. package/dist/finance/spend.d.ts +53 -0
  32. package/dist/finance/spend.js +89 -0
  33. package/dist/finance/spend.js.map +1 -0
  34. package/dist/finance/wallet.d.ts +23 -0
  35. package/dist/finance/wallet.js +82 -0
  36. package/dist/finance/wallet.js.map +1 -0
  37. package/dist/index.js +15 -9
  38. package/dist/index.js.map +1 -1
  39. package/dist/survival/survival-manager.d.ts +4 -2
  40. package/dist/survival/survival-manager.js +9 -3
  41. package/dist/survival/survival-manager.js.map +1 -1
  42. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import { type ChainState, type RuntimeConfig, type Observation, type AgentTool } from "../types.js";
2
2
  import type { ChainMonitor, SurvivalManager } from "../survival/index.js";
3
- import type { AgentWallet } from "../wallet/agent-wallet.js";
3
+ import type { AgentWallet } from "../finance/wallet.js";
4
+ import type { SpendManager } from "../finance/spend.js";
4
5
  /**
5
6
  * AutonomousBehavior — the Think → Act → Observe loop.
6
7
  *
@@ -20,7 +21,7 @@ export declare class AutonomousBehavior {
20
21
  private memory;
21
22
  private tools;
22
23
  private initialized;
23
- constructor(monitor: ChainMonitor, survival: SurvivalManager, config: RuntimeConfig, agentWallet?: AgentWallet);
24
+ constructor(monitor: ChainMonitor, survival: SurvivalManager, config: RuntimeConfig, agentWallet?: AgentWallet, spendManager?: SpendManager);
24
25
  /** Register a tool (call before init) */
25
26
  registerTool(tool: AgentTool): void;
26
27
  /** Initialize: create SOUL.md, load memory */
@@ -23,7 +23,7 @@ export class AutonomousBehavior {
23
23
  memory;
24
24
  tools = new Map();
25
25
  initialized = false;
26
- constructor(monitor, survival, config, agentWallet) {
26
+ constructor(monitor, survival, config, agentWallet, spendManager) {
27
27
  this.monitor = monitor;
28
28
  this.survival = survival;
29
29
  this.config = config;
@@ -41,7 +41,7 @@ export class AutonomousBehavior {
41
41
  // Enable x402 payment when using bsc-llm-router (apiKey === "x402")
42
42
  config.llmApiKey === "x402"
43
43
  ? { walletPrivateKey: config.walletPrivateKey, chainId: config.chainId }
44
- : undefined, agentWallet);
44
+ : undefined, agentWallet?.signer, spendManager);
45
45
  this.memory = new ObservationLog(config.dataDir);
46
46
  }
47
47
  /** Register a tool (call before init) */
@@ -1 +1 @@
1
- {"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../src/autonomy/behavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../src/autonomy/behavior.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { ethers } from "ethers";
1
2
  import type { LLMResult, AgentTool, ToolContext } from "../types.js";
2
- import type { AgentWallet } from "../wallet/index.js";
3
+ import type { SpendManager } from "../finance/spend.js";
3
4
  interface LLMConfig {
4
5
  apiUrl: string;
5
6
  apiKey: string;
@@ -21,8 +22,8 @@ export declare class LLMClient {
21
22
  private config;
22
23
  private x402?;
23
24
  private wallet?;
24
- private agentWallet?;
25
- constructor(config: LLMConfig, x402?: X402Config, agentWallet?: AgentWallet);
25
+ private spendManager?;
26
+ constructor(config: LLMConfig, x402?: X402Config, signer?: ethers.Wallet, spendManager?: SpendManager);
26
27
  /**
27
28
  * Chat with tool calling loop.
28
29
  * Sends system + user message, executes tool calls, feeds results back,
@@ -35,13 +36,8 @@ export declare class LLMClient {
35
36
  private callApi;
36
37
  /**
37
38
  * Handle x402 Payment Required response.
38
- * Signs a Permit2 PermitWitnessTransferFrom and retries with payment-signature header.
39
+ * Delegates entirely to finance/action/x402 handleHttpX402.
39
40
  */
40
41
  private handleX402Payment;
41
- /**
42
- * Sign a Permit2 PermitWitnessTransferFrom for x402 payment.
43
- * Uses ethers.js signTypedData (EIP-712).
44
- */
45
- private signPermit2Payment;
46
42
  }
47
43
  export {};
@@ -1,25 +1,5 @@
1
1
  import { ethers } from "ethers";
2
- // ── Permit2 constants ──
3
- const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
4
- const X402_PERMIT2_PROXY = "0x402085c248EeA27D92E8b30b2C58ed07f9E20001";
5
- /** EIP-712 types for Permit2 PermitWitnessTransferFrom (x402 exact scheme) */
6
- const PERMIT2_WITNESS_TYPES = {
7
- PermitWitnessTransferFrom: [
8
- { name: "permitted", type: "TokenPermissions" },
9
- { name: "spender", type: "address" },
10
- { name: "nonce", type: "uint256" },
11
- { name: "deadline", type: "uint256" },
12
- { name: "witness", type: "Witness" },
13
- ],
14
- TokenPermissions: [
15
- { name: "token", type: "address" },
16
- { name: "amount", type: "uint256" },
17
- ],
18
- Witness: [
19
- { name: "to", type: "address" },
20
- { name: "validAfter", type: "uint256" },
21
- ],
22
- };
2
+ import { handleHttpX402 } from "../finance/action/x402.js";
23
3
  /**
24
4
  * OpenAI-compatible LLM client with function calling loop.
25
5
  * Works with: OpenRouter, OpenAI, DeepSeek, any OpenAI-compatible API.
@@ -29,13 +9,13 @@ export class LLMClient {
29
9
  config;
30
10
  x402;
31
11
  wallet;
32
- agentWallet;
33
- constructor(config, x402, agentWallet) {
12
+ spendManager;
13
+ constructor(config, x402, signer, spendManager) {
34
14
  this.config = config;
35
15
  this.x402 = x402;
36
- this.agentWallet = agentWallet;
16
+ this.spendManager = spendManager;
37
17
  if (x402) {
38
- this.wallet = agentWallet?.signer ?? new ethers.Wallet(x402.walletPrivateKey);
18
+ this.wallet = signer ?? new ethers.Wallet(x402.walletPrivateKey);
39
19
  }
40
20
  }
41
21
  /**
@@ -179,122 +159,17 @@ export class LLMClient {
179
159
  }
180
160
  /**
181
161
  * Handle x402 Payment Required response.
182
- * Signs a Permit2 PermitWitnessTransferFrom and retries with payment-signature header.
162
+ * Delegates entirely to finance/action/x402 handleHttpX402.
183
163
  */
184
164
  async handleX402Payment(res402, url, headers, body, signal) {
185
- const paymentRequired = await res402.json();
186
- const requirements = paymentRequired.accepts?.[0];
187
- if (!requirements) {
188
- throw new Error("x402: No payment requirements in 402 response");
165
+ const result = await handleHttpX402(this.wallet, res402, async (paymentHeader) => {
166
+ const paidHeaders = { ...headers, "payment-signature": paymentHeader };
167
+ return fetch(url, { method: "POST", headers: paidHeaders, body, signal });
168
+ }, this.spendManager ? { manager: this.spendManager, category: "llm" } : undefined);
169
+ if (!result.success) {
170
+ throw new Error(result.error ?? "x402 payment failed");
189
171
  }
190
- console.log(` [x402] Payment required: ${requirements.amount} on ${requirements.network} → signing...`);
191
- let paymentHeader;
192
- // Use AgentWallet for signing if available, otherwise fall back to inline signing
193
- if (this.agentWallet) {
194
- const signed = await this.agentWallet.signPermit2({
195
- network: requirements.network,
196
- asset: requirements.asset,
197
- amount: requirements.amount,
198
- payTo: requirements.payTo,
199
- maxTimeoutSeconds: requirements.maxTimeoutSeconds,
200
- });
201
- const paymentPayload = {
202
- x402Version: paymentRequired.x402Version ?? 2,
203
- scheme: "exact",
204
- network: requirements.network,
205
- payload: { permit2Authorization: signed.permit2Authorization, signature: signed.signature },
206
- resource: paymentRequired.resource,
207
- accepted: requirements,
208
- };
209
- paymentHeader = btoa(JSON.stringify(paymentPayload));
210
- }
211
- else {
212
- paymentHeader = await this.signPermit2Payment(requirements, paymentRequired.resource, paymentRequired.x402Version ?? 2);
213
- }
214
- // Retry with payment signature
215
- const paidHeaders = { ...headers, "payment-signature": paymentHeader };
216
- const retryRes = await fetch(url, {
217
- method: "POST",
218
- headers: paidHeaders,
219
- body,
220
- signal,
221
- });
222
- if (retryRes.status === 402) {
223
- const errBody = await retryRes.text().catch(() => "");
224
- throw new Error(`x402: Payment rejected after signing: ${errBody}`);
225
- }
226
- // Log settlement info from response headers
227
- const txHash = retryRes.headers.get("x-bsc-llm-router-tx");
228
- const payer = retryRes.headers.get("x-bsc-llm-router-payer");
229
- if (txHash) {
230
- console.log(` [x402] Settled: payer=${payer} tx=${txHash}`);
231
- // Record LLM spending if AgentWallet is available
232
- if (this.agentWallet) {
233
- try {
234
- this.agentWallet.recordSpend("llm", BigInt(requirements.amount), txHash);
235
- }
236
- catch { /* ignore recording errors */ }
237
- }
238
- }
239
- return retryRes;
240
- }
241
- /**
242
- * Sign a Permit2 PermitWitnessTransferFrom for x402 payment.
243
- * Uses ethers.js signTypedData (EIP-712).
244
- */
245
- async signPermit2Payment(requirements, resource, x402Version) {
246
- if (!this.wallet || !this.x402) {
247
- throw new Error("x402: wallet not configured");
248
- }
249
- const now = Math.floor(Date.now() / 1000);
250
- const chainId = parseInt(requirements.network.split(":")[1], 10);
251
- const deadline = now + (requirements.maxTimeoutSeconds || 300);
252
- const validAfter = now - 600;
253
- // Generate random nonce (uint256)
254
- const nonceBytes = ethers.randomBytes(32);
255
- const nonce = ethers.toBigInt(nonceBytes);
256
- const domain = {
257
- name: "Permit2",
258
- verifyingContract: PERMIT2_ADDRESS,
259
- chainId,
260
- };
261
- const message = {
262
- permitted: {
263
- token: requirements.asset,
264
- amount: BigInt(requirements.amount),
265
- },
266
- spender: X402_PERMIT2_PROXY,
267
- nonce,
268
- deadline: BigInt(deadline),
269
- witness: {
270
- to: requirements.payTo,
271
- validAfter: BigInt(validAfter),
272
- },
273
- };
274
- const signature = await this.wallet.signTypedData(domain, PERMIT2_WITNESS_TYPES, message);
275
- const permit2Authorization = {
276
- from: this.wallet.address,
277
- spender: X402_PERMIT2_PROXY,
278
- nonce: nonce.toString(),
279
- deadline: String(deadline),
280
- permitted: {
281
- token: requirements.asset,
282
- amount: requirements.amount,
283
- },
284
- witness: {
285
- to: requirements.payTo,
286
- validAfter: String(validAfter),
287
- },
288
- };
289
- const paymentPayload = {
290
- x402Version,
291
- scheme: "exact",
292
- network: requirements.network,
293
- payload: { permit2Authorization, signature },
294
- resource,
295
- accepted: requirements,
296
- };
297
- return btoa(JSON.stringify(paymentPayload));
172
+ return result.response;
298
173
  }
299
174
  }
300
175
  //# sourceMappingURL=llm-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/autonomy/llm-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/autonomy/llm-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * buyback.ts — 使用 wallet 余额回购 agent 自身 token
3
+ *
4
+ * 使用钱包中的稳定币(或 native)通过 DEX router 买入 agent 对应的 Goo token,
5
+ * 回购的 token 进入 wallet 地址,可用于质押、销毁或再分配。
6
+ */
7
+ import type { AgentWallet } from "../wallet.js";
8
+ export interface BuybackParams {
9
+ /** 用于回购的稳定币数量(最小单位,与 stableDecimals 一致) */
10
+ amountIn: bigint;
11
+ /** 最少接受的 agent token 数量(滑点保护,0 表示不检查) */
12
+ amountOutMin?: bigint;
13
+ /** 可选:超时秒数,默认 300 */
14
+ deadlineSeconds?: number;
15
+ }
16
+ export interface BuybackResult {
17
+ success: boolean;
18
+ /** 交易 hash */
19
+ txHash?: string;
20
+ /** 实际获得的 token 数量(若链上可解析) */
21
+ amountOut?: bigint;
22
+ error?: string;
23
+ }
24
+ /**
25
+ * 使用 wallet 的稳定币余额回购 agent 自身 token(scaffolding)。
26
+ * 流程:approve router → 调用 router 的 stable → agent token 兑换 → 记录支出。
27
+ */
28
+ export declare function executeBuyback(_wallet: AgentWallet, _params: BuybackParams): Promise<BuybackResult>;
29
+ /**
30
+ * 估算用给定稳定币数量可换得的 agent token 数量(scaffolding)。
31
+ */
32
+ export declare function quoteBuyback(_wallet: AgentWallet, _amountStableIn: bigint): Promise<{
33
+ amountTokenOut: bigint;
34
+ } | {
35
+ error: string;
36
+ }>;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * buyback.ts — 使用 wallet 余额回购 agent 自身 token
3
+ *
4
+ * 使用钱包中的稳定币(或 native)通过 DEX router 买入 agent 对应的 Goo token,
5
+ * 回购的 token 进入 wallet 地址,可用于质押、销毁或再分配。
6
+ */
7
+ // ─── Handlers ───────────────────────────────────────────────────────────
8
+ /**
9
+ * 使用 wallet 的稳定币余额回购 agent 自身 token(scaffolding)。
10
+ * 流程:approve router → 调用 router 的 stable → agent token 兑换 → 记录支出。
11
+ */
12
+ export async function executeBuyback(_wallet, _params) {
13
+ // TODO: 1. 检查 wallet 稳定币余额 >= amountIn
14
+ // TODO: 2. 若 allowance < amountIn,approve router
15
+ // TODO: 3. 构造 path [stableTokenAddr, wrappedNative?, tokenAddress] 或 [stableTokenAddr, tokenAddress](依池子而定)
16
+ // TODO: 4. 调用 router.swapExactTokensForTokens / swapExactTokensForTokensSupportingFeeOnTransferTokens
17
+ // TODO: 5. spendManager.record("invest", amountIn, txHash)
18
+ return { success: false, error: "Not implemented" };
19
+ }
20
+ /**
21
+ * 估算用给定稳定币数量可换得的 agent token 数量(scaffolding)。
22
+ */
23
+ export async function quoteBuyback(_wallet, _amountStableIn) {
24
+ // TODO: router.getAmountsOut(amountStableIn, path) 得到 amountTokenOut
25
+ return { error: "Not implemented" };
26
+ }
27
+ //# sourceMappingURL=buyback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyback.js","sourceRoot":"","sources":["../../../src/finance/action/buyback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,2EAA2E;AAE3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAoB,EACpB,OAAsB;IAEtB,uCAAuC;IACvC,iDAAiD;IACjD,4GAA4G;IAC5G,sGAAsG;IACtG,2DAA2D;IAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAoB,EACpB,eAAuB;IAEvB,qEAAqE;IACrE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * gas-refill.ts — 链上 Gas 补充
3
+ *
4
+ * 当 wallet 的 native token (BNB/ETH) 不足时,自动 swap 稳定币为 native token。
5
+ * 若钱包稳定币不足且 treasury 可提款,先从 treasury 提款再 swap。
6
+ */
7
+ import type { AgentWallet } from "../wallet.js";
8
+ import type { SpendManager } from "../spend.js";
9
+ export interface GasRefillResult {
10
+ refilled: boolean;
11
+ amount?: bigint;
12
+ txHash?: string;
13
+ error?: string;
14
+ }
15
+ export interface GasCheckOptions {
16
+ /** native 余额下限(wei) */
17
+ minGasBalance: bigint;
18
+ /** 单次补充目标金额(wei) */
19
+ gasRefillAmount: bigint;
20
+ }
21
+ /**
22
+ * Check native balance and refill gas if below threshold.
23
+ * Full flow: check balance → detect treasury → (optional withdraw) → approve router → swap stable → native.
24
+ */
25
+ export declare function ensureWalletGas(wallet: AgentWallet, options: GasCheckOptions, spendManager?: SpendManager): Promise<GasRefillResult>;
26
+ /**
27
+ * 检查并补充 token 合约(或关联合约)上的 native gas(scaffolding)。
28
+ */
29
+ export declare function ensureTokenGas(_wallet: AgentWallet, _options: GasCheckOptions): Promise<GasRefillResult>;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * gas-refill.ts — 链上 Gas 补充
3
+ *
4
+ * 当 wallet 的 native token (BNB/ETH) 不足时,自动 swap 稳定币为 native token。
5
+ * 若钱包稳定币不足且 treasury 可提款,先从 treasury 提款再 swap。
6
+ */
7
+ import { ethers } from "ethers";
8
+ import { detectTreasuryCapabilities, withdrawFromTreasury } from "./treasury.js";
9
+ // ─── ABIs ───────────────────────────────────────────────────────────────
10
+ const ERC20_ABI = [
11
+ "function balanceOf(address) view returns (uint256)",
12
+ "function approve(address spender, uint256 amount) returns (bool)",
13
+ "function allowance(address owner, address spender) view returns (uint256)",
14
+ ];
15
+ const ROUTER_ABI = [
16
+ "function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline)",
17
+ ];
18
+ const TOKEN_META_ABI = [
19
+ "function WRAPPED_NATIVE() view returns (address)",
20
+ "function ROUTER() view returns (address)",
21
+ ];
22
+ // ─── Handlers ───────────────────────────────────────────────────────────
23
+ /**
24
+ * Check native balance and refill gas if below threshold.
25
+ * Full flow: check balance → detect treasury → (optional withdraw) → approve router → swap stable → native.
26
+ */
27
+ export async function ensureWalletGas(wallet, options, spendManager) {
28
+ const { minGasBalance, gasRefillAmount } = options;
29
+ const signer = wallet.signer;
30
+ const provider = wallet.rpcProvider;
31
+ // 1. Check native balance
32
+ const nativeBalance = await provider.getBalance(signer.address);
33
+ if (nativeBalance >= minGasBalance) {
34
+ return { refilled: false };
35
+ }
36
+ console.log(`[gas-refill] Gas low: ${ethers.formatEther(nativeBalance)} < ` +
37
+ `${ethers.formatEther(minGasBalance)}. Attempting refill...`);
38
+ try {
39
+ // 2. Read router/wrappedNative metadata from token contract
40
+ const tokenMeta = new ethers.Contract(wallet.tokenAddr, TOKEN_META_ABI, provider);
41
+ const [wrappedNative, routerAddr] = await Promise.all([
42
+ tokenMeta.WRAPPED_NATIVE(),
43
+ tokenMeta.ROUTER(),
44
+ ]);
45
+ // 3. Create contract instances
46
+ const stableContract = new ethers.Contract(wallet.stableAddr, ERC20_ABI, signer);
47
+ const routerContract = new ethers.Contract(routerAddr, ROUTER_ABI, signer);
48
+ // 4. Check wallet stablecoin balance
49
+ let stableBalance = await stableContract.balanceOf(signer.address);
50
+ // 5. If insufficient, detect treasury capability and try withdraw
51
+ if (stableBalance < gasRefillAmount) {
52
+ const caps = await detectTreasuryCapabilities(wallet.tokenAddr, provider);
53
+ if (caps.hasWithdrawToWallet) {
54
+ try {
55
+ const needed = gasRefillAmount - stableBalance + gasRefillAmount; // extra buffer
56
+ await withdrawFromTreasury(signer, wallet.tokenAddr, needed, wallet.stableDecimalCount);
57
+ stableBalance = await stableContract.balanceOf(signer.address);
58
+ }
59
+ catch (err) {
60
+ const msg = err instanceof Error ? err.message : String(err);
61
+ console.log(`[gas-refill] Treasury withdraw failed: ${msg}`);
62
+ }
63
+ }
64
+ }
65
+ if (stableBalance === 0n) {
66
+ return { refilled: false, error: "No stablecoin in wallet for gas swap" };
67
+ }
68
+ // 6. Safety limit: max 10% of wallet stablecoin per swap
69
+ const maxSwap = stableBalance / 10n;
70
+ const swapAmount = gasRefillAmount < maxSwap ? gasRefillAmount : maxSwap;
71
+ if (swapAmount === 0n) {
72
+ return { refilled: false, error: "Swap amount too small" };
73
+ }
74
+ // 7. Approve router if needed
75
+ const allowance = await stableContract.allowance(signer.address, routerAddr);
76
+ if (allowance < swapAmount) {
77
+ const approveTx = await stableContract.approve(routerAddr, ethers.MaxUint256);
78
+ await approveTx.wait();
79
+ }
80
+ // 8. Swap stable → native
81
+ const path = [wallet.stableAddr, wrappedNative];
82
+ const deadline = Math.floor(Date.now() / 1000) + 300;
83
+ const tx = await routerContract
84
+ .swapExactTokensForETHSupportingFeeOnTransferTokens(swapAmount, 0n, // accept any output (should use price oracle in prod)
85
+ path, signer.address, deadline);
86
+ const receipt = await tx.wait();
87
+ console.log(`[gas-refill] Refilled: swapped ${ethers.formatUnits(swapAmount, wallet.stableDecimalCount)} stable → native (tx: ${receipt.hash})`);
88
+ // 9. Record spend if manager provided
89
+ if (spendManager && receipt.hash) {
90
+ spendManager.record("gas", swapAmount, receipt.hash);
91
+ }
92
+ return { refilled: true, amount: swapAmount, txHash: receipt.hash };
93
+ }
94
+ catch (err) {
95
+ const msg = err instanceof Error ? err.message : String(err);
96
+ return { refilled: false, error: `Gas refill failed: ${msg}` };
97
+ }
98
+ }
99
+ /**
100
+ * 检查并补充 token 合约(或关联合约)上的 native gas(scaffolding)。
101
+ */
102
+ export async function ensureTokenGas(_wallet, _options) {
103
+ // TODO: read token/contract native balance; if low, trigger refill
104
+ return { refilled: false };
105
+ }
106
+ //# sourceMappingURL=gas-refill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas-refill.js","sourceRoot":"","sources":["../../../src/finance/action/gas-refill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * finance/action — 财务相关动作:x402 支付、gas 补充、账单支付
3
+ */
4
+ export { signPermit2, signX402Payment, buildPaymentHeader, readSettlement, parseX402Response, handleHttpX402, handleX402Payment, PERMIT2_ADDRESS, X402_PERMIT2_PROXY, PERMIT2_WITNESS_TYPES, type X402PaymentParams, type X402SignedResult, type X402PaymentResult, type X402Settlement, type X402ResponseBody, } from "./x402.js";
5
+ export { ensureWalletGas, ensureTokenGas, type GasCheckOptions, type GasRefillResult, } from "./gas-refill.js";
6
+ export { payBill, getPendingBills, payPendingBills, type Bill, type PayBillsResult, } from "./pay-bills.js";
7
+ export { executeBuyback, quoteBuyback, type BuybackParams, type BuybackResult, } from "./buyback.js";
8
+ export { detectTreasuryCapabilities, withdrawFromTreasury, type TreasuryCapabilities, type WithdrawResult, } from "./treasury.js";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * finance/action — 财务相关动作:x402 支付、gas 补充、账单支付
3
+ */
4
+ export { signPermit2, signX402Payment, buildPaymentHeader, readSettlement, parseX402Response, handleHttpX402, handleX402Payment, PERMIT2_ADDRESS, X402_PERMIT2_PROXY, PERMIT2_WITNESS_TYPES, } from "./x402.js";
5
+ export { ensureWalletGas, ensureTokenGas, } from "./gas-refill.js";
6
+ export { payBill, getPendingBills, payPendingBills, } from "./pay-bills.js";
7
+ export { executeBuyback, quoteBuyback, } from "./buyback.js";
8
+ export { detectTreasuryCapabilities, withdrawFromTreasury, } from "./treasury.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/finance/action/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,GAMtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,eAAe,EACf,cAAc,GAGf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,OAAO,EACP,eAAe,EACf,eAAe,GAGhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,YAAY,GAGb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GAGrB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * pay-bills.ts — 支付基础设施服务账单(通过 x402)
3
+ *
4
+ * 负责对 infra 服务(如托管、API、存储等)的账单进行支付:
5
+ * 使用 x402 协议完成支付(调用 handleX402Payment),并记录为 infra 类支出。
6
+ */
7
+ import type { ethers } from "ethers";
8
+ import type { X402PaymentParams, X402PaymentResult } from "./x402.js";
9
+ export interface Bill {
10
+ /** 服务标识,如 "hosting", "api", "storage" */
11
+ service: string;
12
+ /** 支付参数(与 x402 一致) */
13
+ payment: X402PaymentParams;
14
+ /** 可选:到期时间或描述 */
15
+ dueAt?: string;
16
+ note?: string;
17
+ }
18
+ export interface PayBillsResult {
19
+ paid: boolean;
20
+ billId?: string;
21
+ result?: X402PaymentResult;
22
+ error?: string;
23
+ }
24
+ /**
25
+ * 支付单笔 infra 账单:使用 x402 完成支付并记录支出(scaffolding)。
26
+ */
27
+ export declare function payBill(signer: ethers.Wallet, bill: Bill, retryWithHeader: (paymentHeader: string) => Promise<unknown>): Promise<PayBillsResult>;
28
+ /**
29
+ * 获取待支付账单列表(scaffolding:可从配置或外部 API 拉取)。
30
+ */
31
+ export declare function getPendingBills(): Promise<Bill[]>;
32
+ /**
33
+ * 批量支付当前待支付账单(scaffolding)。
34
+ */
35
+ export declare function payPendingBills(signer: ethers.Wallet, retryWithHeader: (bill: Bill, paymentHeader: string) => Promise<unknown>): Promise<PayBillsResult[]>;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * pay-bills.ts — 支付基础设施服务账单(通过 x402)
3
+ *
4
+ * 负责对 infra 服务(如托管、API、存储等)的账单进行支付:
5
+ * 使用 x402 协议完成支付(调用 handleX402Payment),并记录为 infra 类支出。
6
+ */
7
+ import { handleX402Payment } from "./x402.js";
8
+ // ─── Handlers ───────────────────────────────────────────────────────────
9
+ /**
10
+ * 支付单笔 infra 账单:使用 x402 完成支付并记录支出(scaffolding)。
11
+ */
12
+ export async function payBill(signer, bill, retryWithHeader) {
13
+ const result = await handleX402Payment(signer, bill.payment, retryWithHeader);
14
+ if (!result.success) {
15
+ return { paid: false, result, error: result.error };
16
+ }
17
+ // TODO: record spend via spendManager.record("other", ...) when txHash available
18
+ return { paid: true, result };
19
+ }
20
+ /**
21
+ * 获取待支付账单列表(scaffolding:可从配置或外部 API 拉取)。
22
+ */
23
+ export async function getPendingBills() {
24
+ // TODO: load from config or billing API
25
+ return [];
26
+ }
27
+ /**
28
+ * 批量支付当前待支付账单(scaffolding)。
29
+ */
30
+ export async function payPendingBills(signer, retryWithHeader) {
31
+ const bills = await getPendingBills();
32
+ const results = [];
33
+ for (const bill of bills) {
34
+ const r = await payBill(signer, bill, (header) => retryWithHeader(bill, header));
35
+ results.push(r);
36
+ }
37
+ return results;
38
+ }
39
+ //# sourceMappingURL=pay-bills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pay-bills.js","sourceRoot":"","sources":["../../../src/finance/action/pay-bills.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAqB9C,2EAA2E;AAE3E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAqB,EACrB,IAAU,EACV,eAA4D;IAE5D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IACD,iFAAiF;IACjF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,wCAAwC;IACxC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,eAAwE;IAExE,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}