@t2000/sdk 0.17.28 → 0.18.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/adapters/index.d.cts +1 -1
- package/dist/adapters/index.d.ts +4 -10
- package/dist/adapters/index.js +2107 -15
- package/dist/adapters/index.js.map +1 -1
- package/dist/{index-DdtOBw42.d.ts → index-Co0lp99l.d.cts} +23 -1
- package/dist/{index-DdtOBw42.d.cts → index-Co0lp99l.d.ts} +23 -1
- package/dist/index.cjs +102 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -3
- package/dist/index.d.ts +654 -30
- package/dist/index.js +6154 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/adapters/cetus.d.ts +0 -29
- package/dist/adapters/cetus.d.ts.map +0 -1
- package/dist/adapters/cetus.js +0 -74
- package/dist/adapters/cetus.js.map +0 -1
- package/dist/adapters/cetus.test.d.ts +0 -2
- package/dist/adapters/cetus.test.d.ts.map +0 -1
- package/dist/adapters/cetus.test.js +0 -57
- package/dist/adapters/cetus.test.js.map +0 -1
- package/dist/adapters/compliance.test.d.ts +0 -8
- package/dist/adapters/compliance.test.d.ts.map +0 -1
- package/dist/adapters/compliance.test.js +0 -202
- package/dist/adapters/compliance.test.js.map +0 -1
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/navi.d.ts +0 -41
- package/dist/adapters/navi.d.ts.map +0 -1
- package/dist/adapters/navi.js +0 -102
- package/dist/adapters/navi.js.map +0 -1
- package/dist/adapters/navi.test.d.ts +0 -2
- package/dist/adapters/navi.test.d.ts.map +0 -1
- package/dist/adapters/navi.test.js +0 -164
- package/dist/adapters/navi.test.js.map +0 -1
- package/dist/adapters/registry.d.ts +0 -47
- package/dist/adapters/registry.d.ts.map +0 -1
- package/dist/adapters/registry.js +0 -162
- package/dist/adapters/registry.js.map +0 -1
- package/dist/adapters/registry.test.d.ts +0 -2
- package/dist/adapters/registry.test.d.ts.map +0 -1
- package/dist/adapters/registry.test.js +0 -197
- package/dist/adapters/registry.test.js.map +0 -1
- package/dist/adapters/suilend.d.ts +0 -71
- package/dist/adapters/suilend.d.ts.map +0 -1
- package/dist/adapters/suilend.js +0 -826
- package/dist/adapters/suilend.js.map +0 -1
- package/dist/adapters/suilend.test.d.ts +0 -2
- package/dist/adapters/suilend.test.d.ts.map +0 -1
- package/dist/adapters/suilend.test.js +0 -294
- package/dist/adapters/suilend.test.js.map +0 -1
- package/dist/adapters/types.d.ts +0 -160
- package/dist/adapters/types.d.ts.map +0 -1
- package/dist/adapters/types.js +0 -2
- package/dist/adapters/types.js.map +0 -1
- package/dist/auto-invest.d.ts +0 -23
- package/dist/auto-invest.d.ts.map +0 -1
- package/dist/auto-invest.js +0 -131
- package/dist/auto-invest.js.map +0 -1
- package/dist/auto-invest.test.d.ts +0 -2
- package/dist/auto-invest.test.d.ts.map +0 -1
- package/dist/auto-invest.test.js +0 -220
- package/dist/auto-invest.test.js.map +0 -1
- package/dist/constants.d.ts +0 -177
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -135
- package/dist/constants.js.map +0 -1
- package/dist/contacts.d.ts +0 -25
- package/dist/contacts.d.ts.map +0 -1
- package/dist/contacts.js +0 -83
- package/dist/contacts.js.map +0 -1
- package/dist/contacts.test.d.ts +0 -2
- package/dist/contacts.test.d.ts.map +0 -1
- package/dist/contacts.test.js +0 -164
- package/dist/contacts.test.js.map +0 -1
- package/dist/errors.d.ts +0 -26
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -81
- package/dist/errors.js.map +0 -1
- package/dist/errors.test.d.ts +0 -2
- package/dist/errors.test.d.ts.map +0 -1
- package/dist/errors.test.js +0 -48
- package/dist/errors.test.js.map +0 -1
- package/dist/gas/autoTopUp.d.ts +0 -18
- package/dist/gas/autoTopUp.d.ts.map +0 -1
- package/dist/gas/autoTopUp.js +0 -55
- package/dist/gas/autoTopUp.js.map +0 -1
- package/dist/gas/autoTopUp.test.d.ts +0 -2
- package/dist/gas/autoTopUp.test.d.ts.map +0 -1
- package/dist/gas/autoTopUp.test.js +0 -59
- package/dist/gas/autoTopUp.test.js.map +0 -1
- package/dist/gas/gasStation.d.ts +0 -23
- package/dist/gas/gasStation.d.ts.map +0 -1
- package/dist/gas/gasStation.js +0 -58
- package/dist/gas/gasStation.js.map +0 -1
- package/dist/gas/index.d.ts +0 -4
- package/dist/gas/index.d.ts.map +0 -1
- package/dist/gas/index.js +0 -4
- package/dist/gas/index.js.map +0 -1
- package/dist/gas/manager.d.ts +0 -24
- package/dist/gas/manager.d.ts.map +0 -1
- package/dist/gas/manager.js +0 -142
- package/dist/gas/manager.js.map +0 -1
- package/dist/gas/manager.test.d.ts +0 -2
- package/dist/gas/manager.test.d.ts.map +0 -1
- package/dist/gas/manager.test.js +0 -220
- package/dist/gas/manager.test.js.map +0 -1
- package/dist/gas/serialization.test.d.ts +0 -2
- package/dist/gas/serialization.test.d.ts.map +0 -1
- package/dist/gas/serialization.test.js +0 -47
- package/dist/gas/serialization.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/invest.test.d.ts +0 -2
- package/dist/invest.test.d.ts.map +0 -1
- package/dist/invest.test.js +0 -256
- package/dist/invest.test.js.map +0 -1
- package/dist/portfolio.d.ts +0 -39
- package/dist/portfolio.d.ts.map +0 -1
- package/dist/portfolio.js +0 -201
- package/dist/portfolio.js.map +0 -1
- package/dist/portfolio.test.d.ts +0 -2
- package/dist/portfolio.test.d.ts.map +0 -1
- package/dist/portfolio.test.js +0 -301
- package/dist/portfolio.test.js.map +0 -1
- package/dist/protocols/cetus.d.ts +0 -73
- package/dist/protocols/cetus.d.ts.map +0 -1
- package/dist/protocols/cetus.js +0 -267
- package/dist/protocols/cetus.js.map +0 -1
- package/dist/protocols/cetus.test.d.ts +0 -2
- package/dist/protocols/cetus.test.d.ts.map +0 -1
- package/dist/protocols/cetus.test.js +0 -325
- package/dist/protocols/cetus.test.js.map +0 -1
- package/dist/protocols/navi.d.ts +0 -59
- package/dist/protocols/navi.d.ts.map +0 -1
- package/dist/protocols/navi.js +0 -945
- package/dist/protocols/navi.js.map +0 -1
- package/dist/protocols/navi.test.d.ts +0 -2
- package/dist/protocols/navi.test.d.ts.map +0 -1
- package/dist/protocols/navi.test.js +0 -339
- package/dist/protocols/navi.test.js.map +0 -1
- package/dist/protocols/protocolFee.d.ts +0 -17
- package/dist/protocols/protocolFee.d.ts.map +0 -1
- package/dist/protocols/protocolFee.js +0 -62
- package/dist/protocols/protocolFee.js.map +0 -1
- package/dist/protocols/protocolFee.test.d.ts +0 -2
- package/dist/protocols/protocolFee.test.d.ts.map +0 -1
- package/dist/protocols/protocolFee.test.js +0 -137
- package/dist/protocols/protocolFee.test.js.map +0 -1
- package/dist/protocols/sentinel.d.ts +0 -18
- package/dist/protocols/sentinel.d.ts.map +0 -1
- package/dist/protocols/sentinel.js +0 -188
- package/dist/protocols/sentinel.js.map +0 -1
- package/dist/protocols/sentinel.test.d.ts +0 -2
- package/dist/protocols/sentinel.test.d.ts.map +0 -1
- package/dist/protocols/sentinel.test.js +0 -199
- package/dist/protocols/sentinel.test.js.map +0 -1
- package/dist/protocols/yieldTracker.d.ts +0 -6
- package/dist/protocols/yieldTracker.d.ts.map +0 -1
- package/dist/protocols/yieldTracker.js +0 -29
- package/dist/protocols/yieldTracker.js.map +0 -1
- package/dist/safeguards/enforcer.d.ts +0 -18
- package/dist/safeguards/enforcer.d.ts.map +0 -1
- package/dist/safeguards/enforcer.js +0 -130
- package/dist/safeguards/enforcer.js.map +0 -1
- package/dist/safeguards/enforcer.test.d.ts +0 -2
- package/dist/safeguards/enforcer.test.d.ts.map +0 -1
- package/dist/safeguards/enforcer.test.js +0 -212
- package/dist/safeguards/enforcer.test.js.map +0 -1
- package/dist/safeguards/errors.d.ts +0 -24
- package/dist/safeguards/errors.d.ts.map +0 -1
- package/dist/safeguards/errors.js +0 -31
- package/dist/safeguards/errors.js.map +0 -1
- package/dist/safeguards/index.d.ts +0 -6
- package/dist/safeguards/index.d.ts.map +0 -1
- package/dist/safeguards/index.js +0 -4
- package/dist/safeguards/index.js.map +0 -1
- package/dist/safeguards/types.d.ts +0 -16
- package/dist/safeguards/types.d.ts.map +0 -1
- package/dist/safeguards/types.js +0 -13
- package/dist/safeguards/types.js.map +0 -1
- package/dist/strategy.d.ts +0 -22
- package/dist/strategy.d.ts.map +0 -1
- package/dist/strategy.js +0 -113
- package/dist/strategy.js.map +0 -1
- package/dist/strategy.test.d.ts +0 -2
- package/dist/strategy.test.d.ts.map +0 -1
- package/dist/strategy.test.js +0 -212
- package/dist/strategy.test.js.map +0 -1
- package/dist/t2000.d.ts +0 -219
- package/dist/t2000.d.ts.map +0 -1
- package/dist/t2000.integration.test.d.ts +0 -2
- package/dist/t2000.integration.test.d.ts.map +0 -1
- package/dist/t2000.integration.test.js +0 -954
- package/dist/t2000.integration.test.js.map +0 -1
- package/dist/t2000.js +0 -2406
- package/dist/t2000.js.map +0 -1
- package/dist/types.d.ts +0 -419
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/format.d.ts +0 -22
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -71
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/format.test.d.ts +0 -2
- package/dist/utils/format.test.d.ts.map +0 -1
- package/dist/utils/format.test.js +0 -187
- package/dist/utils/format.test.js.map +0 -1
- package/dist/utils/hashcash.d.ts +0 -2
- package/dist/utils/hashcash.d.ts.map +0 -1
- package/dist/utils/hashcash.js +0 -27
- package/dist/utils/hashcash.js.map +0 -1
- package/dist/utils/hashcash.test.d.ts +0 -2
- package/dist/utils/hashcash.test.d.ts.map +0 -1
- package/dist/utils/hashcash.test.js +0 -40
- package/dist/utils/hashcash.test.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -9
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -47
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/simulate.d.ts +0 -15
- package/dist/utils/simulate.d.ts.map +0 -1
- package/dist/utils/simulate.js +0 -75
- package/dist/utils/simulate.js.map +0 -1
- package/dist/utils/simulate.test.d.ts +0 -2
- package/dist/utils/simulate.test.d.ts.map +0 -1
- package/dist/utils/simulate.test.js +0 -80
- package/dist/utils/simulate.test.js.map +0 -1
- package/dist/utils/sui.d.ts +0 -6
- package/dist/utils/sui.d.ts.map +0 -1
- package/dist/utils/sui.js +0 -28
- package/dist/utils/sui.js.map +0 -1
- package/dist/utils/sui.test.d.ts +0 -2
- package/dist/utils/sui.test.d.ts.map +0 -1
- package/dist/utils/sui.test.js +0 -58
- package/dist/utils/sui.test.js.map +0 -1
- package/dist/wallet/balance.d.ts +0 -4
- package/dist/wallet/balance.d.ts.map +0 -1
- package/dist/wallet/balance.js +0 -98
- package/dist/wallet/balance.js.map +0 -1
- package/dist/wallet/history.d.ts +0 -4
- package/dist/wallet/history.d.ts.map +0 -1
- package/dist/wallet/history.js +0 -38
- package/dist/wallet/history.js.map +0 -1
- package/dist/wallet/keyManager.d.ts +0 -9
- package/dist/wallet/keyManager.d.ts.map +0 -1
- package/dist/wallet/keyManager.js +0 -113
- package/dist/wallet/keyManager.js.map +0 -1
- package/dist/wallet/keyManager.test.d.ts +0 -2
- package/dist/wallet/keyManager.test.d.ts.map +0 -1
- package/dist/wallet/keyManager.test.js +0 -55
- package/dist/wallet/keyManager.test.js.map +0 -1
- package/dist/wallet/send.d.ts +0 -24
- package/dist/wallet/send.d.ts.map +0 -1
- package/dist/wallet/send.js +0 -95
- package/dist/wallet/send.js.map +0 -1
- package/dist/wallet/send.test.d.ts +0 -2
- package/dist/wallet/send.test.d.ts.map +0 -1
- package/dist/wallet/send.test.js +0 -69
- package/dist/wallet/send.test.js.map +0 -1
package/dist/gas/autoTopUp.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';
|
|
2
|
-
import type { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
3
|
-
export interface AutoTopUpResult {
|
|
4
|
-
success: boolean;
|
|
5
|
-
tx: string;
|
|
6
|
-
usdcSpent: number;
|
|
7
|
-
suiReceived: number;
|
|
8
|
-
}
|
|
9
|
-
export declare function shouldAutoTopUp(client: SuiJsonRpcClient, address: string): Promise<boolean>;
|
|
10
|
-
/**
|
|
11
|
-
* Self-fund a USDC→SUI swap to replenish gas.
|
|
12
|
-
*
|
|
13
|
-
* Uses the agent's remaining SUI to pay for the swap gas (~0.007 SUI).
|
|
14
|
-
* This avoids the chicken-and-egg problem of needing gas station sponsorship
|
|
15
|
-
* to get gas, and works even when the gas station is down.
|
|
16
|
-
*/
|
|
17
|
-
export declare function executeAutoTopUp(client: SuiJsonRpcClient, keypair: Ed25519Keypair): Promise<AutoTopUpResult>;
|
|
18
|
-
//# sourceMappingURL=autoTopUp.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoTopUp.d.ts","sourceRoot":"","sources":["../../src/gas/autoTopUp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAYnE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAyC1B"}
|
package/dist/gas/autoTopUp.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { SUPPORTED_ASSETS, AUTO_TOPUP_THRESHOLD, AUTO_TOPUP_AMOUNT, AUTO_TOPUP_MIN_USDC, MIST_PER_SUI, } from '../constants.js';
|
|
2
|
-
import { buildSwapTx } from '../protocols/cetus.js';
|
|
3
|
-
const AUTO_TOPUP_MIN_SUI_FOR_GAS = 5000000n; // 0.005 SUI — minimum to self-fund the swap
|
|
4
|
-
export async function shouldAutoTopUp(client, address) {
|
|
5
|
-
const [suiBalance, usdcBalance] = await Promise.all([
|
|
6
|
-
client.getBalance({ owner: address, coinType: SUPPORTED_ASSETS.SUI.type }),
|
|
7
|
-
client.getBalance({ owner: address, coinType: SUPPORTED_ASSETS.USDC.type }),
|
|
8
|
-
]);
|
|
9
|
-
const suiRaw = BigInt(suiBalance.totalBalance);
|
|
10
|
-
const usdcRaw = BigInt(usdcBalance.totalBalance);
|
|
11
|
-
return suiRaw < AUTO_TOPUP_THRESHOLD && suiRaw >= AUTO_TOPUP_MIN_SUI_FOR_GAS && usdcRaw >= AUTO_TOPUP_MIN_USDC;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Self-fund a USDC→SUI swap to replenish gas.
|
|
15
|
-
*
|
|
16
|
-
* Uses the agent's remaining SUI to pay for the swap gas (~0.007 SUI).
|
|
17
|
-
* This avoids the chicken-and-egg problem of needing gas station sponsorship
|
|
18
|
-
* to get gas, and works even when the gas station is down.
|
|
19
|
-
*/
|
|
20
|
-
export async function executeAutoTopUp(client, keypair) {
|
|
21
|
-
const address = keypair.getPublicKey().toSuiAddress();
|
|
22
|
-
const topupAmountHuman = Number(AUTO_TOPUP_AMOUNT) / 1e6; // $1 USDC
|
|
23
|
-
const { tx } = await buildSwapTx({
|
|
24
|
-
client,
|
|
25
|
-
address,
|
|
26
|
-
fromAsset: 'USDC',
|
|
27
|
-
toAsset: 'SUI',
|
|
28
|
-
amount: topupAmountHuman,
|
|
29
|
-
});
|
|
30
|
-
const result = await client.signAndExecuteTransaction({
|
|
31
|
-
signer: keypair,
|
|
32
|
-
transaction: tx,
|
|
33
|
-
options: { showEffects: true, showBalanceChanges: true },
|
|
34
|
-
});
|
|
35
|
-
await client.waitForTransaction({ digest: result.digest });
|
|
36
|
-
let suiReceived = 0;
|
|
37
|
-
if (result.balanceChanges) {
|
|
38
|
-
for (const change of result.balanceChanges) {
|
|
39
|
-
if (change.coinType === SUPPORTED_ASSETS.SUI.type &&
|
|
40
|
-
change.owner &&
|
|
41
|
-
typeof change.owner === 'object' &&
|
|
42
|
-
'AddressOwner' in change.owner &&
|
|
43
|
-
change.owner.AddressOwner === address) {
|
|
44
|
-
suiReceived += Number(change.amount) / Number(MIST_PER_SUI);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
success: true,
|
|
50
|
-
tx: result.digest,
|
|
51
|
-
usdcSpent: topupAmountHuman,
|
|
52
|
-
suiReceived: Math.abs(suiReceived),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=autoTopUp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoTopUp.js","sourceRoot":"","sources":["../../src/gas/autoTopUp.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,0BAA0B,GAAG,QAAU,CAAC,CAAC,4CAA4C;AAS3F,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAwB,EACxB,OAAe;IAEf,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC1E,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAC5E,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAEjD,OAAO,MAAM,GAAG,oBAAoB,IAAI,MAAM,IAAI,0BAA0B,IAAI,OAAO,IAAI,mBAAmB,CAAC;AACjH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAwB,EACxB,OAAuB;IAEvB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC;IACtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU;IAEpE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,WAAW,CAAC;QAC/B,MAAM;QACN,OAAO;QACP,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,gBAAgB;KACzB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC;QACpD,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE;KACzD,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3D,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3C,IACE,MAAM,CAAC,QAAQ,KAAK,gBAAgB,CAAC,GAAG,CAAC,IAAI;gBAC7C,MAAM,CAAC,KAAK;gBACZ,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAChC,cAAc,IAAI,MAAM,CAAC,KAAK;gBAC9B,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,OAAO,EACrC,CAAC;gBACD,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,MAAM,CAAC,MAAM;QACjB,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoTopUp.test.d.ts","sourceRoot":"","sources":["../../src/gas/autoTopUp.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { AUTO_TOPUP_THRESHOLD, AUTO_TOPUP_MIN_USDC, SUPPORTED_ASSETS } from '../constants.js';
|
|
3
|
-
vi.mock('./gasStation.js', () => ({
|
|
4
|
-
requestGasSponsorship: vi.fn(),
|
|
5
|
-
reportGasUsage: vi.fn(),
|
|
6
|
-
}));
|
|
7
|
-
import { shouldAutoTopUp } from './autoTopUp.js';
|
|
8
|
-
function mockClient(suiBalance, usdcBalance) {
|
|
9
|
-
return {
|
|
10
|
-
getBalance: vi.fn().mockImplementation(({ coinType }) => {
|
|
11
|
-
if (coinType === SUPPORTED_ASSETS.SUI.type) {
|
|
12
|
-
return Promise.resolve({ totalBalance: suiBalance.toString() });
|
|
13
|
-
}
|
|
14
|
-
return Promise.resolve({ totalBalance: usdcBalance.toString() });
|
|
15
|
-
}),
|
|
16
|
-
getCoins: vi.fn().mockResolvedValue({ data: [] }),
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
describe('shouldAutoTopUp', () => {
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
vi.clearAllMocks();
|
|
22
|
-
});
|
|
23
|
-
it('returns true when SUI < threshold AND USDC >= min', async () => {
|
|
24
|
-
const client = mockClient(AUTO_TOPUP_THRESHOLD - 1n, // just under 0.05 SUI
|
|
25
|
-
AUTO_TOPUP_MIN_USDC);
|
|
26
|
-
const result = await shouldAutoTopUp(client, '0x' + 'a'.repeat(64));
|
|
27
|
-
expect(result).toBe(true);
|
|
28
|
-
});
|
|
29
|
-
it('returns false when SUI >= threshold', async () => {
|
|
30
|
-
const client = mockClient(AUTO_TOPUP_THRESHOLD, // exactly 0.05 SUI
|
|
31
|
-
10000000n);
|
|
32
|
-
const result = await shouldAutoTopUp(client, '0x' + 'a'.repeat(64));
|
|
33
|
-
expect(result).toBe(false);
|
|
34
|
-
});
|
|
35
|
-
it('returns false when USDC < min', async () => {
|
|
36
|
-
const client = mockClient(1000000n, // 0.001 SUI (low)
|
|
37
|
-
AUTO_TOPUP_MIN_USDC - 1n);
|
|
38
|
-
const result = await shouldAutoTopUp(client, '0x' + 'a'.repeat(64));
|
|
39
|
-
expect(result).toBe(false);
|
|
40
|
-
});
|
|
41
|
-
it('returns false when both SUI and USDC are sufficient', async () => {
|
|
42
|
-
const client = mockClient(100000000n, // 0.1 SUI (plenty)
|
|
43
|
-
10000000n);
|
|
44
|
-
const result = await shouldAutoTopUp(client, '0x' + 'a'.repeat(64));
|
|
45
|
-
expect(result).toBe(false);
|
|
46
|
-
});
|
|
47
|
-
it('returns false when both are zero', async () => {
|
|
48
|
-
const client = mockClient(0n, 0n);
|
|
49
|
-
const result = await shouldAutoTopUp(client, '0x' + 'a'.repeat(64));
|
|
50
|
-
expect(result).toBe(false);
|
|
51
|
-
});
|
|
52
|
-
it('threshold constant is 0.05 SUI (50_000_000 MIST)', () => {
|
|
53
|
-
expect(AUTO_TOPUP_THRESHOLD).toBe(50000000n);
|
|
54
|
-
});
|
|
55
|
-
it('min USDC constant is $2 (2_000_000 raw)', () => {
|
|
56
|
-
expect(AUTO_TOPUP_MIN_USDC).toBe(2000000n);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=autoTopUp.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoTopUp.test.js","sourceRoot":"","sources":["../../src/gas/autoTopUp.test.ts"],"names":[],"mappings":"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"}
|
package/dist/gas/gasStation.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export type GasRequestType = 'bootstrap' | 'auto-topup' | 'fallback';
|
|
2
|
-
export interface GasSponsorResponse {
|
|
3
|
-
txBytes: string;
|
|
4
|
-
sponsorSignature: string;
|
|
5
|
-
gasEstimateUsd: number;
|
|
6
|
-
type: GasRequestType;
|
|
7
|
-
}
|
|
8
|
-
export interface GasStatusResponse {
|
|
9
|
-
circuitBreaker: boolean;
|
|
10
|
-
suiPrice: number;
|
|
11
|
-
bootstrapUsed?: number;
|
|
12
|
-
bootstrapRemaining?: number;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Request gas sponsorship from the gas station.
|
|
16
|
-
*
|
|
17
|
-
* Sends `txJson` (preferred) or `txBcsBytes` (base64-encoded BCS from tx.build(),
|
|
18
|
-
* used when serialize() fails due to v1/v2 SDK mismatch with aggregator).
|
|
19
|
-
*/
|
|
20
|
-
export declare function requestGasSponsorship(txJson: string, sender: string, type?: GasRequestType, txBcsBytes?: string): Promise<GasSponsorResponse>;
|
|
21
|
-
export declare function reportGasUsage(sender: string, txDigest: string, gasCostSui: number, usdcCharged: number, type: GasRequestType): Promise<void>;
|
|
22
|
-
export declare function getGasStatus(address?: string): Promise<GasStatusResponse>;
|
|
23
|
-
//# sourceMappingURL=gasStation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gasStation.d.ts","sourceRoot":"","sources":["../../src/gas/gasStation.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,cAAc,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CA8C7B;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU/E"}
|
package/dist/gas/gasStation.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { API_BASE_URL } from '../constants.js';
|
|
2
|
-
import { T2000Error } from '../errors.js';
|
|
3
|
-
/**
|
|
4
|
-
* Request gas sponsorship from the gas station.
|
|
5
|
-
*
|
|
6
|
-
* Sends `txJson` (preferred) or `txBcsBytes` (base64-encoded BCS from tx.build(),
|
|
7
|
-
* used when serialize() fails due to v1/v2 SDK mismatch with aggregator).
|
|
8
|
-
*/
|
|
9
|
-
export async function requestGasSponsorship(txJson, sender, type, txBcsBytes) {
|
|
10
|
-
const payload = { sender, type };
|
|
11
|
-
if (txBcsBytes) {
|
|
12
|
-
payload.txBcsBytes = txBcsBytes;
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
payload.txJson = txJson;
|
|
16
|
-
payload.txBytes = Buffer.from(txJson).toString('base64');
|
|
17
|
-
}
|
|
18
|
-
const res = await fetch(`${API_BASE_URL}/api/gas`, {
|
|
19
|
-
method: 'POST',
|
|
20
|
-
headers: { 'Content-Type': 'application/json' },
|
|
21
|
-
body: JSON.stringify(payload),
|
|
22
|
-
});
|
|
23
|
-
const data = (await res.json());
|
|
24
|
-
if (!res.ok) {
|
|
25
|
-
const errorCode = data.error;
|
|
26
|
-
if (errorCode === 'CIRCUIT_BREAKER' || errorCode === 'POOL_DEPLETED') {
|
|
27
|
-
throw new T2000Error('GAS_STATION_UNAVAILABLE', data.message ?? 'Gas station temporarily unavailable', { retryAfter: data.retryAfter }, true);
|
|
28
|
-
}
|
|
29
|
-
if (errorCode === 'GAS_FEE_EXCEEDED') {
|
|
30
|
-
throw new T2000Error('GAS_FEE_EXCEEDED', data.message ?? 'Gas fee exceeds ceiling', { retryAfter: data.retryAfter }, true);
|
|
31
|
-
}
|
|
32
|
-
throw new T2000Error('GAS_STATION_UNAVAILABLE', data.message ?? 'Gas sponsorship request failed', undefined, true);
|
|
33
|
-
}
|
|
34
|
-
return data;
|
|
35
|
-
}
|
|
36
|
-
export async function reportGasUsage(sender, txDigest, gasCostSui, usdcCharged, type) {
|
|
37
|
-
try {
|
|
38
|
-
await fetch(`${API_BASE_URL}/api/gas/report`, {
|
|
39
|
-
method: 'POST',
|
|
40
|
-
headers: { 'Content-Type': 'application/json' },
|
|
41
|
-
body: JSON.stringify({ sender, txDigest, gasCostSui, usdcCharged, type }),
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// Non-critical — best-effort reporting
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
export async function getGasStatus(address) {
|
|
49
|
-
const url = new URL(`${API_BASE_URL}/api/gas/status`);
|
|
50
|
-
if (address)
|
|
51
|
-
url.searchParams.set('address', address);
|
|
52
|
-
const res = await fetch(url.toString());
|
|
53
|
-
if (!res.ok) {
|
|
54
|
-
throw new T2000Error('GAS_STATION_UNAVAILABLE', 'Failed to fetch gas status', undefined, true);
|
|
55
|
-
}
|
|
56
|
-
return (await res.json());
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=gasStation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gasStation.js","sourceRoot":"","sources":["../../src/gas/gasStation.ts"],"names":[],"mappings":"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"}
|
package/dist/gas/index.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { executeWithGas, type GasExecutionResult } from './manager.js';
|
|
2
|
-
export { shouldAutoTopUp, executeAutoTopUp, type AutoTopUpResult } from './autoTopUp.js';
|
|
3
|
-
export { requestGasSponsorship, reportGasUsage, getGasStatus, type GasSponsorResponse, type GasStatusResponse, type GasRequestType, } from './gasStation.js';
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/gas/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC"}
|
package/dist/gas/index.js
DELETED
package/dist/gas/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA2B,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,GAIb,MAAM,iBAAiB,CAAC"}
|
package/dist/gas/manager.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';
|
|
2
|
-
import type { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
3
|
-
import { Transaction } from '@mysten/sui/transactions';
|
|
4
|
-
import type { GasMethod } from '../types.js';
|
|
5
|
-
import type { SafeguardEnforcer } from '../safeguards/enforcer.js';
|
|
6
|
-
import type { TxMetadata } from '../safeguards/types.js';
|
|
7
|
-
export interface GasExecutionResult {
|
|
8
|
-
digest: string;
|
|
9
|
-
effects: unknown;
|
|
10
|
-
gasMethod: GasMethod;
|
|
11
|
-
gasCostSui: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Gas resolution chain:
|
|
15
|
-
* 1. Self-funded (agent has enough SUI)
|
|
16
|
-
* 2. Auto-topup (swap USDC→SUI, then self-fund)
|
|
17
|
-
* 3. Gas Station sponsored (fallback)
|
|
18
|
-
* 4. Fail with INSUFFICIENT_GAS
|
|
19
|
-
*/
|
|
20
|
-
export declare function executeWithGas(client: SuiJsonRpcClient, keypair: Ed25519Keypair, buildTx: () => Transaction | Promise<Transaction>, options?: {
|
|
21
|
-
metadata?: TxMetadata;
|
|
22
|
-
enforcer?: SafeguardEnforcer;
|
|
23
|
-
}): Promise<GasExecutionResult>;
|
|
24
|
-
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/gas/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAMvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyHD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,EACjD,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAChE,OAAO,CAAC,kBAAkB,CAAC,CA8C7B"}
|
package/dist/gas/manager.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { SUPPORTED_ASSETS, AUTO_TOPUP_THRESHOLD, } from '../constants.js';
|
|
2
|
-
import { T2000Error, isMoveAbort, parseMoveAbortMessage } from '../errors.js';
|
|
3
|
-
import { shouldAutoTopUp, executeAutoTopUp } from './autoTopUp.js';
|
|
4
|
-
import { requestGasSponsorship, reportGasUsage } from './gasStation.js';
|
|
5
|
-
function extractGasCost(effects) {
|
|
6
|
-
if (!effects?.gasUsed)
|
|
7
|
-
return 0;
|
|
8
|
-
return (Number(effects.gasUsed.computationCost) +
|
|
9
|
-
Number(effects.gasUsed.storageCost) -
|
|
10
|
-
Number(effects.gasUsed.storageRebate)) / 1e9;
|
|
11
|
-
}
|
|
12
|
-
async function getSuiBalance(client, address) {
|
|
13
|
-
const bal = await client.getBalance({ owner: address, coinType: SUPPORTED_ASSETS.SUI.type });
|
|
14
|
-
return BigInt(bal.totalBalance);
|
|
15
|
-
}
|
|
16
|
-
async function trySelfFunded(client, keypair, tx) {
|
|
17
|
-
const address = keypair.getPublicKey().toSuiAddress();
|
|
18
|
-
const suiBalance = await getSuiBalance(client, address);
|
|
19
|
-
// Need at least 0.05 SUI for gas
|
|
20
|
-
if (suiBalance < AUTO_TOPUP_THRESHOLD)
|
|
21
|
-
return null;
|
|
22
|
-
tx.setSender(address);
|
|
23
|
-
const result = await client.signAndExecuteTransaction({
|
|
24
|
-
signer: keypair,
|
|
25
|
-
transaction: tx,
|
|
26
|
-
options: { showEffects: true },
|
|
27
|
-
});
|
|
28
|
-
await client.waitForTransaction({ digest: result.digest });
|
|
29
|
-
return {
|
|
30
|
-
digest: result.digest,
|
|
31
|
-
effects: result.effects,
|
|
32
|
-
gasMethod: 'self-funded',
|
|
33
|
-
gasCostSui: extractGasCost(result.effects),
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
async function tryAutoTopUpThenSelfFund(client, keypair, buildTx) {
|
|
37
|
-
const address = keypair.getPublicKey().toSuiAddress();
|
|
38
|
-
const canTopUp = await shouldAutoTopUp(client, address);
|
|
39
|
-
if (!canTopUp)
|
|
40
|
-
return null;
|
|
41
|
-
await executeAutoTopUp(client, keypair);
|
|
42
|
-
// Rebuild the transaction with fresh object versions (auto-topup changed coin state)
|
|
43
|
-
const tx = await buildTx();
|
|
44
|
-
tx.setSender(address);
|
|
45
|
-
const result = await client.signAndExecuteTransaction({
|
|
46
|
-
signer: keypair,
|
|
47
|
-
transaction: tx,
|
|
48
|
-
options: { showEffects: true },
|
|
49
|
-
});
|
|
50
|
-
await client.waitForTransaction({ digest: result.digest });
|
|
51
|
-
return {
|
|
52
|
-
digest: result.digest,
|
|
53
|
-
effects: result.effects,
|
|
54
|
-
gasMethod: 'auto-topup',
|
|
55
|
-
gasCostSui: extractGasCost(result.effects),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
async function trySponsored(client, keypair, tx) {
|
|
59
|
-
const address = keypair.getPublicKey().toSuiAddress();
|
|
60
|
-
tx.setSender(address);
|
|
61
|
-
// Use serialize() for pure v2 transactions, fall back to build() for
|
|
62
|
-
// mixed v1/v2 transactions (e.g. Cetus aggregator adds v1 commands).
|
|
63
|
-
let txJson;
|
|
64
|
-
let txBcsBase64;
|
|
65
|
-
try {
|
|
66
|
-
txJson = tx.serialize();
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
const bcsBytes = await tx.build({ client });
|
|
70
|
-
txBcsBase64 = Buffer.from(bcsBytes).toString('base64');
|
|
71
|
-
}
|
|
72
|
-
const sponsoredResult = await requestGasSponsorship(txJson ?? '', address, undefined, txBcsBase64);
|
|
73
|
-
const sponsoredTxBytes = Buffer.from(sponsoredResult.txBytes, 'base64');
|
|
74
|
-
const { signature: agentSig } = await keypair.signTransaction(sponsoredTxBytes);
|
|
75
|
-
const result = await client.executeTransactionBlock({
|
|
76
|
-
transactionBlock: sponsoredResult.txBytes,
|
|
77
|
-
signature: [agentSig, sponsoredResult.sponsorSignature],
|
|
78
|
-
options: { showEffects: true },
|
|
79
|
-
});
|
|
80
|
-
await client.waitForTransaction({ digest: result.digest });
|
|
81
|
-
// Report gas usage (best-effort)
|
|
82
|
-
const gasCost = extractGasCost(result.effects);
|
|
83
|
-
reportGasUsage(address, result.digest, gasCost, 0, sponsoredResult.type);
|
|
84
|
-
return {
|
|
85
|
-
digest: result.digest,
|
|
86
|
-
effects: result.effects,
|
|
87
|
-
gasMethod: 'sponsored',
|
|
88
|
-
gasCostSui: gasCost,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Gas resolution chain:
|
|
93
|
-
* 1. Self-funded (agent has enough SUI)
|
|
94
|
-
* 2. Auto-topup (swap USDC→SUI, then self-fund)
|
|
95
|
-
* 3. Gas Station sponsored (fallback)
|
|
96
|
-
* 4. Fail with INSUFFICIENT_GAS
|
|
97
|
-
*/
|
|
98
|
-
export async function executeWithGas(client, keypair, buildTx, options) {
|
|
99
|
-
if (options?.enforcer && options?.metadata) {
|
|
100
|
-
options.enforcer.check(options.metadata);
|
|
101
|
-
}
|
|
102
|
-
const errors = [];
|
|
103
|
-
// Step 1: Try self-funded
|
|
104
|
-
try {
|
|
105
|
-
const tx = await buildTx();
|
|
106
|
-
const result = await trySelfFunded(client, keypair, tx);
|
|
107
|
-
if (result)
|
|
108
|
-
return result;
|
|
109
|
-
errors.push('self-funded: SUI below threshold');
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
113
|
-
if (isMoveAbort(msg)) {
|
|
114
|
-
throw new T2000Error('TRANSACTION_FAILED', parseMoveAbortMessage(msg));
|
|
115
|
-
}
|
|
116
|
-
errors.push(`self-funded: ${msg}`);
|
|
117
|
-
}
|
|
118
|
-
// Step 2: Try auto-topup (self-fund swap for gas) then self-fund the main tx
|
|
119
|
-
try {
|
|
120
|
-
const result = await tryAutoTopUpThenSelfFund(client, keypair, buildTx);
|
|
121
|
-
if (result)
|
|
122
|
-
return result;
|
|
123
|
-
errors.push('auto-topup: not eligible (low USDC or sufficient SUI)');
|
|
124
|
-
}
|
|
125
|
-
catch (err) {
|
|
126
|
-
errors.push(`auto-topup: ${err instanceof Error ? err.message : String(err)}`);
|
|
127
|
-
}
|
|
128
|
-
// Step 3: Try gas station sponsored
|
|
129
|
-
try {
|
|
130
|
-
const tx = await buildTx();
|
|
131
|
-
const result = await trySponsored(client, keypair, tx);
|
|
132
|
-
if (result)
|
|
133
|
-
return result;
|
|
134
|
-
errors.push('sponsored: returned null');
|
|
135
|
-
}
|
|
136
|
-
catch (err) {
|
|
137
|
-
errors.push(`sponsored: ${err instanceof Error ? err.message : String(err)}`);
|
|
138
|
-
}
|
|
139
|
-
// Step 4: All methods failed
|
|
140
|
-
throw new T2000Error('INSUFFICIENT_GAS', `No SUI for gas and Gas Station unavailable. Fund your wallet with SUI or USDC. [${errors.join(' | ')}]`, { reason: 'all_gas_methods_exhausted', errors });
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=manager.js.map
|
package/dist/gas/manager.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/gas/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.test.d.ts","sourceRoot":"","sources":["../../src/gas/manager.test.ts"],"names":[],"mappings":""}
|