@antseed/node 0.2.117 → 0.2.118

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 (97) hide show
  1. package/README.md +30 -0
  2. package/dist/index.d.ts +14 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +13 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/node.d.ts +2 -0
  7. package/dist/node.d.ts.map +1 -1
  8. package/dist/node.js +3 -0
  9. package/dist/node.js.map +1 -1
  10. package/dist/payments/chain-config.d.ts +53 -0
  11. package/dist/payments/chain-config.d.ts.map +1 -1
  12. package/dist/payments/chain-config.js +43 -23
  13. package/dist/payments/chain-config.js.map +1 -1
  14. package/dist/payments/contract-stack.d.ts +53 -0
  15. package/dist/payments/contract-stack.d.ts.map +1 -0
  16. package/dist/payments/contract-stack.js +97 -0
  17. package/dist/payments/contract-stack.js.map +1 -0
  18. package/dist/payments/evm/ants-token-client.d.ts +7 -0
  19. package/dist/payments/evm/ants-token-client.d.ts.map +1 -1
  20. package/dist/payments/evm/ants-token-client.js +37 -1
  21. package/dist/payments/evm/ants-token-client.js.map +1 -1
  22. package/dist/payments/evm/emissions-client.d.ts +3 -0
  23. package/dist/payments/evm/emissions-client.d.ts.map +1 -1
  24. package/dist/payments/evm/emissions-client.js +13 -0
  25. package/dist/payments/evm/emissions-client.js.map +1 -1
  26. package/dist/payments/evm/emissions-gate-client.d.ts +51 -0
  27. package/dist/payments/evm/emissions-gate-client.d.ts.map +1 -0
  28. package/dist/payments/evm/emissions-gate-client.js +55 -0
  29. package/dist/payments/evm/emissions-gate-client.js.map +1 -0
  30. package/dist/payments/evm/multicall.d.ts +21 -0
  31. package/dist/payments/evm/multicall.d.ts.map +1 -0
  32. package/dist/payments/evm/multicall.js +73 -0
  33. package/dist/payments/evm/multicall.js.map +1 -0
  34. package/dist/payments/evm/points-policy-registry-client.d.ts +21 -0
  35. package/dist/payments/evm/points-policy-registry-client.d.ts.map +1 -0
  36. package/dist/payments/evm/points-policy-registry-client.js +34 -0
  37. package/dist/payments/evm/points-policy-registry-client.js.map +1 -0
  38. package/dist/payments/evm/position-init-client.d.ts +18 -0
  39. package/dist/payments/evm/position-init-client.d.ts.map +1 -0
  40. package/dist/payments/evm/position-init-client.js +19 -0
  41. package/dist/payments/evm/position-init-client.js.map +1 -0
  42. package/dist/payments/evm/registry-client.d.ts +17 -0
  43. package/dist/payments/evm/registry-client.d.ts.map +1 -0
  44. package/dist/payments/evm/registry-client.js +24 -0
  45. package/dist/payments/evm/registry-client.js.map +1 -0
  46. package/dist/payments/evm/seller-pools-client.d.ts +95 -0
  47. package/dist/payments/evm/seller-pools-client.d.ts.map +1 -0
  48. package/dist/payments/evm/seller-pools-client.js +193 -0
  49. package/dist/payments/evm/seller-pools-client.js.map +1 -0
  50. package/dist/payments/evm/seller-pools-rewards-client.d.ts +36 -0
  51. package/dist/payments/evm/seller-pools-rewards-client.d.ts.map +1 -0
  52. package/dist/payments/evm/seller-pools-rewards-client.js +126 -0
  53. package/dist/payments/evm/seller-pools-rewards-client.js.map +1 -0
  54. package/dist/payments/evm/seller-registry-client.d.ts +28 -0
  55. package/dist/payments/evm/seller-registry-client.d.ts.map +1 -0
  56. package/dist/payments/evm/seller-registry-client.js +60 -0
  57. package/dist/payments/evm/seller-registry-client.js.map +1 -0
  58. package/dist/payments/evm/seller-rewards-pool-client.d.ts +24 -0
  59. package/dist/payments/evm/seller-rewards-pool-client.d.ts.map +1 -0
  60. package/dist/payments/evm/seller-rewards-pool-client.js +27 -0
  61. package/dist/payments/evm/seller-rewards-pool-client.js.map +1 -0
  62. package/dist/payments/evm/usage-accounting-client.d.ts +49 -0
  63. package/dist/payments/evm/usage-accounting-client.d.ts.map +1 -0
  64. package/dist/payments/evm/usage-accounting-client.js +82 -0
  65. package/dist/payments/evm/usage-accounting-client.js.map +1 -0
  66. package/dist/payments/evm/usage-rewards-client.d.ts +43 -0
  67. package/dist/payments/evm/usage-rewards-client.d.ts.map +1 -0
  68. package/dist/payments/evm/usage-rewards-client.js +62 -0
  69. package/dist/payments/evm/usage-rewards-client.js.map +1 -0
  70. package/dist/payments/evm/wash-trading-registry-client.d.ts +105 -0
  71. package/dist/payments/evm/wash-trading-registry-client.d.ts.map +1 -0
  72. package/dist/payments/evm/wash-trading-registry-client.js +170 -0
  73. package/dist/payments/evm/wash-trading-registry-client.js.map +1 -0
  74. package/dist/payments/generated-contract-addresses.d.ts +49 -0
  75. package/dist/payments/generated-contract-addresses.d.ts.map +1 -0
  76. package/dist/payments/generated-contract-addresses.js +50 -0
  77. package/dist/payments/generated-contract-addresses.js.map +1 -0
  78. package/dist/payments/index.d.ts +28 -0
  79. package/dist/payments/index.d.ts.map +1 -1
  80. package/dist/payments/index.js +14 -0
  81. package/dist/payments/index.js.map +1 -1
  82. package/dist/payments/reward-claims.d.ts +28 -0
  83. package/dist/payments/reward-claims.d.ts.map +1 -0
  84. package/dist/payments/reward-claims.js +67 -0
  85. package/dist/payments/reward-claims.js.map +1 -0
  86. package/dist/payments/reward-preview.d.ts +19 -0
  87. package/dist/payments/reward-preview.d.ts.map +1 -0
  88. package/dist/payments/reward-preview.js +36 -0
  89. package/dist/payments/reward-preview.js.map +1 -0
  90. package/dist/payments/seller-payment-manager.d.ts +9 -0
  91. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  92. package/dist/payments/seller-payment-manager.js +45 -0
  93. package/dist/payments/seller-payment-manager.js.map +1 -1
  94. package/dist/seller-request-handler.d.ts.map +1 -1
  95. package/dist/seller-request-handler.js +12 -0
  96. package/dist/seller-request-handler.js.map +1 -1
  97. package/package.json +3 -3
@@ -0,0 +1,193 @@
1
+ import { Contract } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ const SELLER_POOLS_ABI = [
4
+ 'event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)',
5
+ 'event StakeCreated(uint256 indexed positionId, address indexed staker, uint256 indexed agentId, uint256 amount, uint256 weightAmount, uint256 stakeStartEpoch, uint256 stakeEndEpoch)',
6
+ 'function stake(uint256 agentId, uint256 amount, uint256 stakeEpochs) external returns (uint256 positionId)',
7
+ 'function moveStake(uint256 positionId, uint256 toAgentId) external returns (uint256 newPositionId)',
8
+ 'function moveStakes(uint256[] positionIds, uint256 toAgentId) external returns (uint256[] newPositionIds)',
9
+ 'function splitStake(uint256 positionId, uint256 splitAmount) external returns (uint256 firstPositionId, uint256 secondPositionId)',
10
+ 'function mergeStakes(uint256[] positionIds) external returns (uint256 newPositionId)',
11
+ 'function extendLock(uint256 positionId, uint256 additionalEpochs) external',
12
+ 'function enableMaxLock(uint256 positionId) external',
13
+ 'function disableMaxLock(uint256 positionId) external',
14
+ 'function withdrawStake(uint256 positionId) external',
15
+ 'function withdrawStakes(uint256[] positionIds) external returns (uint256 returnedAmount, uint256 slashedAmount)',
16
+ 'function stakerPositionCount(address staker) external view returns (uint256)',
17
+ 'function stakerPositionIds(address staker, uint256 offset, uint256 limit) external view returns (uint256[])',
18
+ 'function positions(uint256 positionId) external view returns (address owner, uint256 agentId, uint256 amount, uint256 weightAmount, uint64 stakeStartEpoch, uint64 stakeEndEpoch, uint64 closedAtEpoch, bool withdrawn)',
19
+ 'function positionWithdrawableEpoch(uint256 positionId) external view returns (uint64)',
20
+ 'function earlyExitSlashBps(uint256 positionId) external view returns (uint256)',
21
+ 'function positionWeightAtEpoch(uint256 positionId, uint256 epoch) external view returns (uint256)',
22
+ 'function positionMaxLockPowerAtEpoch(uint256 positionId, uint256 epoch) external view returns (uint256)',
23
+ 'function positionPowerSegmentAt(uint256 positionId, uint256 epoch) external view returns (uint256 normalEndEpoch, uint256 maxLockPower, uint256 nextChangeEpoch)',
24
+ 'function agentIdForSeller(address seller) external view returns (uint256)',
25
+ 'function currentEpoch() external view returns (uint256)',
26
+ 'function stakeActivationDelay() external view returns (uint256)',
27
+ 'function minStakeEpochs() external view returns (uint256)',
28
+ 'function MAX_STAKE_EPOCHS() external view returns (uint256)',
29
+ 'function maxSlashBps() external view returns (uint256)',
30
+ 'function minEarlyExitSlashBps() external view returns (uint256)',
31
+ 'function restakedRewardWeightBonusBps() external view returns (uint256)',
32
+ 'function moveWeightPenaltyBps() external view returns (uint256)',
33
+ 'function nextPositionId() external view returns (uint256)',
34
+ 'function stakingSource() external view returns (address)',
35
+ 'function hasPoolAtEpoch(uint256 agentId, uint256 epoch) external view returns (bool)',
36
+ 'function poolWeightAtEpoch(uint256 agentId, uint256 epoch) external view returns (uint256)',
37
+ 'function poolActiveStakeAtEpoch(uint256 agentId, uint256 epoch) external view returns (uint256)',
38
+ 'function totalActiveStakeAtEpoch(uint256 epoch) external view returns (uint256)',
39
+ 'function totalPowerWeightAtEpoch(uint256 epoch) external view returns (uint256)',
40
+ 'function currentPoolSecurityShareBps(uint256 agentId) external returns (uint256)',
41
+ 'function currentPoolSecurityWeight(uint256 agentId) external returns (uint256)',
42
+ 'function currentTotalSecurityWeight() external returns (uint256)',
43
+ 'function stakerTotalActiveStake(address staker) external view returns (uint256)',
44
+ 'function stakerAgentActiveStake(address staker, uint256 agentId) external view returns (uint256)',
45
+ ];
46
+ export class SellerPoolsClient extends BaseEvmClient {
47
+ antsTokenAddress;
48
+ constructor(config) {
49
+ super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId);
50
+ this.antsTokenAddress = config.antsTokenAddress;
51
+ }
52
+ contract() { return new Contract(this._contractAddress, SELLER_POOLS_ABI, this._provider); }
53
+ // ── writes ──────────────────────────────────────────────────────────
54
+ stake(signer, agentId, amount, epochs) {
55
+ return this._approveAndExec(signer, this.antsTokenAddress, amount, SELLER_POOLS_ABI, 'stake', agentId, amount, epochs);
56
+ }
57
+ moveStake(signer, positionId, toAgentId) {
58
+ return this._execWrite(signer, SELLER_POOLS_ABI, 'moveStake', positionId, toAgentId);
59
+ }
60
+ moveStakes(signer, positionIds, toAgentId) {
61
+ return this._execWrite(signer, SELLER_POOLS_ABI, 'moveStakes', positionIds, toAgentId);
62
+ }
63
+ splitStake(signer, positionId, splitAmount) {
64
+ return this._execWrite(signer, SELLER_POOLS_ABI, 'splitStake', positionId, splitAmount);
65
+ }
66
+ mergeStakes(signer, positionIds) {
67
+ return this._execWrite(signer, SELLER_POOLS_ABI, 'mergeStakes', positionIds);
68
+ }
69
+ extendLock(signer, positionId, additionalEpochs) {
70
+ return this._execWrite(signer, SELLER_POOLS_ABI, 'extendLock', positionId, additionalEpochs);
71
+ }
72
+ enableMaxLock(signer, positionId) {
73
+ return this._execWrite(signer, SELLER_POOLS_ABI, 'enableMaxLock', positionId);
74
+ }
75
+ disableMaxLock(signer, positionId) {
76
+ return this._execWrite(signer, SELLER_POOLS_ABI, 'disableMaxLock', positionId);
77
+ }
78
+ withdrawStakes(signer, ids) { return this._execWrite(signer, SELLER_POOLS_ABI, 'withdrawStakes', ids); }
79
+ // ── position reads ──────────────────────────────────────────────────
80
+ async stakerPositionCount(staker) { return Number(await this.contract().getFunction('stakerPositionCount')(staker)); }
81
+ async stakerPositionIds(staker, offset = 0, limit = 256) {
82
+ const ids = await this.contract().getFunction('stakerPositionIds')(staker, offset, limit);
83
+ return ids.map(Number);
84
+ }
85
+ async position(id) {
86
+ const result = await this.contract().getFunction('positions')(id);
87
+ return { id, owner: result[0], agentId: Number(result[1]), amount: result[2], weightAmount: result[3], stakeStartEpoch: Number(result[4]), stakeEndEpoch: Number(result[5]), closedAtEpoch: Number(result[6]), withdrawn: result[7] };
88
+ }
89
+ async positionsBatch(ids) {
90
+ const positions = [];
91
+ for (let offset = 0; offset < ids.length; offset += 16) {
92
+ positions.push(...await Promise.all(ids.slice(offset, offset + 16).map((id) => this.position(id))));
93
+ }
94
+ return positions;
95
+ }
96
+ async positionWithdrawableEpoch(id) { return Number(await this.contract().getFunction('positionWithdrawableEpoch')(id)); }
97
+ async earlyExitSlashBps(id) { return Number(await this.contract().getFunction('earlyExitSlashBps')(id)); }
98
+ positionWeightAtEpoch(id, epoch) { return this.contract().getFunction('positionWeightAtEpoch')(id, epoch); }
99
+ positionMaxLockPowerAtEpoch(id, epoch) { return this.contract().getFunction('positionMaxLockPowerAtEpoch')(id, epoch); }
100
+ async positionPowerSegmentAt(id, epoch) {
101
+ const [normalEndEpoch, maxLockPower, nextChangeEpoch] = await this.contract().getFunction('positionPowerSegmentAt')(id, epoch);
102
+ return { normalEndEpoch: Number(normalEndEpoch), maxLockPower, nextChangeEpoch: Number(nextChangeEpoch) };
103
+ }
104
+ async isMaxLocked(id, epoch) {
105
+ return (await this.positionMaxLockPowerAtEpoch(id, epoch)) !== 0n;
106
+ }
107
+ // ── pool / config reads ─────────────────────────────────────────────
108
+ async agentIdForSeller(seller) { return Number(await this.contract().getFunction('agentIdForSeller')(seller)); }
109
+ async currentEpoch() { return Number(await this.contract().getFunction('currentEpoch')()); }
110
+ async stakeActivationDelay() { return Number(await this.contract().getFunction('stakeActivationDelay')()); }
111
+ async minStakeEpochs() { return Number(await this.contract().getFunction('minStakeEpochs')()); }
112
+ async maxStakeEpochs() { return Number(await this.contract().getFunction('MAX_STAKE_EPOCHS')()); }
113
+ async nextPositionId() { return Number(await this.contract().getFunction('nextPositionId')()); }
114
+ stakingSource() { return this.contract().getFunction('stakingSource')(); }
115
+ async poolConfig() {
116
+ const contract = this.contract();
117
+ const [minStakeEpochs, maxStakeEpochs, stakeActivationDelay, maxSlashBps, minEarlyExitSlashBps, restakedRewardWeightBonusBps, moveWeightPenaltyBps] = await Promise.all([
118
+ contract.getFunction('minStakeEpochs')(), contract.getFunction('MAX_STAKE_EPOCHS')(), contract.getFunction('stakeActivationDelay')(),
119
+ contract.getFunction('maxSlashBps')(), contract.getFunction('minEarlyExitSlashBps')(),
120
+ contract.getFunction('restakedRewardWeightBonusBps')(), contract.getFunction('moveWeightPenaltyBps')(),
121
+ ]);
122
+ return {
123
+ minStakeEpochs: Number(minStakeEpochs), maxStakeEpochs: Number(maxStakeEpochs), stakeActivationDelay: Number(stakeActivationDelay),
124
+ maxSlashBps: Number(maxSlashBps), minEarlyExitSlashBps: Number(minEarlyExitSlashBps),
125
+ restakedRewardWeightBonusBps: Number(restakedRewardWeightBonusBps), moveWeightPenaltyBps: Number(moveWeightPenaltyBps),
126
+ };
127
+ }
128
+ hasPoolAtEpoch(agentId, epoch) { return this.contract().getFunction('hasPoolAtEpoch(uint256,uint256)')(agentId, epoch); }
129
+ poolWeightAtEpoch(agentId, epoch) { return this.contract().getFunction('poolWeightAtEpoch(uint256,uint256)')(agentId, epoch); }
130
+ poolActiveStakeAtEpoch(agentId, epoch) { return this.contract().getFunction('poolActiveStakeAtEpoch(uint256,uint256)')(agentId, epoch); }
131
+ totalActiveStakeAtEpoch(epoch) { return this.contract().getFunction('totalActiveStakeAtEpoch')(epoch); }
132
+ totalPowerWeightAtEpoch(epoch) { return this.contract().getFunction('totalPowerWeightAtEpoch')(epoch); }
133
+ /** Non-view on chain (caches the current epoch's weight); read through a static call. */
134
+ async currentPoolSecurityShareBps(agentId) {
135
+ return Number(await this.contract().getFunction('currentPoolSecurityShareBps(uint256)').staticCall(agentId));
136
+ }
137
+ currentPoolSecurityWeight(agentId) { return this.contract().getFunction('currentPoolSecurityWeight(uint256)').staticCall(agentId); }
138
+ currentTotalSecurityWeight() { return this.contract().getFunction('currentTotalSecurityWeight').staticCall(); }
139
+ stakerTotalActiveStake(staker) { return this.contract().getFunction('stakerTotalActiveStake')(staker); }
140
+ stakerAgentActiveStake(staker, agentId) { return this.contract().getFunction('stakerAgentActiveStake')(staker, agentId); }
141
+ allStakerPositionIds(staker) {
142
+ return collectPositionIds((offset, limit) => this.stakerPositionIds(staker, offset, limit));
143
+ }
144
+ }
145
+ async function collectPositionIds(readPage) {
146
+ const ids = [];
147
+ for (let offset = 0;; offset += 256) {
148
+ const page = await readPage(offset, 256);
149
+ ids.push(...page);
150
+ if (page.length < 256)
151
+ return ids;
152
+ }
153
+ }
154
+ export function estimateEarlyExit(position, slashBps) {
155
+ const slashedAmount = position.amount * BigInt(slashBps) / 10000n;
156
+ return {
157
+ id: position.id,
158
+ amount: position.amount,
159
+ slashBps,
160
+ slashedAmount,
161
+ returnedAmount: position.amount - slashedAmount,
162
+ };
163
+ }
164
+ export function positionState(position, currentEpoch) {
165
+ if (position.withdrawn)
166
+ return 'withdrawn';
167
+ if (position.closedAtEpoch !== 0)
168
+ return 'closed';
169
+ if (currentEpoch < position.stakeStartEpoch)
170
+ return 'pending';
171
+ if (currentEpoch < position.stakeEndEpoch)
172
+ return 'active';
173
+ return 'matured';
174
+ }
175
+ /**
176
+ * Off-chain mirror of the pool's early-exit slash curve, for previews before
177
+ * a position is withdrawable (the on-chain getter reverts while a change is
178
+ * pending). Whole-epoch integer arithmetic matches the contract.
179
+ */
180
+ export function projectedEarlyExitSlashBps(position, epoch, config, maxLocked = false) {
181
+ if (maxLocked)
182
+ return config.maxSlashBps;
183
+ const closeEpoch = Math.max(epoch, position.stakeStartEpoch);
184
+ if (closeEpoch >= position.stakeEndEpoch)
185
+ return 0;
186
+ const total = position.stakeEndEpoch - position.stakeStartEpoch;
187
+ if (total <= 0)
188
+ return 0;
189
+ const remaining = position.stakeEndEpoch - closeEpoch;
190
+ const linear = Math.floor(config.maxSlashBps * remaining / total);
191
+ return Math.max(config.minEarlyExitSlashBps, Math.min(config.maxSlashBps, linear));
192
+ }
193
+ //# sourceMappingURL=seller-pools-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-pools-client.js","sourceRoot":"","sources":["../../../src/payments/evm/seller-pools-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type AbstractSigner } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ export interface SellerPoolsRewardsClientConfig {
4
+ rpcUrl: string;
5
+ fallbackRpcUrls?: string[];
6
+ contractAddress: string;
7
+ evmChainId?: number;
8
+ }
9
+ export interface DynamicStakerConfig {
10
+ minShareBps: number;
11
+ maxShareBps: number;
12
+ stakeShareTarget: bigint;
13
+ }
14
+ export declare class SellerPoolsRewardsClient extends BaseEvmClient {
15
+ constructor(config: SellerPoolsRewardsClientConfig);
16
+ pendingIndexedStakerReward(positionId: number): Promise<bigint>;
17
+ claimStakerRewards(signer: AbstractSigner, positionId: number, recipient: string): Promise<string>;
18
+ claimStakerRewardsBatch(signer: AbstractSigner, positionIds: number[], recipient: string): Promise<string>;
19
+ /** Compound indexed staker rewards into a fresh locked position (earns the restake weight bonus). */
20
+ restakeStakerRewards(signer: AbstractSigner, positionId: number, stakeEpochs: number): Promise<string>;
21
+ restakeStakerRewardsBatch(signer: AbstractSigner, positionIds: number[], stakeEpochs: number): Promise<string>;
22
+ stakerEpochBudget(epoch: number): Promise<bigint>;
23
+ poolEpochEmissions(epoch: number, agentId: number): Promise<{
24
+ settled: boolean;
25
+ amount: bigint;
26
+ }>;
27
+ dynamicStakerConfigAt(epoch: number): Promise<DynamicStakerConfig>;
28
+ paused(): Promise<boolean>;
29
+ positionClaimCursor(positionId: number): Promise<number>;
30
+ previewStakerReward(positionId: number): Promise<bigint>;
31
+ previewStakerRewards(positionIds: number[]): Promise<bigint[]>;
32
+ poolRewardIndexNextEpoch(agentId: number): Promise<number>;
33
+ initialIndexEpoch(): Promise<number>;
34
+ indexPoolRewards(signer: AbstractSigner, agentId: number, maxEpochs: number): Promise<string>;
35
+ }
36
+ //# sourceMappingURL=seller-pools-rewards-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-pools-rewards-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/seller-pools-rewards-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,WAAW,8BAA8B;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAAE;AA+B7I,MAAM,WAAW,mBAAmB;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;CAAE;AAE5G,qBAAa,wBAAyB,SAAQ,aAAa;gBAC7C,MAAM,EAAE,8BAA8B;IAClD,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/D,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClG,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1G,qGAAqG;IACrG,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACtG,yBAAyB,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9G,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjG,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIxE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IACpB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxD,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxD,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyD9D,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAG1D,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAG1C,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9F"}
@@ -0,0 +1,126 @@
1
+ import { Contract, ZeroAddress } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ import { previewPositionReward, REWARD_INDEX_SCALE } from '../reward-preview.js';
4
+ const ABI = [
5
+ 'function sellerPools() view returns (address)',
6
+ 'function usageAccounting() view returns (address)',
7
+ 'function positionClaimCursor(uint256 positionId) view returns (uint256)',
8
+ 'function poolRewardIndexNextEpoch(uint256 agentId) view returns (uint256)',
9
+ 'function initialIndexEpoch() view returns (uint256)',
10
+ 'function poolCumulativeRewardPerWeightAt(uint256 agentId, uint256 epoch) view returns (uint256)',
11
+ 'function poolCumulativeEpochRewardPerWeightAt(uint256 agentId, uint256 epoch) view returns (uint256)',
12
+ 'function poolEpochEmissions(uint256 epoch, uint256 agentId) view returns (bool, uint256)',
13
+ 'function stakerEpochBudget(uint256 epoch) view returns (uint256)',
14
+ 'function indexPoolRewards(uint256 agentId, uint256 maxEpochs) returns (uint256)',
15
+ 'function pendingIndexedStakerReward(uint256 positionId) external view returns (uint256)',
16
+ 'function claimStakerRewards(uint256 positionId, address recipient) external',
17
+ 'function claimStakerRewardsBatch(uint256[] positionIds, address recipient) external',
18
+ 'function restakeStakerRewards(uint256 positionId, uint256 stakeEpochs) external returns (uint256 newPositionId)',
19
+ 'function restakeStakerRewardsBatch(uint256[] positionIds, uint256 stakeEpochs) external returns (uint256[] newPositionIds)',
20
+ 'function dynamicStakerConfigAt(uint256 epoch) view returns (tuple(uint32 minShareBps, uint32 maxShareBps, uint256 stakeShareTarget))',
21
+ 'function paused() view returns (bool)',
22
+ ];
23
+ const POOLS_ABI = [
24
+ 'function positionPowerSegmentAt(uint256 positionId, uint256 epoch) view returns (uint256, uint256, uint256)',
25
+ 'function poolWeightAtEpoch(uint256 agentId, uint256 epoch) view returns (uint256)',
26
+ 'function currentEpoch() view returns (uint256)',
27
+ 'function positions(uint256 positionId) view returns (address, uint256, uint256, uint256, uint64, uint64, uint64, bool)',
28
+ ];
29
+ const ACCOUNTING_ABI = [
30
+ 'function weightedPoolPointsByEpoch(uint256 epoch, uint256 agentId) view returns (uint256)',
31
+ 'function totalWeightedPoolPointsByEpoch(uint256 epoch) view returns (uint256)',
32
+ ];
33
+ export class SellerPoolsRewardsClient extends BaseEvmClient {
34
+ constructor(config) { super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId); }
35
+ pendingIndexedStakerReward(positionId) { return new Contract(this._contractAddress, ABI, this._provider).getFunction('pendingIndexedStakerReward')(positionId); }
36
+ claimStakerRewards(signer, positionId, recipient) { return this._execWrite(signer, ABI, 'claimStakerRewards', positionId, recipient); }
37
+ claimStakerRewardsBatch(signer, positionIds, recipient) { return this._execWrite(signer, ABI, 'claimStakerRewardsBatch', positionIds, recipient); }
38
+ /** Compound indexed staker rewards into a fresh locked position (earns the restake weight bonus). */
39
+ restakeStakerRewards(signer, positionId, stakeEpochs) { return this._execWrite(signer, ABI, 'restakeStakerRewards', positionId, stakeEpochs); }
40
+ restakeStakerRewardsBatch(signer, positionIds, stakeEpochs) { return this._execWrite(signer, ABI, 'restakeStakerRewardsBatch', positionIds, stakeEpochs); }
41
+ stakerEpochBudget(epoch) { return new Contract(this._contractAddress, ABI, this._provider).getFunction('stakerEpochBudget')(epoch); }
42
+ async poolEpochEmissions(epoch, agentId) {
43
+ const [settled, amount] = await new Contract(this._contractAddress, ABI, this._provider).getFunction('poolEpochEmissions')(epoch, agentId);
44
+ return { settled, amount };
45
+ }
46
+ async dynamicStakerConfigAt(epoch) {
47
+ const result = await new Contract(this._contractAddress, ABI, this._provider).getFunction('dynamicStakerConfigAt')(epoch);
48
+ return { minShareBps: Number(result[0]), maxShareBps: Number(result[1]), stakeShareTarget: result[2] };
49
+ }
50
+ paused() { return new Contract(this._contractAddress, ABI, this._provider).getFunction('paused')(); }
51
+ async positionClaimCursor(positionId) { return Number(await new Contract(this._contractAddress, ABI, this._provider).getFunction('positionClaimCursor')(positionId)); }
52
+ async previewStakerReward(positionId) {
53
+ return (await this.previewStakerRewards([positionId]))[0];
54
+ }
55
+ async previewStakerRewards(positionIds) {
56
+ if (positionIds.length === 0)
57
+ return [];
58
+ const blockTag = await this.provider.getBlockNumber();
59
+ const reads = new Map();
60
+ const read = (contract, method, ...args) => {
61
+ const key = `${contract.target}:${method}:${args.join(',')}`;
62
+ let result = reads.get(key);
63
+ if (!result) {
64
+ result = contract.getFunction(method)(...args, { blockTag });
65
+ reads.set(key, result);
66
+ }
67
+ return result;
68
+ };
69
+ const rewards = new Contract(this.contractAddress, ABI, this.provider);
70
+ const poolAddress = await read(rewards, 'sellerPools');
71
+ const pools = new Contract(poolAddress, POOLS_ABI, this.provider);
72
+ const accounting = new Contract(await read(rewards, 'usageAccounting'), ACCOUNTING_ABI, this.provider);
73
+ const previewPosition = async (positionId) => {
74
+ const position = await read(pools, 'positions', positionId);
75
+ if (position[0] === ZeroAddress)
76
+ throw new Error(`Unknown position ${positionId}`);
77
+ return previewPositionReward({
78
+ id: positionId, owner: position[0], agentId: Number(position[1]), amount: position[2], weightAmount: position[3],
79
+ stakeStartEpoch: Number(position[4]), stakeEndEpoch: Number(position[5]), closedAtEpoch: Number(position[6]), withdrawn: position[7],
80
+ }, {
81
+ currentEpoch: async () => Number(await read(pools, 'currentEpoch')),
82
+ claimCursor: async (id) => Number(await read(rewards, 'positionClaimCursor', id)),
83
+ indexCursor: async (agentId) => Number(await read(rewards, 'poolRewardIndexNextEpoch', agentId) || await read(rewards, 'initialIndexEpoch')),
84
+ segment: async (id, epoch) => {
85
+ const [normalEnd, maxLockPower, nextChange] = await read(pools, 'positionPowerSegmentAt', id, epoch);
86
+ return { normalEnd, maxLockPower, nextChange };
87
+ },
88
+ cumulative: async (agentId, epoch) => ({
89
+ reward: await read(rewards, 'poolCumulativeRewardPerWeightAt', agentId, epoch),
90
+ epochReward: await read(rewards, 'poolCumulativeEpochRewardPerWeightAt', agentId, epoch),
91
+ }),
92
+ rewardPerWeight: async (agentId, epoch) => {
93
+ const weight = await read(pools, 'poolWeightAtEpoch', agentId, epoch);
94
+ if (weight === 0n)
95
+ return 0n;
96
+ const [settled, amount] = await read(rewards, 'poolEpochEmissions', epoch, agentId);
97
+ if (settled)
98
+ return amount * REWARD_INDEX_SCALE / weight;
99
+ const [points, total] = await Promise.all([
100
+ read(accounting, 'weightedPoolPointsByEpoch', epoch, agentId),
101
+ read(accounting, 'totalWeightedPoolPointsByEpoch', epoch),
102
+ ]);
103
+ if (points === 0n || total === 0n)
104
+ return 0n;
105
+ const budget = await read(rewards, 'stakerEpochBudget', epoch);
106
+ return (budget * points / total) * REWARD_INDEX_SCALE / weight;
107
+ },
108
+ });
109
+ };
110
+ const amounts = [];
111
+ for (let offset = 0; offset < positionIds.length; offset += 16) {
112
+ amounts.push(...await Promise.all(positionIds.slice(offset, offset + 16).map(previewPosition)));
113
+ }
114
+ return amounts;
115
+ }
116
+ async poolRewardIndexNextEpoch(agentId) {
117
+ return Number(await new Contract(this.contractAddress, ABI, this.provider).getFunction('poolRewardIndexNextEpoch')(agentId));
118
+ }
119
+ async initialIndexEpoch() {
120
+ return Number(await new Contract(this.contractAddress, ABI, this.provider).getFunction('initialIndexEpoch')());
121
+ }
122
+ indexPoolRewards(signer, agentId, maxEpochs) {
123
+ return this._execWrite(signer, ABI, 'indexPoolRewards', agentId, maxEpochs);
124
+ }
125
+ }
126
+ //# sourceMappingURL=seller-pools-rewards-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-pools-rewards-client.js","sourceRoot":"","sources":["../../../src/payments/evm/seller-pools-rewards-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type AbstractSigner } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ export interface SellerRegistryClientConfig {
4
+ rpcUrl: string;
5
+ fallbackRpcUrls?: string[];
6
+ contractAddress: string;
7
+ evmChainId?: number;
8
+ }
9
+ export declare class SellerRegistryClient extends BaseEvmClient {
10
+ constructor(config: SellerRegistryClientConfig);
11
+ private contract;
12
+ registerSeller(signer: AbstractSigner, agentId: number): Promise<string>;
13
+ getAgentId(seller: string): Promise<number>;
14
+ getStake(seller: string): Promise<bigint>;
15
+ isStakedAboveMin(seller: string): Promise<boolean>;
16
+ minSellerPoolStake(): Promise<bigint>;
17
+ legacyStakeEligibilityEnabled(): Promise<boolean>;
18
+ isRegisteredSeller(seller: string, agentId: number): Promise<boolean>;
19
+ getRegisteredAgentId(seller: string): Promise<number>;
20
+ registerSellerBinding(signer: AbstractSigner, agentId: number, confirmed?: (hash: string) => void | Promise<void>): Promise<boolean>;
21
+ agentSeller(agentId: number): Promise<string>;
22
+ sellerPools(): Promise<string>;
23
+ legacyStaking(): Promise<string>;
24
+ }
25
+ export declare class SellerRegistrationVerificationError extends Error {
26
+ constructor();
27
+ }
28
+ //# sourceMappingURL=seller-registry-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-registry-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/seller-registry-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,0BAA0B;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAAE;AAczI,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,MAAM,EAAE,0BAA0B;IAC9C,OAAO,CAAC,QAAQ;IAChB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAClD,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IACrC,6BAA6B,IAAI,OAAO,CAAC,OAAO,CAAC;IAC3C,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOrE,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAapJ,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAC9B,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CACjC;AAED,qBAAa,mCAAoC,SAAQ,KAAK;;CAK7D"}
@@ -0,0 +1,60 @@
1
+ import { Contract } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ const ABI = [
4
+ 'event SellerRegistered(address indexed seller, uint256 indexed agentId)',
5
+ 'function owner() external view returns (address)',
6
+ 'function sellerPools() external view returns (address)',
7
+ 'function legacyStaking() external view returns (address)',
8
+ 'function agentSeller(uint256 agentId) external view returns (address)',
9
+ 'function registerSeller(uint256 agentId) external',
10
+ 'function getAgentId(address seller) external view returns (uint256)',
11
+ 'function getStake(address seller) external view returns (uint256)',
12
+ 'function isStakedAboveMin(address seller) external view returns (bool)',
13
+ 'function minSellerPoolStake() external view returns (uint256)',
14
+ 'function legacyStakeEligibilityEnabled() external view returns (bool)',
15
+ ];
16
+ export class SellerRegistryClient extends BaseEvmClient {
17
+ constructor(config) { super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId); }
18
+ contract() { return new Contract(this._contractAddress, ABI, this._provider); }
19
+ registerSeller(signer, agentId) { return this._execWrite(signer, ABI, 'registerSeller', agentId); }
20
+ async getAgentId(seller) { return Number(await this.contract().getFunction('getAgentId')(seller)); }
21
+ getStake(seller) { return this.contract().getFunction('getStake')(seller); }
22
+ isStakedAboveMin(seller) { return this.contract().getFunction('isStakedAboveMin')(seller); }
23
+ minSellerPoolStake() { return this.contract().getFunction('minSellerPoolStake')(); }
24
+ legacyStakeEligibilityEnabled() { return this.contract().getFunction('legacyStakeEligibilityEnabled')(); }
25
+ async isRegisteredSeller(seller, agentId) {
26
+ if (!agentId)
27
+ return false;
28
+ const registry = this.contract();
29
+ const [resolvedId, boundSeller] = await Promise.all([this.getAgentId(seller), registry.getFunction('agentSeller')(agentId)]);
30
+ return resolvedId === agentId && boundSeller.toLowerCase() === seller.toLowerCase();
31
+ }
32
+ async getRegisteredAgentId(seller) {
33
+ const agentId = await this.getAgentId(seller);
34
+ return await this.isRegisteredSeller(seller, agentId) ? agentId : 0;
35
+ }
36
+ async registerSellerBinding(signer, agentId, confirmed = () => { }) {
37
+ const address = await signer.getAddress();
38
+ const boundAgentId = await this.getAgentId(address);
39
+ if (boundAgentId !== 0 && boundAgentId !== agentId) {
40
+ throw new Error(`Seller is already bound to agent ${boundAgentId}, not ${agentId}.`);
41
+ }
42
+ if (await this.isRegisteredSeller(address, agentId))
43
+ return false;
44
+ await confirmed(await this.registerSeller(signer, agentId));
45
+ if (!await this.isRegisteredSeller(address, agentId)) {
46
+ throw new SellerRegistrationVerificationError();
47
+ }
48
+ return true;
49
+ }
50
+ agentSeller(agentId) { return this.contract().getFunction('agentSeller')(agentId); }
51
+ sellerPools() { return this.contract().getFunction('sellerPools')(); }
52
+ legacyStaking() { return this.contract().getFunction('legacyStaking')(); }
53
+ }
54
+ export class SellerRegistrationVerificationError extends Error {
55
+ constructor() {
56
+ super('Registration could not be verified.');
57
+ this.name = 'SellerRegistrationVerificationError';
58
+ }
59
+ }
60
+ //# sourceMappingURL=seller-registry-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-registry-client.js","sourceRoot":"","sources":["../../../src/payments/evm/seller-registry-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type AbstractSigner } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ export interface SellerRewardsPoolClientConfig {
4
+ rpcUrl: string;
5
+ fallbackRpcUrls?: string[];
6
+ contractAddress: string;
7
+ evmChainId?: number;
8
+ }
9
+ /** Legacy locked seller rewards pool (`AntseedSellerRewardsPool`). Releases are gated by the M002 claim policy. */
10
+ export declare class SellerRewardsPoolClient extends BaseEvmClient {
11
+ constructor(config: SellerRewardsPoolClientConfig);
12
+ private contract;
13
+ lockedRewards(seller: string): Promise<bigint>;
14
+ totalLockedRewards(): Promise<bigint>;
15
+ sellerClaimPolicy(): Promise<string>;
16
+ /** Amount the configured policy would release now; zero when no policy is installed. */
17
+ claimable(seller: string): Promise<{
18
+ locked: bigint;
19
+ claimable: bigint;
20
+ policy: string;
21
+ }>;
22
+ claim(signer: AbstractSigner, recipient: string): Promise<string>;
23
+ }
24
+ //# sourceMappingURL=seller-rewards-pool-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-rewards-pool-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/seller-rewards-pool-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,6BAA6B;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAAE;AAW5I,mHAAmH;AACnH,qBAAa,uBAAwB,SAAQ,aAAa;gBAC5C,MAAM,EAAE,6BAA6B;IACjD,OAAO,CAAC,QAAQ;IAEhB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IACrC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IACpC,wFAAwF;IAClF,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/F,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAClE"}
@@ -0,0 +1,27 @@
1
+ import { Contract, ZeroAddress } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ const ABI = [
4
+ 'function lockedRewards(address seller) external view returns (uint256)',
5
+ 'function totalLockedRewards() external view returns (uint256)',
6
+ 'function sellerClaimPolicy() external view returns (address)',
7
+ 'function claim(address recipient) external',
8
+ ];
9
+ const POLICY_ABI = ['function claimableSellerRewards(address seller, uint256 lockedAmount) external view returns (uint256)'];
10
+ /** Legacy locked seller rewards pool (`AntseedSellerRewardsPool`). Releases are gated by the M002 claim policy. */
11
+ export class SellerRewardsPoolClient extends BaseEvmClient {
12
+ constructor(config) { super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId); }
13
+ contract() { return new Contract(this._contractAddress, ABI, this._provider); }
14
+ lockedRewards(seller) { return this.contract().getFunction('lockedRewards')(seller); }
15
+ totalLockedRewards() { return this.contract().getFunction('totalLockedRewards')(); }
16
+ sellerClaimPolicy() { return this.contract().getFunction('sellerClaimPolicy')(); }
17
+ /** Amount the configured policy would release now; zero when no policy is installed. */
18
+ async claimable(seller) {
19
+ const [locked, policy] = await Promise.all([this.lockedRewards(seller), this.sellerClaimPolicy()]);
20
+ if (policy === ZeroAddress || locked === 0n)
21
+ return { locked, claimable: 0n, policy };
22
+ const allowed = await new Contract(policy, POLICY_ABI, this._provider).getFunction('claimableSellerRewards')(seller, locked);
23
+ return { locked, claimable: allowed > locked ? locked : allowed, policy };
24
+ }
25
+ claim(signer, recipient) { return this._execWrite(signer, ABI, 'claim', recipient); }
26
+ }
27
+ //# sourceMappingURL=seller-rewards-pool-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-rewards-pool-client.js","sourceRoot":"","sources":["../../../src/payments/evm/seller-rewards-pool-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAuB,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,GAAG,GAAG;IACV,wEAAwE;IACxE,+DAA+D;IAC/D,8DAA8D;IAC9D,4CAA4C;CACpC,CAAC;AAEX,MAAM,UAAU,GAAG,CAAC,uGAAuG,CAAU,CAAC;AAEtI,mHAAmH;AACnH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IACxD,YAAY,MAAqC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACvI,QAAQ,KAAe,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjG,aAAa,CAAC,MAAc,IAAqB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/G,kBAAkB,KAAsB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrG,iBAAiB,KAAsB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,wFAAwF;IACxF,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACtF,MAAM,OAAO,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAW,CAAC;QACvI,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC5E,CAAC;IACD,KAAK,CAAC,MAAsB,EAAE,SAAiB,IAAqB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CAC/H"}
@@ -0,0 +1,49 @@
1
+ import { type AbstractSigner } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ export interface UsageAccountingClientConfig {
4
+ rpcUrl: string;
5
+ fallbackRpcUrls?: string[];
6
+ contractAddress: string;
7
+ evmChainId?: number;
8
+ }
9
+ export interface UsagePoints {
10
+ points: bigint;
11
+ weightedPoints: bigint;
12
+ }
13
+ export interface UsageTotals {
14
+ buyers: UsagePoints;
15
+ sellers: UsagePoints;
16
+ }
17
+ export declare class UsageAccountingClient extends BaseEvmClient {
18
+ constructor(config: UsageAccountingClientConfig);
19
+ private contract;
20
+ currentEpoch(): Promise<number>;
21
+ firstRewardedEpoch(): Promise<number>;
22
+ pendingEmissions(account: string, epochs: number[]): Promise<{
23
+ seller: bigint;
24
+ buyer: bigint;
25
+ }>;
26
+ claimSellerEmissions(signer: AbstractSigner, epochs: number[]): Promise<string>;
27
+ sellerPointsByEpoch(epoch: number, seller: string): Promise<bigint>;
28
+ buyerPointsByEpoch(epoch: number, buyer: string): Promise<bigint>;
29
+ sellerAgentIdByEpoch(epoch: number, seller: string): Promise<number>;
30
+ totalUsage(): Promise<UsageTotals>;
31
+ epochUsage(epoch: number): Promise<UsageTotals>;
32
+ buyerUsageTotal(buyer: string): Promise<UsagePoints>;
33
+ buyerEpochUsage(epoch: number, buyer: string): Promise<UsagePoints>;
34
+ agentEpochUsage(epoch: number, agentId: number): Promise<UsagePoints>;
35
+ totalBuyerPointsByEpoch(epoch: number): Promise<bigint>;
36
+ totalSellerPointsByEpoch(epoch: number): Promise<bigint>;
37
+ totalPoolPointsByEpoch(epoch: number): Promise<bigint>;
38
+ totalWeightedPoolPointsByEpoch(epoch: number): Promise<bigint>;
39
+ totalWeightedBuyerPointsByEpoch(epoch: number): Promise<bigint>;
40
+ agentPoolPointsByEpoch(epoch: number, agentId: number): Promise<bigint>;
41
+ weightedPoolPointsByEpoch(epoch: number, agentId: number): Promise<bigint>;
42
+ weightedBuyerPointsByEpoch(epoch: number, buyer: string): Promise<bigint>;
43
+ pointsPolicy(): Promise<string>;
44
+ poolWeightPolicy(): Promise<string>;
45
+ minimumAccountedPoolPower(): Promise<bigint>;
46
+ sellerPools(): Promise<string>;
47
+ usageRewards(): Promise<string>;
48
+ }
49
+ //# sourceMappingURL=usage-accounting-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-accounting-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/usage-accounting-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;CAAE;AACxE,MAAM,WAAW,WAAW;IAAG,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;CAAE;AAmC3E,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,MAAM,EAAE,2BAA2B;IAG/C,OAAO,CAAC,QAAQ;IAEV,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAC/B,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IACrC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAIrG,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAG/E,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAGnE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAG3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAGpE,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAIlC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IACpD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IACnE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAC3E,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxD,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACtD,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9D,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/D,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACvE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1E,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACzE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAC/B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IACnC,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC;IAC5C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAChC"}