@oobe-protocol-labs/synapse-sap-sdk 0.11.0 → 0.12.6
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/cjs/constants/payments.js +51 -1
- package/dist/cjs/constants/payments.js.map +1 -1
- package/dist/cjs/idl/synapse_agent_sap.json +156 -4
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/escrow-v2.js +62 -3
- package/dist/cjs/modules/escrow-v2.js.map +1 -1
- package/dist/cjs/modules/escrow.js +13 -3
- package/dist/cjs/modules/escrow.js.map +1 -1
- package/dist/cjs/modules/receipt.js +4 -0
- package/dist/cjs/modules/receipt.js.map +1 -1
- package/dist/cjs/modules/staking.js +30 -0
- package/dist/cjs/modules/staking.js.map +1 -1
- package/dist/cjs/registries/x402.js +10 -4
- package/dist/cjs/registries/x402.js.map +1 -1
- package/dist/cjs/utils/index.js +2 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/priority-fee.js +52 -0
- package/dist/cjs/utils/priority-fee.js.map +1 -1
- package/dist/esm/constants/payments.js +49 -0
- package/dist/esm/constants/payments.js.map +1 -1
- package/dist/esm/idl/synapse_agent_sap.json +156 -4
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/escrow-v2.js +63 -4
- package/dist/esm/modules/escrow-v2.js.map +1 -1
- package/dist/esm/modules/escrow.js +14 -4
- package/dist/esm/modules/escrow.js.map +1 -1
- package/dist/esm/modules/receipt.js +5 -1
- package/dist/esm/modules/receipt.js.map +1 -1
- package/dist/esm/modules/staking.js +30 -0
- package/dist/esm/modules/staking.js.map +1 -1
- package/dist/esm/registries/x402.js +11 -5
- package/dist/esm/registries/x402.js.map +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/priority-fee.js +51 -0
- package/dist/esm/utils/priority-fee.js.map +1 -1
- package/dist/types/constants/payments.d.ts +43 -0
- package/dist/types/constants/payments.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modules/escrow-v2.d.ts +2 -2
- package/dist/types/modules/escrow-v2.d.ts.map +1 -1
- package/dist/types/modules/escrow.d.ts.map +1 -1
- package/dist/types/modules/receipt.d.ts.map +1 -1
- package/dist/types/modules/staking.d.ts +19 -0
- package/dist/types/modules/staking.d.ts.map +1 -1
- package/dist/types/registries/x402.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/priority-fee.d.ts +20 -0
- package/dist/types/utils/priority-fee.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/constants/payments.ts +53 -0
- package/src/idl/synapse_agent_sap.json +156 -4
- package/src/index.ts +1 -0
- package/src/modules/escrow-v2.ts +68 -3
- package/src/modules/escrow.ts +14 -3
- package/src/modules/receipt.ts +5 -0
- package/src/modules/staking.ts +35 -0
- package/src/registries/x402.ts +11 -4
- package/src/utils/index.ts +1 -0
- package/src/utils/priority-fee.ts +55 -0
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
* @since v0.10.0
|
|
23
23
|
*/
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.MAX_DELEGATE_DURATION_SECS = exports.MIN_AGENT_STAKE_LAMPORTS = exports.USDC_MINT_DEVNET = exports.USDC_MINT_MAINNET = void 0;
|
|
25
|
+
exports.MAX_DELEGATE_DURATION_SECS = exports.UNSTAKE_COOLDOWN_SECONDS = exports.STAKE_COVERAGE_BPS = exports.SLASH_BPS = exports.MIN_AGENT_STAKE_LAMPORTS = exports.USDC_MINT_DEVNET = exports.USDC_MINT_MAINNET = void 0;
|
|
26
|
+
exports.computeRequiredStakeLamports = computeRequiredStakeLamports;
|
|
26
27
|
exports.isAcceptedUsdcMint = isAcceptedUsdcMint;
|
|
27
28
|
exports.isAcceptedPaymentToken = isAcceptedPaymentToken;
|
|
28
29
|
const web3_js_1 = require("@solana/web3.js");
|
|
@@ -51,6 +52,55 @@ exports.USDC_MINT_DEVNET = new web3_js_1.PublicKey("4zMMC9srt5Ri5X14GAgXhaHii3Gn
|
|
|
51
52
|
* @since v0.10.0
|
|
52
53
|
*/
|
|
53
54
|
exports.MIN_AGENT_STAKE_LAMPORTS = BigInt(100_000_000);
|
|
55
|
+
/**
|
|
56
|
+
* Slash share applied on a lost dispute, in basis points.
|
|
57
|
+
* Mirrors `AgentStake::SLASH_BPS` on-chain (`5_000` = 50%).
|
|
58
|
+
*
|
|
59
|
+
* @name SLASH_BPS
|
|
60
|
+
* @category Constants
|
|
61
|
+
* @since v0.11.0
|
|
62
|
+
*/
|
|
63
|
+
exports.SLASH_BPS = 5000n;
|
|
64
|
+
/**
|
|
65
|
+
* Stake coverage ratio enforced at `createEscrowV2` (basis points).
|
|
66
|
+
* Mirrors `AgentStake::STAKE_COVERAGE_BPS` on-chain. Currently equal to
|
|
67
|
+
* {@link SLASH_BPS} so the slash on a lost dispute is fully collateralised.
|
|
68
|
+
*
|
|
69
|
+
* @name STAKE_COVERAGE_BPS
|
|
70
|
+
* @category Constants
|
|
71
|
+
* @since v0.11.0
|
|
72
|
+
*/
|
|
73
|
+
exports.STAKE_COVERAGE_BPS = exports.SLASH_BPS;
|
|
74
|
+
/**
|
|
75
|
+
* Unstake cooldown in seconds. Mirrors `AgentStake::UNSTAKE_COOLDOWN_SECONDS`
|
|
76
|
+
* on-chain (`604_800` = 7 days). Replaces the misnamed pre-v0.11
|
|
77
|
+
* `UNSTAKE_COOLDOWN_SLOTS` constant which was never used by handlers.
|
|
78
|
+
*
|
|
79
|
+
* @name UNSTAKE_COOLDOWN_SECONDS
|
|
80
|
+
* @category Constants
|
|
81
|
+
* @since v0.11.0
|
|
82
|
+
*/
|
|
83
|
+
exports.UNSTAKE_COOLDOWN_SECONDS = 604_800;
|
|
84
|
+
/**
|
|
85
|
+
* Required `staked_amount` (lamports) for an agent to accept an escrow of
|
|
86
|
+
* `escrowLamports`. Equal to `max(MIN_AGENT_STAKE_LAMPORTS,
|
|
87
|
+
* escrowLamports * STAKE_COVERAGE_BPS / 10_000)`.
|
|
88
|
+
*
|
|
89
|
+
* Mirrors the on-chain check enforced in `create_escrow_v2` (v0.11 H-1).
|
|
90
|
+
* Use this to preflight an escrow create call and surface an actionable
|
|
91
|
+
* error before paying tx fees.
|
|
92
|
+
*
|
|
93
|
+
* @name computeRequiredStakeLamports
|
|
94
|
+
* @category Constants
|
|
95
|
+
* @since v0.11.0
|
|
96
|
+
*/
|
|
97
|
+
function computeRequiredStakeLamports(escrowLamports) {
|
|
98
|
+
if (escrowLamports < 0n) {
|
|
99
|
+
throw new RangeError("escrowLamports must be ≥ 0");
|
|
100
|
+
}
|
|
101
|
+
const coverage = (escrowLamports * exports.STAKE_COVERAGE_BPS) / 10000n;
|
|
102
|
+
return coverage > exports.MIN_AGENT_STAKE_LAMPORTS ? coverage : exports.MIN_AGENT_STAKE_LAMPORTS;
|
|
103
|
+
}
|
|
54
104
|
/**
|
|
55
105
|
* Maximum delegate duration (seconds) accepted by `add_vault_delegate`.
|
|
56
106
|
* Mirrors `VaultDelegate::MAX_DELEGATE_DURATION_SECS` on-chain
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../../src/constants/payments.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;
|
|
1
|
+
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../../src/constants/payments.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAiFH,oEAMC;AAqBD,gDAEC;AAWD,wDAEC;AAzHD,6CAA4C;AAE5C;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC;AAEF;;;;;;GAMG;AACU,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,8CAA8C,CAC/C,CAAC;AAEF;;;;;;;GAOG;AACU,QAAA,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE5D;;;;;;;GAOG;AACU,QAAA,SAAS,GAAG,KAAM,CAAC;AAEhC;;;;;;;;GAQG;AACU,QAAA,kBAAkB,GAAG,iBAAS,CAAC;AAE5C;;;;;;;;GAQG;AACU,QAAA,wBAAwB,GAAG,OAAO,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,SAAgB,4BAA4B,CAAC,cAAsB;IACjE,IAAI,cAAc,GAAG,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,cAAc,GAAG,0BAAkB,CAAC,GAAG,MAAO,CAAC;IACjE,OAAO,QAAQ,GAAG,gCAAwB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAwB,CAAC;AACnF,CAAC;AAED;;;;;;;;GAQG;AACU,QAAA,0BAA0B,GAAG,GAAG,GAAG,MAAM,CAAC;AAEvD;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,IAAe;IAChD,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAiB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAgB,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,SAA2B;IAChE,OAAO,SAAS,KAAK,IAAI,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -598,6 +598,38 @@
|
|
|
598
598
|
}
|
|
599
599
|
]
|
|
600
600
|
}
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"name": "agent_stake",
|
|
604
|
+
"docs": [
|
|
605
|
+
"v0.11 H-3: AgentStake is now a typed required account so the slash on",
|
|
606
|
+
"DepositorWins outcomes is guaranteed instead of silently skipped when",
|
|
607
|
+
"the caller forgets to pass it via remaining_accounts."
|
|
608
|
+
],
|
|
609
|
+
"writable": true,
|
|
610
|
+
"pda": {
|
|
611
|
+
"seeds": [
|
|
612
|
+
{
|
|
613
|
+
"kind": "const",
|
|
614
|
+
"value": [
|
|
615
|
+
115,
|
|
616
|
+
97,
|
|
617
|
+
112,
|
|
618
|
+
95,
|
|
619
|
+
115,
|
|
620
|
+
116,
|
|
621
|
+
97,
|
|
622
|
+
107,
|
|
623
|
+
101
|
|
624
|
+
]
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"kind": "account",
|
|
628
|
+
"path": "escrow.agent",
|
|
629
|
+
"account": "EscrowAccountV2"
|
|
630
|
+
}
|
|
631
|
+
]
|
|
632
|
+
}
|
|
601
633
|
}
|
|
602
634
|
],
|
|
603
635
|
"args": []
|
|
@@ -2504,10 +2536,16 @@
|
|
|
2504
2536
|
{
|
|
2505
2537
|
"name": "wallet",
|
|
2506
2538
|
"writable": true,
|
|
2507
|
-
"signer": true
|
|
2539
|
+
"signer": true,
|
|
2540
|
+
"relations": [
|
|
2541
|
+
"agent"
|
|
2542
|
+
]
|
|
2508
2543
|
},
|
|
2509
2544
|
{
|
|
2510
2545
|
"name": "agent",
|
|
2546
|
+
"docs": [
|
|
2547
|
+
"v0.11 M-2: typed agent account."
|
|
2548
|
+
],
|
|
2511
2549
|
"pda": {
|
|
2512
2550
|
"seeds": [
|
|
2513
2551
|
{
|
|
@@ -3647,10 +3685,16 @@
|
|
|
3647
3685
|
{
|
|
3648
3686
|
"name": "wallet",
|
|
3649
3687
|
"writable": true,
|
|
3650
|
-
"signer": true
|
|
3688
|
+
"signer": true,
|
|
3689
|
+
"relations": [
|
|
3690
|
+
"agent"
|
|
3691
|
+
]
|
|
3651
3692
|
},
|
|
3652
3693
|
{
|
|
3653
3694
|
"name": "agent",
|
|
3695
|
+
"docs": [
|
|
3696
|
+
"v0.11 M-2: typed agent account."
|
|
3697
|
+
],
|
|
3654
3698
|
"pda": {
|
|
3655
3699
|
"seeds": [
|
|
3656
3700
|
{
|
|
@@ -4671,10 +4715,16 @@
|
|
|
4671
4715
|
{
|
|
4672
4716
|
"name": "wallet",
|
|
4673
4717
|
"writable": true,
|
|
4674
|
-
"signer": true
|
|
4718
|
+
"signer": true,
|
|
4719
|
+
"relations": [
|
|
4720
|
+
"agent"
|
|
4721
|
+
]
|
|
4675
4722
|
},
|
|
4676
4723
|
{
|
|
4677
4724
|
"name": "agent",
|
|
4725
|
+
"docs": [
|
|
4726
|
+
"v0.11 M-2: typed agent account — stake cannot be opened for a non-existent agent."
|
|
4727
|
+
],
|
|
4678
4728
|
"pda": {
|
|
4679
4729
|
"seeds": [
|
|
4680
4730
|
{
|
|
@@ -6476,10 +6526,16 @@
|
|
|
6476
6526
|
"accounts": [
|
|
6477
6527
|
{
|
|
6478
6528
|
"name": "wallet",
|
|
6479
|
-
"signer": true
|
|
6529
|
+
"signer": true,
|
|
6530
|
+
"relations": [
|
|
6531
|
+
"agent"
|
|
6532
|
+
]
|
|
6480
6533
|
},
|
|
6481
6534
|
{
|
|
6482
6535
|
"name": "agent",
|
|
6536
|
+
"docs": [
|
|
6537
|
+
"v0.11 M-2: typed agent account."
|
|
6538
|
+
],
|
|
6483
6539
|
"pda": {
|
|
6484
6540
|
"seeds": [
|
|
6485
6541
|
{
|
|
@@ -9256,6 +9312,19 @@
|
|
|
9256
9312
|
198
|
|
9257
9313
|
]
|
|
9258
9314
|
},
|
|
9315
|
+
{
|
|
9316
|
+
"name": "StakeClosedEvent",
|
|
9317
|
+
"discriminator": [
|
|
9318
|
+
212,
|
|
9319
|
+
204,
|
|
9320
|
+
207,
|
|
9321
|
+
181,
|
|
9322
|
+
185,
|
|
9323
|
+
249,
|
|
9324
|
+
134,
|
|
9325
|
+
59
|
|
9326
|
+
]
|
|
9327
|
+
},
|
|
9259
9328
|
{
|
|
9260
9329
|
"name": "StakeDepositedEvent",
|
|
9261
9330
|
"discriminator": [
|
|
@@ -9412,6 +9481,19 @@
|
|
|
9412
9481
|
57
|
|
9413
9482
|
]
|
|
9414
9483
|
},
|
|
9484
|
+
{
|
|
9485
|
+
"name": "UnstakeCancelledEvent",
|
|
9486
|
+
"discriminator": [
|
|
9487
|
+
57,
|
|
9488
|
+
228,
|
|
9489
|
+
7,
|
|
9490
|
+
42,
|
|
9491
|
+
227,
|
|
9492
|
+
64,
|
|
9493
|
+
93,
|
|
9494
|
+
51
|
|
9495
|
+
]
|
|
9496
|
+
},
|
|
9415
9497
|
{
|
|
9416
9498
|
"name": "UnstakeCompletedEvent",
|
|
9417
9499
|
"discriminator": [
|
|
@@ -10211,6 +10293,21 @@
|
|
|
10211
10293
|
"code": 6143,
|
|
10212
10294
|
"name": "DuplicateServiceHash",
|
|
10213
10295
|
"msg": "dup service hash"
|
|
10296
|
+
},
|
|
10297
|
+
{
|
|
10298
|
+
"code": 6144,
|
|
10299
|
+
"name": "StakeBelowCoverage",
|
|
10300
|
+
"msg": "stake under coverage"
|
|
10301
|
+
},
|
|
10302
|
+
{
|
|
10303
|
+
"code": 6145,
|
|
10304
|
+
"name": "StakeNotClosable",
|
|
10305
|
+
"msg": "stake not closable"
|
|
10306
|
+
},
|
|
10307
|
+
{
|
|
10308
|
+
"code": 6146,
|
|
10309
|
+
"name": "AgentStakeAccountMissing",
|
|
10310
|
+
"msg": "agent stake account missing"
|
|
10214
10311
|
}
|
|
10215
10312
|
],
|
|
10216
10313
|
"types": [
|
|
@@ -13436,6 +13533,33 @@
|
|
|
13436
13533
|
]
|
|
13437
13534
|
}
|
|
13438
13535
|
},
|
|
13536
|
+
{
|
|
13537
|
+
"name": "StakeClosedEvent",
|
|
13538
|
+
"docs": [
|
|
13539
|
+
"v0.11 L-3: emitted when an agent's stake account is closed and rent reclaimed."
|
|
13540
|
+
],
|
|
13541
|
+
"type": {
|
|
13542
|
+
"kind": "struct",
|
|
13543
|
+
"fields": [
|
|
13544
|
+
{
|
|
13545
|
+
"name": "agent",
|
|
13546
|
+
"type": "pubkey"
|
|
13547
|
+
},
|
|
13548
|
+
{
|
|
13549
|
+
"name": "wallet",
|
|
13550
|
+
"type": "pubkey"
|
|
13551
|
+
},
|
|
13552
|
+
{
|
|
13553
|
+
"name": "returned_lamports",
|
|
13554
|
+
"type": "u64"
|
|
13555
|
+
},
|
|
13556
|
+
{
|
|
13557
|
+
"name": "timestamp",
|
|
13558
|
+
"type": "i64"
|
|
13559
|
+
}
|
|
13560
|
+
]
|
|
13561
|
+
}
|
|
13562
|
+
},
|
|
13439
13563
|
{
|
|
13440
13564
|
"name": "StakeDepositedEvent",
|
|
13441
13565
|
"docs": [
|
|
@@ -14196,6 +14320,34 @@
|
|
|
14196
14320
|
]
|
|
14197
14321
|
}
|
|
14198
14322
|
},
|
|
14323
|
+
{
|
|
14324
|
+
"name": "UnstakeCancelledEvent",
|
|
14325
|
+
"docs": [
|
|
14326
|
+
"v0.11 L-2: emitted when a `deposit_stake` clears a previously requested",
|
|
14327
|
+
"unstake (top-up = implicit cancel of the pending withdrawal)."
|
|
14328
|
+
],
|
|
14329
|
+
"type": {
|
|
14330
|
+
"kind": "struct",
|
|
14331
|
+
"fields": [
|
|
14332
|
+
{
|
|
14333
|
+
"name": "agent",
|
|
14334
|
+
"type": "pubkey"
|
|
14335
|
+
},
|
|
14336
|
+
{
|
|
14337
|
+
"name": "wallet",
|
|
14338
|
+
"type": "pubkey"
|
|
14339
|
+
},
|
|
14340
|
+
{
|
|
14341
|
+
"name": "cancelled_amount",
|
|
14342
|
+
"type": "u64"
|
|
14343
|
+
},
|
|
14344
|
+
{
|
|
14345
|
+
"name": "timestamp",
|
|
14346
|
+
"type": "i64"
|
|
14347
|
+
}
|
|
14348
|
+
]
|
|
14349
|
+
}
|
|
14350
|
+
},
|
|
14199
14351
|
{
|
|
14200
14352
|
"name": "UnstakeCompletedEvent",
|
|
14201
14353
|
"docs": [
|
package/dist/cjs/index.js
CHANGED
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
48
|
exports.deriveSubscription = exports.deriveStake = exports.deriveDispute = exports.derivePendingSettlement = exports.deriveEscrowV2 = exports.deriveEscrow = exports.deriveTool = exports.deriveCheckpoint = exports.deriveVaultDelegate = exports.deriveEpochPage = exports.deriveSession = exports.deriveVault = exports.deriveToolCategoryIndex = exports.deriveProtocolIndex = exports.deriveCapabilityIndex = exports.deriveFeedback = exports.deriveAgentStats = exports.deriveAgent = exports.deriveGlobalRegistry = exports.IDL_METADATA = exports.IDL_PROGRAM_ADDRESS = exports.SAP_IDL = exports.SapNetwork = exports.HTTP_METHOD_VALUES = exports.TOOL_CATEGORY_VALUES = exports.VAULT_PROTOCOL_VERSION = exports.AGENT_VERSION = exports.LIMITS = exports.SEEDS = exports.LOCALNET_SAP_PROGRAM_ID = exports.DEVNET_SAP_PROGRAM_ID = exports.MAINNET_SAP_PROGRAM_ID = exports.SAP_PROGRAM_ID = exports.SAP_PROGRAM_ADDRESS = exports.ResolutionLayer = exports.DisputeType = exports.BillingInterval = exports.DisputeOutcome = exports.SettlementSecurity = exports.CompressionType = exports.SchemaType = exports.DelegatePermission = exports.ToolCategory = exports.ToolHttpMethod = exports.SettlementMode = exports.PluginType = exports.TokenType = exports.KeypairWallet = exports.SapConnection = exports.SapClient = void 0;
|
|
49
49
|
exports.DEFAULT_BATCH_SETTLE_COMPUTE_UNITS = exports.DEFAULT_SETTLE_COMPUTE_UNITS = exports.DEFAULT_SETTLE_PRIORITY_FEE = exports.FAST_BATCH_SETTLE_OPTIONS = exports.FAST_SETTLE_OPTIONS = exports.buildRpcOptions = exports.buildPriorityFeeIxs = exports.validateOrThrow = exports.createCallArgsSchema = exports.createRegisterAgentSchema = exports.createPreparePaymentSchema = exports.createAgentManifestSchema = exports.createToolManifestEntrySchema = exports.createHealthCheckSchema = exports.createEndpointDescriptorSchema = exports.createEnvSchema = exports.extractAnchorErrorCode = exports.classifyAnchorError = exports.findATA = exports.createDualConnection = exports.getFallbackRpcUrl = exports.getRpcUrl = exports.validateAgentEndpoints = exports.validateHealthCheck = exports.validateEndpointDescriptor = exports.validateEndpoint = exports.isKnownNetwork = exports.getNetworkClusterName = exports.getNetworkGenesisHash = exports.isNetworkEquivalent = exports.normalizeNetworkId = exports.isAcceptedPaymentToken = exports.isAcceptedUsdcMint = exports.MAX_DELEGATE_DURATION_SECS = exports.MIN_AGENT_STAKE_LAMPORTS = exports.USDC_MINT_DEVNET = exports.USDC_MINT_MAINNET = exports.serializeValue = exports.serializeAccount = exports.computeBatchRoot = exports.assert = exports.hashToArray = exports.sha256 = exports.deriveSettlementReceipt = exports.deriveReceiptBatch = exports.deriveLedgerPage = exports.deriveLedger = exports.deriveAttestation = exports.deriveIndexPage = exports.deriveShard = void 0;
|
|
50
|
-
exports.
|
|
51
|
-
exports.MetaplexBridge = void 0;
|
|
50
|
+
exports.SessionManager = exports.X402Registry = exports.DiscoveryRegistry = exports.TransactionParser = exports.extractAccountKeys = exports.filterSapInnerInstructions = exports.decodeInnerInstructions = exports.parseSapTransactionBatch = exports.parseSapTransactionComplete = exports.containsSapInstruction = exports.parseSapInstructionNamesFromList = exports.parseSapInstructionsFromList = exports.parseSapInstructionNamesFromTransaction = exports.parseSapInstructionsFromTransaction = exports.SAP_TABLE_MAP = exports.SapSyncEngine = exports.SapPostgres = exports.SAP_PROTOCOLS = exports.SAPPlugin = exports.createSAPPlugin = exports.BaseModule = exports.LedgerModule = exports.AttestationModule = exports.SubscriptionModule = exports.StakingModule = exports.ReceiptModule = exports.EscrowV2Module = exports.EscrowModule = exports.VaultModule = exports.ToolsModule = exports.IndexingModule = exports.FeedbackModule = exports.AgentModule = exports.GeyserEventStream = exports.SAP_EVENT_NAMES = exports.EventParser = exports.SapPermissionError = exports.SapTimeoutError = exports.SapAccountNotFoundError = exports.SapRpcError = exports.SapValidationError = exports.SapError = exports.getX402DirectPayments = exports.parseX402Headers = exports.SapMerchantValidator = exports.MissingEscrowAtaError = exports.toAccountMetas = exports.attachSplAccounts = exports.validateEscrowState = exports.computeBatchSettleCu = void 0;
|
|
51
|
+
exports.MetaplexBridge = exports.AgentBuilder = void 0;
|
|
52
52
|
// ── Core ─────────────────────────────────────────────
|
|
53
53
|
var core_1 = require("./core");
|
|
54
54
|
Object.defineProperty(exports, "SapClient", { enumerable: true, get: function () { return core_1.SapClient; } });
|
|
@@ -173,6 +173,7 @@ Object.defineProperty(exports, "FAST_BATCH_SETTLE_OPTIONS", { enumerable: true,
|
|
|
173
173
|
Object.defineProperty(exports, "DEFAULT_SETTLE_PRIORITY_FEE", { enumerable: true, get: function () { return utils_7.DEFAULT_SETTLE_PRIORITY_FEE; } });
|
|
174
174
|
Object.defineProperty(exports, "DEFAULT_SETTLE_COMPUTE_UNITS", { enumerable: true, get: function () { return utils_7.DEFAULT_SETTLE_COMPUTE_UNITS; } });
|
|
175
175
|
Object.defineProperty(exports, "DEFAULT_BATCH_SETTLE_COMPUTE_UNITS", { enumerable: true, get: function () { return utils_7.DEFAULT_BATCH_SETTLE_COMPUTE_UNITS; } });
|
|
176
|
+
Object.defineProperty(exports, "computeBatchSettleCu", { enumerable: true, get: function () { return utils_7.computeBatchSettleCu; } });
|
|
176
177
|
// v0.6.4 — Escrow validation, merchant middleware, x402 direct
|
|
177
178
|
var utils_8 = require("./utils");
|
|
178
179
|
Object.defineProperty(exports, "validateEscrowState", { enumerable: true, get: function () { return utils_8.validateEscrowState; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;;;;;;AAEH,wDAAwD;AACxD,+BAAiE;AAAxD,iGAAA,SAAS,OAAA;AAAE,qGAAA,aAAa,OAAA;AAAE,qGAAA,aAAa,OAAA;AA2EhD,iCAciB;AAbf,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,uGAAA,cAAc,OAAA;AACd,qGAAA,YAAY,OAAA;AACZ,2GAAA,kBAAkB,OAAA;AAClB,mGAAA,UAAU,OAAA;AACV,wGAAA,eAAe,OAAA;AACf,2GAAA,kBAAkB,OAAA;AAClB,uGAAA,cAAc,OAAA;AACd,wGAAA,eAAe,OAAA;AACf,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AAGjB,wDAAwD;AACxD,yCAaqB;AAZnB,gHAAA,mBAAmB,OAAA;AACnB,2GAAA,cAAc,OAAA;AACd,mHAAA,sBAAsB,OAAA;AACtB,kHAAA,qBAAqB,OAAA;AACrB,oHAAA,uBAAuB,OAAA;AACvB,kGAAA,KAAK,OAAA;AACL,mGAAA,MAAM,OAAA;AACN,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,uGAAA,UAAU,OAAA;AAIZ,wDAAwD;AACxD,qCAAyE;AAAhE,gGAAA,OAAO,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAAE,qGAAA,YAAY,OAAA;AAGnD,wDAAwD;AACxD,6BA2Be;AA1Bb,2GAAA,oBAAoB,OAAA;AACpB,kGAAA,WAAW,OAAA;AACX,uGAAA,gBAAgB,OAAA;AAChB,qGAAA,cAAc,OAAA;AACd,4GAAA,qBAAqB,OAAA;AACrB,0GAAA,mBAAmB,OAAA;AACnB,8GAAA,uBAAuB,OAAA;AACvB,kGAAA,WAAW,OAAA;AACX,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,0GAAA,mBAAmB,OAAA;AACnB,uGAAA,gBAAgB,OAAA;AAChB,iGAAA,UAAU,OAAA;AACV,mGAAA,YAAY,OAAA;AACZ,qGAAA,cAAc,OAAA;AACd,8GAAA,uBAAuB,OAAA;AACvB,oGAAA,aAAa,OAAA;AACb,kGAAA,WAAW,OAAA;AACX,yGAAA,kBAAkB,OAAA;AAClB,kGAAA,WAAW,OAAA;AACX,sGAAA,eAAe,OAAA;AACf,wGAAA,iBAAiB,OAAA;AACjB,mGAAA,YAAY,OAAA;AACZ,uGAAA,gBAAgB,OAAA;AAChB,yGAAA,kBAAkB,OAAA;AAClB,8GAAA,uBAAuB,OAAA;AAGzB,wDAAwD;AACxD,iCAAwE;AAA/D,+FAAA,MAAM,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AACtD,iCAA2D;AAAlD,yGAAA,gBAAgB,OAAA;AAAE,uGAAA,cAAc,OAAA;AAEzC,oCAAoC;AACpC,yCAOqB;AANnB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,qHAAA,wBAAwB,OAAA;AACxB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,kBAAkB,OAAA;AAClB,mHAAA,sBAAsB,OAAA;AAGxB,8BAA8B;AAC9B,iCAMiB;AALf,2GAAA,kBAAkB,OAAA;AAClB,4GAAA,mBAAmB,OAAA;AACnB,8GAAA,qBAAqB,OAAA;AACrB,8GAAA,qBAAqB,OAAA;AACrB,uGAAA,cAAc,OAAA;AAGhB,+BAA+B;AAC/B,iCAKiB;AAJf,yGAAA,gBAAgB,OAAA;AAChB,mHAAA,0BAA0B,OAAA;AAC1B,4GAAA,mBAAmB,OAAA;AACnB,+GAAA,sBAAsB,OAAA;AAIxB,+CAA+C;AAC/C,iCAOiB;AANf,kGAAA,SAAS,OAAA;AACT,0GAAA,iBAAiB,OAAA;AACjB,6GAAA,oBAAoB,OAAA;AACpB,gGAAA,OAAO,OAAA;AACP,4GAAA,mBAAmB,OAAA;AACnB,+GAAA,sBAAsB,OAAA;AAIxB,+BAA+B;AAC/B,iCAUiB;AATf,wGAAA,eAAe,OAAA;AACf,uHAAA,8BAA8B,OAAA;AAC9B,gHAAA,uBAAuB,OAAA;AACvB,sHAAA,6BAA6B,OAAA;AAC7B,kHAAA,yBAAyB,OAAA;AACzB,mHAAA,0BAA0B,OAAA;AAC1B,kHAAA,yBAAyB,OAAA;AACzB,6GAAA,oBAAoB,OAAA;AACpB,wGAAA,eAAe,OAAA;AAGjB,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;;;;;;AAEH,wDAAwD;AACxD,+BAAiE;AAAxD,iGAAA,SAAS,OAAA;AAAE,qGAAA,aAAa,OAAA;AAAE,qGAAA,aAAa,OAAA;AA2EhD,iCAciB;AAbf,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,uGAAA,cAAc,OAAA;AACd,qGAAA,YAAY,OAAA;AACZ,2GAAA,kBAAkB,OAAA;AAClB,mGAAA,UAAU,OAAA;AACV,wGAAA,eAAe,OAAA;AACf,2GAAA,kBAAkB,OAAA;AAClB,uGAAA,cAAc,OAAA;AACd,wGAAA,eAAe,OAAA;AACf,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AAGjB,wDAAwD;AACxD,yCAaqB;AAZnB,gHAAA,mBAAmB,OAAA;AACnB,2GAAA,cAAc,OAAA;AACd,mHAAA,sBAAsB,OAAA;AACtB,kHAAA,qBAAqB,OAAA;AACrB,oHAAA,uBAAuB,OAAA;AACvB,kGAAA,KAAK,OAAA;AACL,mGAAA,MAAM,OAAA;AACN,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,uGAAA,UAAU,OAAA;AAIZ,wDAAwD;AACxD,qCAAyE;AAAhE,gGAAA,OAAO,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAAE,qGAAA,YAAY,OAAA;AAGnD,wDAAwD;AACxD,6BA2Be;AA1Bb,2GAAA,oBAAoB,OAAA;AACpB,kGAAA,WAAW,OAAA;AACX,uGAAA,gBAAgB,OAAA;AAChB,qGAAA,cAAc,OAAA;AACd,4GAAA,qBAAqB,OAAA;AACrB,0GAAA,mBAAmB,OAAA;AACnB,8GAAA,uBAAuB,OAAA;AACvB,kGAAA,WAAW,OAAA;AACX,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,0GAAA,mBAAmB,OAAA;AACnB,uGAAA,gBAAgB,OAAA;AAChB,iGAAA,UAAU,OAAA;AACV,mGAAA,YAAY,OAAA;AACZ,qGAAA,cAAc,OAAA;AACd,8GAAA,uBAAuB,OAAA;AACvB,oGAAA,aAAa,OAAA;AACb,kGAAA,WAAW,OAAA;AACX,yGAAA,kBAAkB,OAAA;AAClB,kGAAA,WAAW,OAAA;AACX,sGAAA,eAAe,OAAA;AACf,wGAAA,iBAAiB,OAAA;AACjB,mGAAA,YAAY,OAAA;AACZ,uGAAA,gBAAgB,OAAA;AAChB,yGAAA,kBAAkB,OAAA;AAClB,8GAAA,uBAAuB,OAAA;AAGzB,wDAAwD;AACxD,iCAAwE;AAA/D,+FAAA,MAAM,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AACtD,iCAA2D;AAAlD,yGAAA,gBAAgB,OAAA;AAAE,uGAAA,cAAc,OAAA;AAEzC,oCAAoC;AACpC,yCAOqB;AANnB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,qHAAA,wBAAwB,OAAA;AACxB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,kBAAkB,OAAA;AAClB,mHAAA,sBAAsB,OAAA;AAGxB,8BAA8B;AAC9B,iCAMiB;AALf,2GAAA,kBAAkB,OAAA;AAClB,4GAAA,mBAAmB,OAAA;AACnB,8GAAA,qBAAqB,OAAA;AACrB,8GAAA,qBAAqB,OAAA;AACrB,uGAAA,cAAc,OAAA;AAGhB,+BAA+B;AAC/B,iCAKiB;AAJf,yGAAA,gBAAgB,OAAA;AAChB,mHAAA,0BAA0B,OAAA;AAC1B,4GAAA,mBAAmB,OAAA;AACnB,+GAAA,sBAAsB,OAAA;AAIxB,+CAA+C;AAC/C,iCAOiB;AANf,kGAAA,SAAS,OAAA;AACT,0GAAA,iBAAiB,OAAA;AACjB,6GAAA,oBAAoB,OAAA;AACpB,gGAAA,OAAO,OAAA;AACP,4GAAA,mBAAmB,OAAA;AACnB,+GAAA,sBAAsB,OAAA;AAIxB,+BAA+B;AAC/B,iCAUiB;AATf,wGAAA,eAAe,OAAA;AACf,uHAAA,8BAA8B,OAAA;AAC9B,gHAAA,uBAAuB,OAAA;AACvB,sHAAA,6BAA6B,OAAA;AAC7B,kHAAA,yBAAyB,OAAA;AACzB,mHAAA,0BAA0B,OAAA;AAC1B,kHAAA,yBAAyB,OAAA;AACzB,6GAAA,oBAAoB,OAAA;AACpB,wGAAA,eAAe,OAAA;AAGjB,yCAAyC;AACzC,iCASiB;AARf,4GAAA,mBAAmB,OAAA;AACnB,wGAAA,eAAe,OAAA;AACf,4GAAA,mBAAmB,OAAA;AACnB,kHAAA,yBAAyB,OAAA;AACzB,oHAAA,2BAA2B,OAAA;AAC3B,qHAAA,4BAA4B,OAAA;AAC5B,2HAAA,kCAAkC,OAAA;AAClC,6GAAA,oBAAoB,OAAA;AAMtB,+DAA+D;AAC/D,iCAQiB;AAPf,4GAAA,mBAAmB,OAAA;AACnB,0GAAA,iBAAiB,OAAA;AACjB,uGAAA,cAAc,OAAA;AACd,8GAAA,qBAAqB,OAAA;AACrB,6GAAA,oBAAoB,OAAA;AACpB,yGAAA,gBAAgB,OAAA;AAChB,8GAAA,qBAAqB,OAAA;AAYvB,wDAAwD;AACxD,mCAOkB;AANhB,kGAAA,QAAQ,OAAA;AACR,4GAAA,kBAAkB,OAAA;AAClB,qGAAA,WAAW,OAAA;AACX,iHAAA,uBAAuB,OAAA;AACvB,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAGpB,wDAAwD;AACxD,mCAAwD;AAA/C,qGAAA,WAAW,OAAA;AAAE,yGAAA,eAAe,OAAA;AAarC,wDAAwD;AACxD,0CAAoD;AAA3C,2GAAA,iBAAiB,OAAA;AAG1B,wDAAwD;AACxD,yCAcyB;AAbvB,oGAAA,WAAW,OAAA;AACX,uGAAA,cAAc,OAAA;AACd,uGAAA,cAAc,OAAA;AACd,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,sGAAA,aAAa,OAAA;AACb,sGAAA,aAAa,OAAA;AACb,2GAAA,kBAAkB,OAAA;AAClB,0GAAA,iBAAiB,OAAA;AACjB,qGAAA,YAAY,OAAA;AACZ,mGAAA,UAAU,OAAA;AAIZ,wDAAwD;AACxD,wCAA4D;AAAnD,wGAAA,eAAe,OAAA;AAAE,kGAAA,SAAS,OAAA;AAYnC,gDAAmD;AAA1C,0GAAA,aAAa,OAAA;AAEtB,4DAA4D;AAC5D,uCAAuE;AAA9D,uGAAA,WAAW,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,yGAAA,aAAa,OAAA;AAelD,0DAA0D;AAC1D,mCAYkB;AAXhB,6HAAA,mCAAmC,OAAA;AACnC,iIAAA,uCAAuC,OAAA;AACvC,sHAAA,4BAA4B,OAAA;AAC5B,0HAAA,gCAAgC,OAAA;AAChC,gHAAA,sBAAsB,OAAA;AACtB,qHAAA,2BAA2B,OAAA;AAC3B,kHAAA,wBAAwB,OAAA;AACxB,iHAAA,uBAAuB,OAAA;AACvB,oHAAA,0BAA0B,OAAA;AAC1B,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AAYnB,yDAAyD;AACzD,4CAM4B;AAL1B,0GAAA,iBAAiB,OAAA;AACjB,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA"}
|
|
@@ -52,6 +52,52 @@ class EscrowV2Module extends base_1.BaseModule {
|
|
|
52
52
|
const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
|
|
53
53
|
const [escrowPda] = this.deriveEscrow(agentPda, undefined, args.escrowNonce);
|
|
54
54
|
const [stakePda] = (0, pda_1.deriveStake)(agentPda);
|
|
55
|
+
// v0.11 H-1 preflight: surface an actionable error if the agent's stake
|
|
56
|
+
// does not cover the slashable share of the new escrow. Saves a failed
|
|
57
|
+
// tx fee and gives the caller a clear top-up amount.
|
|
58
|
+
try {
|
|
59
|
+
const stakeAccount = await this.fetchAccountNullable("agentStake", stakePda);
|
|
60
|
+
if (stakeAccount) {
|
|
61
|
+
const escrowLamports = BigInt(this.bn(args.initialDeposit).toString());
|
|
62
|
+
const required = (0, payments_1.computeRequiredStakeLamports)(escrowLamports);
|
|
63
|
+
const have = BigInt(stakeAccount.stakedAmount.toString());
|
|
64
|
+
if (have < required) {
|
|
65
|
+
throw new Error(`createEscrowV2: agent stake ${have} lamports < required ${required} ` +
|
|
66
|
+
`lamports for escrow of ${escrowLamports} lamports. Top up via stakingModule.deposit.`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// If no stake account exists at all, on-chain will reject with
|
|
70
|
+
// AccountNotInitialized — we let that bubble up unchanged.
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
// Preflight is advisory; rethrow only the explicit coverage error.
|
|
74
|
+
if (err instanceof Error && err.message.startsWith("createEscrowV2: agent stake")) {
|
|
75
|
+
throw err;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// v0.11 H-1 preflight: surface an actionable error if the agent's stake
|
|
79
|
+
// does not cover the slashable share of the new escrow. Saves a failed
|
|
80
|
+
// tx fee and gives the caller a clear top-up amount.
|
|
81
|
+
try {
|
|
82
|
+
const stakeAccount = await this.fetchAccountNullable("agentStake", stakePda);
|
|
83
|
+
if (stakeAccount) {
|
|
84
|
+
const escrowLamports = BigInt(this.bn(args.initialDeposit).toString());
|
|
85
|
+
const required = (0, payments_1.computeRequiredStakeLamports)(escrowLamports);
|
|
86
|
+
const have = BigInt(stakeAccount.stakedAmount.toString());
|
|
87
|
+
if (have < required) {
|
|
88
|
+
throw new Error(`createEscrowV2: agent stake ${have} lamports < required ${required} ` +
|
|
89
|
+
`lamports for escrow of ${escrowLamports} lamports. Top up via stakingModule.deposit.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// If no stake account exists at all, on-chain will reject with
|
|
93
|
+
// AccountNotInitialized — we let that bubble up unchanged.
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
// Preflight is advisory; rethrow only the explicit coverage error.
|
|
97
|
+
if (err instanceof Error && err.message.startsWith("createEscrowV2: agent stake")) {
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
55
101
|
return this.methods
|
|
56
102
|
.createEscrowV2(this.bn(args.escrowNonce), this.bn(args.pricePerCall), this.bn(args.maxCalls), this.bn(args.initialDeposit), args.expiresAt, args.volumeCurve, args.tokenMint, args.tokenDecimals, args.settlementSecurity, this.bn(args.disputeWindowSlots), args.coSigner, args.arbiter)
|
|
57
103
|
.accounts({
|
|
@@ -77,16 +123,26 @@ class EscrowV2Module extends base_1.BaseModule {
|
|
|
77
123
|
.remainingAccounts(splAccounts)
|
|
78
124
|
.rpc();
|
|
79
125
|
}
|
|
80
|
-
async settle(depositorWallet, nonce, callsToSettle, serviceHash, splAccounts = [], opts) {
|
|
126
|
+
async settle(depositorWallet, nonce, callsToSettle, serviceHash, splAccounts = [], opts, coSigner) {
|
|
81
127
|
const [agentPda] = (0, pda_1.deriveAgent)(this.walletPubkey);
|
|
82
128
|
const [escrowPda] = this.deriveEscrow(agentPda, depositorWallet, nonce);
|
|
83
129
|
const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
|
|
84
130
|
const [receiptPda] = (0, pda_1.deriveSettlementReceipt)(escrowPda, serviceHash);
|
|
85
131
|
const preIxs = (0, priority_fee_1.buildPriorityFeeIxs)(opts);
|
|
86
132
|
const rpcOpts = (0, priority_fee_1.buildRpcOptions)(opts);
|
|
133
|
+
// CoSigned escrows require the co-signer to appear in
|
|
134
|
+
// remaining_accounts with `is_signer = true` AND to actually sign
|
|
135
|
+
// the transaction (Anchor on-chain checks `acc.is_signer`).
|
|
136
|
+
// We dedupe so callers can also pass it manually via splAccounts.
|
|
137
|
+
const remaining = coSigner
|
|
138
|
+
? [
|
|
139
|
+
...splAccounts.filter((a) => !a.pubkey.equals(coSigner.publicKey)),
|
|
140
|
+
{ pubkey: coSigner.publicKey, isSigner: true, isWritable: false },
|
|
141
|
+
]
|
|
142
|
+
: splAccounts;
|
|
87
143
|
let builder = this.methods
|
|
88
144
|
.settleCallsV2(this.bn(nonce), this.bn(callsToSettle), serviceHash)
|
|
89
|
-
.
|
|
145
|
+
.accountsPartial({
|
|
90
146
|
wallet: this.walletPubkey,
|
|
91
147
|
agent: agentPda,
|
|
92
148
|
agentStats: statsPda,
|
|
@@ -94,7 +150,10 @@ class EscrowV2Module extends base_1.BaseModule {
|
|
|
94
150
|
settlementReceipt: receiptPda,
|
|
95
151
|
systemProgram: web3_js_1.SystemProgram.programId,
|
|
96
152
|
})
|
|
97
|
-
.remainingAccounts(
|
|
153
|
+
.remainingAccounts(remaining);
|
|
154
|
+
if (coSigner) {
|
|
155
|
+
builder = builder.signers([coSigner]);
|
|
156
|
+
}
|
|
98
157
|
if (preIxs.length > 0) {
|
|
99
158
|
builder = builder.preInstructions(preIxs);
|
|
100
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escrow-v2.js","sourceRoot":"","sources":["../../../src/modules/escrow-v2.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"escrow-v2.js","sourceRoot":"","sources":["../../../src/modules/escrow-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -228,11 +228,21 @@ class EscrowModule extends base_1.BaseModule {
|
|
|
228
228
|
: (0, hash_1.computeBatchRoot)(settlements.map((s) => s.serviceHash));
|
|
229
229
|
const rootArr = (0, hash_1.hashToArray)(rootBytes);
|
|
230
230
|
const [receiptPda] = (0, pda_1.deriveSettlementReceipt)(escrowPda, rootBytes);
|
|
231
|
-
|
|
232
|
-
|
|
231
|
+
// Auto-size CU to the batch length so callers don't have to think
|
|
232
|
+
// about it. The default Solana cap (200k) overflows past ~8
|
|
233
|
+
// settlements; we compute a tight ceiling and let the caller
|
|
234
|
+
// override via `opts.computeUnits` if they want.
|
|
235
|
+
// Setting the CU limit is FREE — it doesn't add lamports, only
|
|
236
|
+
// caps the maximum the runtime is allowed to charge.
|
|
237
|
+
const effectiveOpts = {
|
|
238
|
+
...opts,
|
|
239
|
+
computeUnits: opts?.computeUnits ?? (0, priority_fee_1.computeBatchSettleCu)(settlements.length),
|
|
240
|
+
};
|
|
241
|
+
const preIxs = (0, priority_fee_1.buildPriorityFeeIxs)(effectiveOpts);
|
|
242
|
+
const rpcOpts = (0, priority_fee_1.buildRpcOptions)(effectiveOpts);
|
|
233
243
|
let builder = this.methods
|
|
234
244
|
.settleBatch(settlements, rootArr)
|
|
235
|
-
.
|
|
245
|
+
.accountsPartial({
|
|
236
246
|
wallet: this.walletPubkey,
|
|
237
247
|
agent: agentPda,
|
|
238
248
|
agentStats: statsPda,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../src/modules/escrow.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,6CAKyB;AAEzB,iCAAoC;AACpC,gCAMgB;AAMhB,
|
|
1
|
+
{"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../src/modules/escrow.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,6 +117,9 @@ class ReceiptModule extends base_1.BaseModule {
|
|
|
117
117
|
const [pendingPda] = (0, pda_1.derivePendingSettlement)(escrowPda, this.toNum(settlementIndex));
|
|
118
118
|
const [disputePda] = (0, pda_1.deriveDispute)(pendingPda);
|
|
119
119
|
const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
|
|
120
|
+
// v0.11 H-3: AgentStake is now a typed required account so the slash on
|
|
121
|
+
// DepositorWins is guaranteed instead of silently skipped.
|
|
122
|
+
const [stakePda] = (0, pda_1.deriveStake)(agentPda);
|
|
120
123
|
return this.methods
|
|
121
124
|
.autoResolveDispute()
|
|
122
125
|
.accounts({
|
|
@@ -127,6 +130,7 @@ class ReceiptModule extends base_1.BaseModule {
|
|
|
127
130
|
pendingSettlement: pendingPda,
|
|
128
131
|
dispute: disputePda,
|
|
129
132
|
agentStats: statsPda,
|
|
133
|
+
agentStake: stakePda,
|
|
130
134
|
})
|
|
131
135
|
.rpc();
|
|
132
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../src/modules/receipt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,6CAIyB;AACzB,8CAAuC;AACvC,iCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../src/modules/receipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ exports.StakingModule = void 0;
|
|
|
13
13
|
const web3_js_1 = require("@solana/web3.js");
|
|
14
14
|
const base_1 = require("./base");
|
|
15
15
|
const pda_1 = require("../pda");
|
|
16
|
+
const payments_1 = require("../constants/payments");
|
|
16
17
|
/**
|
|
17
18
|
* @name StakingModule
|
|
18
19
|
* @description Manages agent stake accounts — init, deposit, unstake, and fetch.
|
|
@@ -89,6 +90,35 @@ class StakingModule extends base_1.BaseModule {
|
|
|
89
90
|
async fetchByPda(stakePda) {
|
|
90
91
|
return this.fetchAccount("agentStake", stakePda);
|
|
91
92
|
}
|
|
93
|
+
// ── v0.11 helpers ────────────────────────────────────────────
|
|
94
|
+
/**
|
|
95
|
+
* Compute the maximum amount that can be requested via `requestUnstake`
|
|
96
|
+
* without breaching the on-chain {@link MIN_AGENT_STAKE_LAMPORTS} floor.
|
|
97
|
+
*
|
|
98
|
+
* Returns 0 if the agent is already at (or below) the floor.
|
|
99
|
+
*
|
|
100
|
+
* @since v0.11.0
|
|
101
|
+
*/
|
|
102
|
+
getMaxUnstakeLamports(stake) {
|
|
103
|
+
const staked = BigInt(stake.stakedAmount.toString());
|
|
104
|
+
if (staked <= payments_1.MIN_AGENT_STAKE_LAMPORTS)
|
|
105
|
+
return 0n;
|
|
106
|
+
return staked - payments_1.MIN_AGENT_STAKE_LAMPORTS;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Returns the lamport delta the agent must `deposit` to satisfy the
|
|
110
|
+
* per-escrow stake-coverage requirement for `escrowLamports`. 0 if already
|
|
111
|
+
* sufficient. Useful for a UI "top up to open this escrow" button.
|
|
112
|
+
*
|
|
113
|
+
* Mirrors the on-chain check in `create_escrow_v2` (v0.11 H-1).
|
|
114
|
+
*
|
|
115
|
+
* @since v0.11.0
|
|
116
|
+
*/
|
|
117
|
+
getRequiredTopUp(stake, escrowLamports) {
|
|
118
|
+
const required = (0, payments_1.computeRequiredStakeLamports)(escrowLamports);
|
|
119
|
+
const have = BigInt(stake.stakedAmount.toString());
|
|
120
|
+
return have >= required ? 0n : required - have;
|
|
121
|
+
}
|
|
92
122
|
}
|
|
93
123
|
exports.StakingModule = StakingModule;
|
|
94
124
|
//# sourceMappingURL=staking.js.map
|