@antseed/cli 0.1.156 → 0.1.158

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 (242) hide show
  1. package/README.md +135 -6
  2. package/dist/cli/commands/ants/addresses.d.ts +3 -0
  3. package/dist/cli/commands/ants/addresses.d.ts.map +1 -0
  4. package/dist/cli/commands/ants/addresses.js +20 -0
  5. package/dist/cli/commands/ants/addresses.js.map +1 -0
  6. package/dist/cli/commands/ants/addresses.test.d.ts +2 -0
  7. package/dist/cli/commands/ants/addresses.test.d.ts.map +1 -0
  8. package/dist/cli/commands/ants/addresses.test.js +12 -0
  9. package/dist/cli/commands/ants/addresses.test.js.map +1 -0
  10. package/dist/cli/commands/ants/arguments.test.d.ts +2 -0
  11. package/dist/cli/commands/ants/arguments.test.d.ts.map +1 -0
  12. package/dist/cli/commands/ants/arguments.test.js +51 -0
  13. package/dist/cli/commands/ants/arguments.test.js.map +1 -0
  14. package/dist/cli/commands/ants/dashboard.d.ts +4 -0
  15. package/dist/cli/commands/ants/dashboard.d.ts.map +1 -0
  16. package/dist/cli/commands/ants/dashboard.js +45 -0
  17. package/dist/cli/commands/ants/dashboard.js.map +1 -0
  18. package/dist/cli/commands/ants/dashboard.test.d.ts +2 -0
  19. package/dist/cli/commands/ants/dashboard.test.d.ts.map +1 -0
  20. package/dist/cli/commands/ants/dashboard.test.js +14 -0
  21. package/dist/cli/commands/ants/dashboard.test.js.map +1 -0
  22. package/dist/cli/commands/ants/emissions.d.ts +5 -0
  23. package/dist/cli/commands/ants/emissions.d.ts.map +1 -0
  24. package/dist/cli/commands/ants/emissions.js +44 -0
  25. package/dist/cli/commands/ants/emissions.js.map +1 -0
  26. package/dist/cli/commands/ants/emissions.test.d.ts +2 -0
  27. package/dist/cli/commands/ants/emissions.test.d.ts.map +1 -0
  28. package/dist/cli/commands/ants/emissions.test.js +17 -0
  29. package/dist/cli/commands/ants/emissions.test.js.map +1 -0
  30. package/dist/cli/commands/ants/extend.d.ts +3 -0
  31. package/dist/cli/commands/ants/extend.d.ts.map +1 -0
  32. package/dist/cli/commands/ants/extend.js +14 -0
  33. package/dist/cli/commands/ants/extend.js.map +1 -0
  34. package/dist/cli/commands/ants/extend.test.d.ts +2 -0
  35. package/dist/cli/commands/ants/extend.test.d.ts.map +1 -0
  36. package/dist/cli/commands/ants/extend.test.js +13 -0
  37. package/dist/cli/commands/ants/extend.test.js.map +1 -0
  38. package/dist/cli/commands/ants/index.d.ts +7 -0
  39. package/dist/cli/commands/ants/index.d.ts.map +1 -0
  40. package/dist/cli/commands/ants/index.js +46 -0
  41. package/dist/cli/commands/ants/index.js.map +1 -0
  42. package/dist/cli/commands/ants/index.test.d.ts +2 -0
  43. package/dist/cli/commands/ants/index.test.d.ts.map +1 -0
  44. package/dist/cli/commands/ants/index.test.js +24 -0
  45. package/dist/cli/commands/ants/index.test.js.map +1 -0
  46. package/dist/cli/commands/ants/max-lock.d.ts +3 -0
  47. package/dist/cli/commands/ants/max-lock.d.ts.map +1 -0
  48. package/dist/cli/commands/ants/max-lock.js +13 -0
  49. package/dist/cli/commands/ants/max-lock.js.map +1 -0
  50. package/dist/cli/commands/ants/max-lock.test.d.ts +2 -0
  51. package/dist/cli/commands/ants/max-lock.test.d.ts.map +1 -0
  52. package/dist/cli/commands/ants/max-lock.test.js +15 -0
  53. package/dist/cli/commands/ants/max-lock.test.js.map +1 -0
  54. package/dist/cli/commands/ants/merge.d.ts +3 -0
  55. package/dist/cli/commands/ants/merge.d.ts.map +1 -0
  56. package/dist/cli/commands/ants/merge.js +12 -0
  57. package/dist/cli/commands/ants/merge.js.map +1 -0
  58. package/dist/cli/commands/ants/merge.test.d.ts +2 -0
  59. package/dist/cli/commands/ants/merge.test.d.ts.map +1 -0
  60. package/dist/cli/commands/ants/merge.test.js +16 -0
  61. package/dist/cli/commands/ants/merge.test.js.map +1 -0
  62. package/dist/cli/commands/ants/move.d.ts +3 -0
  63. package/dist/cli/commands/ants/move.d.ts.map +1 -0
  64. package/dist/cli/commands/ants/move.js +14 -0
  65. package/dist/cli/commands/ants/move.js.map +1 -0
  66. package/dist/cli/commands/ants/move.test.d.ts +2 -0
  67. package/dist/cli/commands/ants/move.test.d.ts.map +1 -0
  68. package/dist/cli/commands/ants/move.test.js +16 -0
  69. package/dist/cli/commands/ants/move.test.js.map +1 -0
  70. package/dist/cli/commands/ants/pool.d.ts +3 -0
  71. package/dist/cli/commands/ants/pool.d.ts.map +1 -0
  72. package/dist/cli/commands/ants/pool.js +21 -0
  73. package/dist/cli/commands/ants/pool.js.map +1 -0
  74. package/dist/cli/commands/ants/pool.test.d.ts +2 -0
  75. package/dist/cli/commands/ants/pool.test.d.ts.map +1 -0
  76. package/dist/cli/commands/ants/pool.test.js +13 -0
  77. package/dist/cli/commands/ants/pool.test.js.map +1 -0
  78. package/dist/cli/commands/ants/pools.d.ts +6 -0
  79. package/dist/cli/commands/ants/pools.d.ts.map +1 -0
  80. package/dist/cli/commands/ants/pools.js +50 -0
  81. package/dist/cli/commands/ants/pools.js.map +1 -0
  82. package/dist/cli/commands/ants/pools.test.d.ts +2 -0
  83. package/dist/cli/commands/ants/pools.test.d.ts.map +1 -0
  84. package/dist/cli/commands/ants/pools.test.js +18 -0
  85. package/dist/cli/commands/ants/pools.test.js.map +1 -0
  86. package/dist/cli/commands/ants/positions.d.ts +6 -0
  87. package/dist/cli/commands/ants/positions.d.ts.map +1 -0
  88. package/dist/cli/commands/ants/positions.js +46 -0
  89. package/dist/cli/commands/ants/positions.js.map +1 -0
  90. package/dist/cli/commands/ants/positions.test.d.ts +2 -0
  91. package/dist/cli/commands/ants/positions.test.d.ts.map +1 -0
  92. package/dist/cli/commands/ants/positions.test.js +19 -0
  93. package/dist/cli/commands/ants/positions.test.js.map +1 -0
  94. package/dist/cli/commands/ants/rewards.d.ts +9 -0
  95. package/dist/cli/commands/ants/rewards.d.ts.map +1 -0
  96. package/dist/cli/commands/ants/rewards.js +93 -0
  97. package/dist/cli/commands/ants/rewards.js.map +1 -0
  98. package/dist/cli/commands/ants/rewards.test.d.ts +2 -0
  99. package/dist/cli/commands/ants/rewards.test.d.ts.map +1 -0
  100. package/dist/cli/commands/ants/rewards.test.js +46 -0
  101. package/dist/cli/commands/ants/rewards.test.js.map +1 -0
  102. package/dist/cli/commands/ants/seller.d.ts +3 -0
  103. package/dist/cli/commands/ants/seller.d.ts.map +1 -0
  104. package/dist/cli/commands/ants/seller.js +32 -0
  105. package/dist/cli/commands/ants/seller.js.map +1 -0
  106. package/dist/cli/commands/ants/seller.test.d.ts +2 -0
  107. package/dist/cli/commands/ants/seller.test.d.ts.map +1 -0
  108. package/dist/cli/commands/ants/seller.test.js +16 -0
  109. package/dist/cli/commands/ants/seller.test.js.map +1 -0
  110. package/dist/cli/commands/ants/shared.d.ts +26 -0
  111. package/dist/cli/commands/ants/shared.d.ts.map +1 -0
  112. package/dist/cli/commands/ants/shared.js +94 -0
  113. package/dist/cli/commands/ants/shared.js.map +1 -0
  114. package/dist/cli/commands/ants/shared.test.d.ts +2 -0
  115. package/dist/cli/commands/ants/shared.test.d.ts.map +1 -0
  116. package/dist/cli/commands/ants/shared.test.js +25 -0
  117. package/dist/cli/commands/ants/shared.test.js.map +1 -0
  118. package/dist/cli/commands/ants/split.d.ts +3 -0
  119. package/dist/cli/commands/ants/split.d.ts.map +1 -0
  120. package/dist/cli/commands/ants/split.js +12 -0
  121. package/dist/cli/commands/ants/split.js.map +1 -0
  122. package/dist/cli/commands/ants/split.test.d.ts +2 -0
  123. package/dist/cli/commands/ants/split.test.d.ts.map +1 -0
  124. package/dist/cli/commands/ants/split.test.js +13 -0
  125. package/dist/cli/commands/ants/split.test.js.map +1 -0
  126. package/dist/cli/commands/ants/stake.d.ts +3 -0
  127. package/dist/cli/commands/ants/stake.d.ts.map +1 -0
  128. package/dist/cli/commands/ants/stake.js +15 -0
  129. package/dist/cli/commands/ants/stake.js.map +1 -0
  130. package/dist/cli/commands/ants/stake.test.d.ts +2 -0
  131. package/dist/cli/commands/ants/stake.test.d.ts.map +1 -0
  132. package/dist/cli/commands/ants/stake.test.js +17 -0
  133. package/dist/cli/commands/ants/stake.test.js.map +1 -0
  134. package/dist/cli/commands/ants/status.d.ts +9 -0
  135. package/dist/cli/commands/ants/status.d.ts.map +1 -0
  136. package/dist/cli/commands/ants/status.js +43 -0
  137. package/dist/cli/commands/ants/status.js.map +1 -0
  138. package/dist/cli/commands/ants/status.test.d.ts +2 -0
  139. package/dist/cli/commands/ants/status.test.d.ts.map +1 -0
  140. package/dist/cli/commands/ants/status.test.js +23 -0
  141. package/dist/cli/commands/ants/status.test.js.map +1 -0
  142. package/dist/cli/commands/ants/usage.d.ts +4 -0
  143. package/dist/cli/commands/ants/usage.d.ts.map +1 -0
  144. package/dist/cli/commands/ants/usage.js +31 -0
  145. package/dist/cli/commands/ants/usage.js.map +1 -0
  146. package/dist/cli/commands/ants/usage.test.d.ts +2 -0
  147. package/dist/cli/commands/ants/usage.test.d.ts.map +1 -0
  148. package/dist/cli/commands/ants/usage.test.js +15 -0
  149. package/dist/cli/commands/ants/usage.test.js.map +1 -0
  150. package/dist/cli/commands/ants/verify.d.ts +3 -0
  151. package/dist/cli/commands/ants/verify.d.ts.map +1 -0
  152. package/dist/cli/commands/ants/verify.js +51 -0
  153. package/dist/cli/commands/ants/verify.js.map +1 -0
  154. package/dist/cli/commands/ants/verify.test.d.ts +2 -0
  155. package/dist/cli/commands/ants/verify.test.d.ts.map +1 -0
  156. package/dist/cli/commands/ants/verify.test.js +51 -0
  157. package/dist/cli/commands/ants/verify.test.js.map +1 -0
  158. package/dist/cli/commands/ants/withdraw.d.ts +16 -0
  159. package/dist/cli/commands/ants/withdraw.d.ts.map +1 -0
  160. package/dist/cli/commands/ants/withdraw.js +48 -0
  161. package/dist/cli/commands/ants/withdraw.js.map +1 -0
  162. package/dist/cli/commands/ants/withdraw.test.d.ts +2 -0
  163. package/dist/cli/commands/ants/withdraw.test.d.ts.map +1 -0
  164. package/dist/cli/commands/ants/withdraw.test.js +30 -0
  165. package/dist/cli/commands/ants/withdraw.test.js.map +1 -0
  166. package/dist/cli/commands/emissions.d.ts +7 -0
  167. package/dist/cli/commands/emissions.d.ts.map +1 -1
  168. package/dist/cli/commands/emissions.js +105 -27
  169. package/dist/cli/commands/emissions.js.map +1 -1
  170. package/dist/cli/commands/emissions.test.js +7 -1
  171. package/dist/cli/commands/emissions.test.js.map +1 -1
  172. package/dist/cli/commands/network/chain-config-helper.d.ts +18 -0
  173. package/dist/cli/commands/network/chain-config-helper.d.ts.map +1 -1
  174. package/dist/cli/commands/network/chain-config-helper.js.map +1 -1
  175. package/dist/cli/commands/parse-positive-integer.d.ts +2 -0
  176. package/dist/cli/commands/parse-positive-integer.d.ts.map +1 -0
  177. package/dist/cli/commands/parse-positive-integer.js +9 -0
  178. package/dist/cli/commands/parse-positive-integer.js.map +1 -0
  179. package/dist/cli/commands/reward-actions.d.ts +11 -0
  180. package/dist/cli/commands/reward-actions.d.ts.map +1 -0
  181. package/dist/cli/commands/reward-actions.js +22 -0
  182. package/dist/cli/commands/reward-actions.js.map +1 -0
  183. package/dist/cli/commands/seller/contract-clients.test.d.ts +2 -0
  184. package/dist/cli/commands/seller/contract-clients.test.d.ts.map +1 -0
  185. package/dist/cli/commands/seller/contract-clients.test.js +45 -0
  186. package/dist/cli/commands/seller/contract-clients.test.js.map +1 -0
  187. package/dist/cli/commands/seller/index.d.ts.map +1 -1
  188. package/dist/cli/commands/seller/index.js +4 -2
  189. package/dist/cli/commands/seller/index.js.map +1 -1
  190. package/dist/cli/commands/seller/pool.d.ts +15 -0
  191. package/dist/cli/commands/seller/pool.d.ts.map +1 -0
  192. package/dist/cli/commands/seller/pool.js +201 -0
  193. package/dist/cli/commands/seller/pool.js.map +1 -0
  194. package/dist/cli/commands/seller/pool.test.d.ts +2 -0
  195. package/dist/cli/commands/seller/pool.test.d.ts.map +1 -0
  196. package/dist/cli/commands/seller/pool.test.js +16 -0
  197. package/dist/cli/commands/seller/pool.test.js.map +1 -0
  198. package/dist/cli/commands/seller/register.d.ts.map +1 -1
  199. package/dist/cli/commands/seller/register.js +38 -8
  200. package/dist/cli/commands/seller/register.js.map +1 -1
  201. package/dist/cli/commands/seller/rewards.d.ts +13 -0
  202. package/dist/cli/commands/seller/rewards.d.ts.map +1 -0
  203. package/dist/cli/commands/seller/rewards.js +115 -0
  204. package/dist/cli/commands/seller/rewards.js.map +1 -0
  205. package/dist/cli/commands/seller/rewards.test.d.ts +2 -0
  206. package/dist/cli/commands/seller/rewards.test.d.ts.map +1 -0
  207. package/dist/cli/commands/seller/rewards.test.js +21 -0
  208. package/dist/cli/commands/seller/rewards.test.js.map +1 -0
  209. package/dist/cli/commands/seller/setup.d.ts.map +1 -1
  210. package/dist/cli/commands/seller/setup.js +2 -1
  211. package/dist/cli/commands/seller/setup.js.map +1 -1
  212. package/dist/cli/commands/seller/stake.d.ts.map +1 -1
  213. package/dist/cli/commands/seller/stake.js +104 -65
  214. package/dist/cli/commands/seller/stake.js.map +1 -1
  215. package/dist/cli/commands/seller/stake.test.d.ts +2 -0
  216. package/dist/cli/commands/seller/stake.test.d.ts.map +1 -0
  217. package/dist/cli/commands/seller/stake.test.js +99 -0
  218. package/dist/cli/commands/seller/stake.test.js.map +1 -0
  219. package/dist/cli/commands/seller/start.d.ts.map +1 -1
  220. package/dist/cli/commands/seller/start.js +6 -0
  221. package/dist/cli/commands/seller/start.js.map +1 -1
  222. package/dist/cli/commands/seller/status.d.ts.map +1 -1
  223. package/dist/cli/commands/seller/status.js +44 -2
  224. package/dist/cli/commands/seller/status.js.map +1 -1
  225. package/dist/cli/index.js +2 -0
  226. package/dist/cli/index.js.map +1 -1
  227. package/dist/cli/payment-utils.d.ts +33 -2
  228. package/dist/cli/payment-utils.d.ts.map +1 -1
  229. package/dist/cli/payment-utils.js +101 -2
  230. package/dist/cli/payment-utils.js.map +1 -1
  231. package/dist/config/types.d.ts +20 -0
  232. package/dist/config/types.d.ts.map +1 -1
  233. package/dist/proxy/buyer-proxy.d.ts.map +1 -1
  234. package/dist/proxy/buyer-proxy.js +27 -8
  235. package/dist/proxy/buyer-proxy.js.map +1 -1
  236. package/dist/proxy/buyer-proxy.test.js +126 -2
  237. package/dist/proxy/buyer-proxy.test.js.map +1 -1
  238. package/package.json +7 -6
  239. package/dist/cli/commands/seller/emissions.d.ts +0 -3
  240. package/dist/cli/commands/seller/emissions.d.ts.map +0 -1
  241. package/dist/cli/commands/seller/emissions.js +0 -5
  242. package/dist/cli/commands/seller/emissions.js.map +0 -1
@@ -2,13 +2,24 @@ import chalk from 'chalk';
2
2
  import ora from 'ora';
3
3
  import { getGlobalOptions } from './types.js';
4
4
  import { loadConfig } from '../../config/loader.js';
5
- import { createEmissionsClient, loadCryptoContext, formatAnts, } from '../payment-utils.js';
5
+ import { createEmissionsClient, createAntsTokenClient, createLegacyEmissionsClient, createSellerPoolsClient, createUsageAccountingClient, createUsageRewardsClient, loadCryptoContext, formatAnts, resolveCliContractStack, } from '../payment-utils.js';
6
+ import { legacyEpochs, newEpochs } from '@antseed/node/payments';
7
+ import { claimBuyerEpochRewards, claimEpochRewards, pendingEpochRewards } from '@antseed/node/payments';
8
+ import { RewardClaimProgress } from './reward-actions.js';
6
9
  export function pastEpochs(currentEpoch) {
7
10
  return Array.from({ length: currentEpoch }, (_, i) => i);
8
11
  }
9
12
  export function claimablePendingForRole(pending, role) {
10
13
  return role === 'seller' ? pending.seller : pending.buyer;
11
14
  }
15
+ export function selectedEmissionStacks(options) {
16
+ if (options.legacyOnly && options.newOnly)
17
+ throw new Error('--legacy-only and --new-only cannot be used together');
18
+ return {
19
+ legacy: !options.newOnly,
20
+ recognized: !options.legacyOnly,
21
+ };
22
+ }
12
23
  function roleLabel(role) {
13
24
  return role === 'seller' ? 'Seller' : 'Buyer';
14
25
  }
@@ -17,39 +28,89 @@ function pendingJsonKey(role) {
17
28
  }
18
29
  export function registerEmissionsCommand(parentCmd, role) {
19
30
  const emissions = parentCmd
20
- .command('emissions')
31
+ .command('emissions', { hidden: role === 'seller' })
21
32
  .description('View epoch info and pending ANTS emissions');
22
33
  emissions
23
34
  .command('info')
24
35
  .description('Show current epoch info and pending emissions')
25
36
  .option('--json', 'output as JSON', false)
37
+ .option('--legacy-only', 'show only rewards earned before the recognized-usage upgrade', false)
38
+ .option('--new-only', 'show only recognized-usage rewards', false)
26
39
  .action(async (options) => {
27
40
  const globalOpts = getGlobalOptions(parentCmd);
28
41
  const config = await loadConfig(globalOpts.config);
29
42
  const { address } = await loadCryptoContext(globalOpts.dataDir);
30
- const emissionsClient = createEmissionsClient(config);
31
43
  const spinner = ora('Fetching emissions info...').start();
32
44
  try {
33
- const epochInfo = await emissionsClient.getEpochInfo();
34
- const pending = await emissionsClient.pendingEmissions(address, pastEpochs(epochInfo.epoch));
35
- const rolePending = claimablePendingForRole(pending, role);
45
+ const selected = selectedEmissionStacks(options);
46
+ const stack = await resolveCliContractStack(config);
47
+ const legacyIds = stack.mode === 'legacy'
48
+ ? pastEpochs(stack.currentEpoch)
49
+ : legacyEpochs(stack.currentEpoch, stack.firstRewardedEpoch);
50
+ const recognizedIds = stack.mode === 'recognized-usage'
51
+ ? newEpochs(stack.currentEpoch, stack.firstRewardedEpoch)
52
+ : [];
53
+ let legacyPending = 0n;
54
+ let recognizedPending = 0n;
55
+ let emissionRate = 0n;
56
+ let epochDuration = 0;
57
+ if (selected.legacy && (stack.mode === 'legacy' || stack.addresses.legacyEmissionsContractAddress)) {
58
+ const client = stack.mode === 'legacy' ? createEmissionsClient(config) : createLegacyEmissionsClient(config);
59
+ const [epochInfo, pending] = await Promise.all([
60
+ client.getEpochInfo(),
61
+ pendingEpochRewards(legacyIds, async (epochs) => claimablePendingForRole(await client.pendingEmissions(address, epochs), role)),
62
+ ]);
63
+ emissionRate = epochInfo.emission;
64
+ epochDuration = epochInfo.epochDuration;
65
+ legacyPending = pending;
66
+ }
67
+ let noCurrentPool = false;
68
+ if (selected.recognized && stack.mode === 'recognized-usage') {
69
+ if (role === 'seller') {
70
+ const usage = createUsageAccountingClient(config);
71
+ recognizedPending = await pendingEpochRewards(recognizedIds, async (epochs) => (await usage.pendingEmissions(address, epochs)).seller);
72
+ const pools = createSellerPoolsClient(config);
73
+ const agentId = await pools.agentIdForSeller(address);
74
+ noCurrentPool = agentId === 0 || !(await pools.hasPoolAtEpoch(agentId, stack.currentEpoch));
75
+ }
76
+ else {
77
+ const rewards = createUsageRewardsClient(config);
78
+ recognizedPending = await pendingEpochRewards(recognizedIds, async (epochs) => {
79
+ const amounts = await Promise.all(epochs.map(async (epoch) => (await rewards.buyerEpochClaimed(address, epoch) ? 0n : rewards.pendingBuyerReward(address, epoch))));
80
+ return amounts.reduce((total, value) => total + value, 0n);
81
+ });
82
+ }
83
+ }
36
84
  spinner.stop();
37
85
  if (options.json) {
38
86
  console.log(JSON.stringify({
39
87
  address,
40
- epoch: epochInfo.epoch,
41
- emissionRate: formatAnts(epochInfo.emission),
42
- epochDuration: epochInfo.epochDuration,
43
- [pendingJsonKey(role)]: formatAnts(rolePending),
88
+ mode: stack.mode,
89
+ epoch: stack.currentEpoch,
90
+ firstRewardedEpoch: stack.firstRewardedEpoch ?? null,
91
+ emissionRate: formatAnts(emissionRate),
92
+ epochDuration,
93
+ legacy: { epochs: legacyIds, [pendingJsonKey(role)]: formatAnts(legacyPending) },
94
+ recognizedUsage: { epochs: recognizedIds, [pendingJsonKey(role)]: formatAnts(recognizedPending) },
95
+ [pendingJsonKey(role)]: formatAnts(legacyPending + recognizedPending),
96
+ ...(role === 'seller' ? { hasCurrentPool: !noCurrentPool } : {}),
44
97
  }, null, 2));
45
98
  return;
46
99
  }
47
100
  console.log(chalk.bold('Emissions Info:\n'));
48
- console.log(` Epoch: ${chalk.cyan(String(epochInfo.epoch))}`);
49
- console.log(` Emission rate: ${chalk.green(formatAnts(epochInfo.emission) + ' ANTS/epoch')}`);
101
+ console.log(` Mode: ${chalk.cyan(stack.mode)}`);
102
+ console.log(` Epoch: ${chalk.cyan(String(stack.currentEpoch))}`);
103
+ if (emissionRate > 0n)
104
+ console.log(` Emission rate: ${chalk.green(formatAnts(emissionRate) + ' ANTS/epoch')}`);
50
105
  console.log('');
51
106
  console.log(chalk.bold(`${roleLabel(role)} Pending Emissions (${address.slice(0, 10)}...):\n`));
52
- console.log(` ${roleLabel(role)} rewards: ${chalk.green(formatAnts(rolePending) + ' ANTS')}`);
107
+ if (selected.legacy)
108
+ console.log(` Legacy: ${chalk.green(formatAnts(legacyPending) + ' ANTS')}`);
109
+ if (selected.recognized && stack.mode === 'recognized-usage')
110
+ console.log(` Recognized use: ${chalk.green(formatAnts(recognizedPending) + ' ANTS')}`);
111
+ console.log(` Total: ${chalk.green(formatAnts(legacyPending + recognizedPending) + ' ANTS')}`);
112
+ if (noCurrentPool)
113
+ console.log(chalk.yellow('\n⚠ No active seller pool exists for the current epoch; new usage will not accrue rewards.'));
53
114
  }
54
115
  catch (err) {
55
116
  spinner.fail(chalk.red(`Failed to fetch emissions: ${err.message}`));
@@ -59,31 +120,48 @@ export function registerEmissionsCommand(parentCmd, role) {
59
120
  emissions
60
121
  .command('claim')
61
122
  .description(`Claim pending ${role} ANTS emissions`)
62
- .action(async () => {
123
+ .option('--legacy-only', 'claim only rewards earned before the recognized-usage upgrade', false)
124
+ .option('--new-only', 'claim only recognized-usage rewards', false)
125
+ .action(async (options) => {
63
126
  const globalOpts = getGlobalOptions(parentCmd);
64
127
  const config = await loadConfig(globalOpts.config);
65
128
  const { wallet, address } = await loadCryptoContext(globalOpts.dataDir);
66
- const emissionsClient = createEmissionsClient(config);
67
129
  console.log(chalk.dim(`Wallet: ${address}`));
68
130
  const spinner = ora(`Claiming ${role} emissions...`).start();
131
+ let progress;
69
132
  try {
70
- const epochInfo = await emissionsClient.getEpochInfo();
71
- const epochs = pastEpochs(epochInfo.epoch);
72
- const pending = await emissionsClient.pendingEmissions(address, epochs);
73
- const claimablePending = claimablePendingForRole(pending, role);
74
- if (claimablePending === 0n) {
133
+ const selected = selectedEmissionStacks(options);
134
+ const stack = await resolveCliContractStack(config);
135
+ const legacyIds = stack.mode === 'legacy'
136
+ ? pastEpochs(stack.currentEpoch)
137
+ : legacyEpochs(stack.currentEpoch, stack.firstRewardedEpoch);
138
+ const recognizedIds = stack.mode === 'recognized-usage'
139
+ ? newEpochs(stack.currentEpoch, stack.firstRewardedEpoch)
140
+ : [];
141
+ const token = createAntsTokenClient(config);
142
+ progress = new RewardClaimProgress((hash) => console.log(chalk.dim(`Claim transaction confirmed: ${hash}`)), (hash) => token.receivedInTransaction(hash, address));
143
+ if (selected.legacy && (stack.mode === 'legacy' || stack.addresses.legacyEmissionsContractAddress)) {
144
+ const client = stack.mode === 'legacy' ? createEmissionsClient(config) : createLegacyEmissionsClient(config);
145
+ await claimEpochRewards(legacyIds, async (epochs) => claimablePendingForRole(await client.pendingEmissions(address, epochs), role), (epochs) => role === 'seller' ? client.claimSellerEmissions(wallet, epochs) : client.claimBuyerEmissions(wallet, address, epochs), progress.record);
146
+ }
147
+ if (selected.recognized && stack.mode === 'recognized-usage') {
148
+ if (role === 'seller') {
149
+ const usage = createUsageAccountingClient(config);
150
+ await claimEpochRewards(recognizedIds, async (epochs) => (await usage.pendingEmissions(address, epochs)).seller, (epochs) => usage.claimSellerEmissions(wallet, epochs), progress.record);
151
+ }
152
+ else {
153
+ const rewards = createUsageRewardsClient(config);
154
+ await claimBuyerEpochRewards(recognizedIds, async (epoch) => await rewards.buyerEpochClaimed(address, epoch) ? 0n : rewards.pendingBuyerReward(address, epoch), (epoch) => rewards.claimBuyerReward(wallet, address, epoch), progress.record);
155
+ }
156
+ }
157
+ if (progress.claimed === 0n) {
75
158
  spinner.succeed(chalk.yellow(`No pending ${role} emissions to claim.`));
76
159
  return;
77
160
  }
78
- console.log(chalk.dim(`Pending ${roleLabel(role).toLowerCase()}: ${formatAnts(claimablePending)} ANTS`));
79
- const txHash = role === 'seller'
80
- ? await emissionsClient.claimSellerEmissions(wallet, epochs)
81
- : await emissionsClient.claimBuyerEmissions(wallet, address, epochs);
82
- spinner.succeed(chalk.green(`Claimed ${formatAnts(claimablePending)} ANTS`));
83
- console.log(chalk.dim(`Transaction: ${txHash}`));
161
+ spinner.succeed(chalk.green(`Claimed ${formatAnts(progress.claimed)} ANTS`));
84
162
  }
85
163
  catch (err) {
86
- spinner.fail(chalk.red(`Claim failed: ${err.message}`));
164
+ spinner.fail(chalk.red(progress?.failure(err.message) ?? `Claim failed: ${err.message}`));
87
165
  process.exit(1);
88
166
  }
89
167
  });
@@ -1 +1 @@
1
- {"version":3,"file":"emissions.js","sourceRoot":"","sources":["../../../src/cli/commands/emissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emissions.js","sourceRoot":"","sources":["../../../src/cli/commands/emissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAS1D,MAAM,UAAU,UAAU,CAAC,YAAoB;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAyB,EAAE,IAAmB;IACpF,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAoD;IACzF,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACnH,OAAO;QACL,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,CAAC,OAAO,CAAC,UAAU;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAmB;IACpC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,IAAmB;IACzC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAkB,EAAE,IAAmB;IAC9E,MAAM,SAAS,GAAG,SAAS;SACxB,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;SACnD,WAAW,CAAC,4CAA4C,CAAC,CAAC;IAE7D,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,8DAA8D,EAAE,KAAK,CAAC;SAC9F,MAAM,CAAC,YAAY,EAAE,oCAAoC,EAAE,KAAK,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ;gBACvC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;gBAChC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAmB,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,KAAK,kBAAkB;gBACrD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAmB,CAAC;gBAC1D,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,iBAAiB,GAAG,EAAE,CAAC;YAC3B,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBACnG,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBAC7G,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC7C,MAAM,CAAC,YAAY,EAAE;oBACrB,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;iBAChI,CAAC,CAAC;gBACH,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC;gBAClC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;gBACxC,aAAa,GAAG,OAAO,CAAC;YAC1B,CAAC;YAED,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC7D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;oBAClD,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACvI,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;oBAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACtD,aAAa,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBACjD,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;wBAC5E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5D,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAClG,CAAC,CAAC,CAAC;wBACJ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC7D,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,OAAO;oBACP,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;oBACpD,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC;oBACtC,aAAa;oBACb,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE;oBAChF,eAAe,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAE;oBACjG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,GAAG,iBAAiB,CAAC;oBACrE,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5E,IAAI,YAAY,GAAG,EAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YAClH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAChG,IAAI,QAAQ,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3G,IAAI,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB;gBAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACxJ,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,GAAG,iBAAiB,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1G,IAAI,aAAa;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4FAA4F,CAAC,CAAC,CAAC;QAC7I,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA+B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;SACnD,MAAM,CAAC,eAAe,EAAE,+DAA+D,EAAE,KAAK,CAAC;SAC/F,MAAM,CAAC,YAAY,EAAE,qCAAqC,EAAE,KAAK,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,IAAI,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7D,IAAI,QAAyC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ;gBACvC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;gBAChC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAmB,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,KAAK,kBAAkB;gBACrD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAmB,CAAC;gBAC1D,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC5C,QAAQ,GAAG,IAAI,mBAAmB,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC,EACxE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CACrD,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBACnG,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBAC7G,MAAM,iBAAiB,CAAC,SAAS,EAC/B,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAC/F,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EACjI,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC7D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;oBAClD,MAAM,iBAAiB,CAAC,aAAa,EACnC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,EACxE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBACjD,MAAM,sBAAsB,CAAC,aAAa,EACxC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,EAClH,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,IAAI,sBAAsB,CAAC,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAE,GAAa,CAAC,OAAO,CAAC,IAAI,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,10 +1,16 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import test from 'node:test';
3
- import { claimablePendingForRole, pastEpochs } from './emissions.js';
3
+ import { claimablePendingForRole, pastEpochs, selectedEmissionStacks } from './emissions.js';
4
4
  test('pastEpochs returns finalized epoch ids before current epoch', () => {
5
5
  assert.deepEqual(pastEpochs(0), []);
6
6
  assert.deepEqual(pastEpochs(4), [0, 1, 2, 3]);
7
7
  });
8
+ test('selectedEmissionStacks enforces mutually exclusive filters', () => {
9
+ assert.deepEqual(selectedEmissionStacks({}), { legacy: true, recognized: true });
10
+ assert.deepEqual(selectedEmissionStacks({ legacyOnly: true }), { legacy: true, recognized: false });
11
+ assert.deepEqual(selectedEmissionStacks({ newOnly: true }), { legacy: false, recognized: true });
12
+ assert.throws(() => selectedEmissionStacks({ legacyOnly: true, newOnly: true }));
13
+ });
8
14
  test('claimablePendingForRole only selects the requested reward bucket', () => {
9
15
  const pending = {
10
16
  seller: 10n,
@@ -1 +1 @@
1
- {"version":3,"file":"emissions.test.js","sourceRoot":"","sources":["../../../src/cli/commands/emissions.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAErE,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;KACX,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"emissions.test.js","sourceRoot":"","sources":["../../../src/cli/commands/emissions.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7F,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACpG,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;KACX,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC"}
@@ -10,10 +10,28 @@ export interface ChainCryptoOverrides {
10
10
  fallbackRpcUrls?: string[];
11
11
  depositsContractAddress?: string;
12
12
  channelsContractAddress?: string;
13
+ registryContractAddress?: string;
13
14
  freeUsageContractAddress?: string;
14
15
  usdcContractAddress?: string;
15
16
  stakingContractAddress?: string;
16
17
  identityRegistryAddress?: string;
18
+ emissionsContractAddress?: string;
19
+ legacyEmissionsContractAddress?: string;
20
+ legacyStakingContractAddress?: string;
21
+ legacyEmissionsV1ContractAddress?: string;
22
+ antsTokenAddress?: string;
23
+ emissionsGateAddress?: string;
24
+ sellerPoolsAddress?: string;
25
+ sellerRegistryAddress?: string;
26
+ positionInitAddress?: string;
27
+ usageAccountingAddress?: string;
28
+ usageRewardsAddress?: string;
29
+ sellerPoolsRewardsAddress?: string;
30
+ legacyEmissionsEscrowAddress?: string;
31
+ washTradingRegistryAddress?: string;
32
+ pointsPolicyRegistryAddress?: string;
33
+ /** Explorer REST base for seller profiles in `antseed ants`; empty string disables the lookup. */
34
+ explorerApiUrl?: string;
17
35
  }
18
36
  /**
19
37
  * Build the `NodePaymentsConfig` an ad-hoc `AntseedNode` needs to enrich peers
@@ -1 +1 @@
1
- {"version":3,"file":"chain-config-helper.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/network/chain-config-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,oBAAoB,GAAG,SAAS,GAChD,kBAAkB,GAAG,SAAS,CA0BhC"}
1
+ {"version":3,"file":"chain-config-helper.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/network/chain-config-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,kGAAkG;IAClG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,oBAAoB,GAAG,SAAS,GAChD,kBAAkB,GAAG,SAAS,CA0BhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chain-config-helper.js","sourceRoot":"","sources":["../../../../src/cli/commands/network/chain-config-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAEnB,MAAM,eAAe,CAAC;AAmBvB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,eAAiD;IAEjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC;YAClC,OAAO,EAAE,eAAe,EAAE,OAAO;YACjC,MAAM,EAAE,eAAe,EAAE,MAAM;YAC/B,uBAAuB,EAAE,eAAe,EAAE,uBAAuB;YACjE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB;YACjE,wBAAwB,EAAE,eAAe,EAAE,wBAAwB;YACnE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB;SAC1D,CAAC,CAAC;QACH,MAAM,cAAc,GAAuB;YACzC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,eAAe,EAAE,QAAQ,CAAC,uBAAuB;YACjD,eAAe,EAAE,QAAQ,CAAC,uBAAuB;YACjD,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,WAAW,EAAE,QAAQ,CAAC,mBAAmB;YACzC,OAAO,EAAE,QAAQ,CAAC,UAAU;YAC5B,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/F,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3G,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"chain-config-helper.js","sourceRoot":"","sources":["../../../../src/cli/commands/network/chain-config-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAEnB,MAAM,eAAe,CAAC;AAqCvB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,eAAiD;IAEjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC;YAClC,OAAO,EAAE,eAAe,EAAE,OAAO;YACjC,MAAM,EAAE,eAAe,EAAE,MAAM;YAC/B,uBAAuB,EAAE,eAAe,EAAE,uBAAuB;YACjE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB;YACjE,wBAAwB,EAAE,eAAe,EAAE,wBAAwB;YACnE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB;SAC1D,CAAC,CAAC;QACH,MAAM,cAAc,GAAuB;YACzC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,eAAe,EAAE,QAAQ,CAAC,uBAAuB;YACjD,eAAe,EAAE,QAAQ,CAAC,uBAAuB;YACjD,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,WAAW,EAAE,QAAQ,CAAC,mBAAmB;YACzC,OAAO,EAAE,QAAQ,CAAC,UAAU;YAC5B,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/F,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3G,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function parsePositiveInteger(value: string): number;
2
+ //# sourceMappingURL=parse-positive-integer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-positive-integer.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/parse-positive-integer.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D"}
@@ -0,0 +1,9 @@
1
+ import { InvalidArgumentError } from 'commander';
2
+ export function parsePositiveInteger(value) {
3
+ const parsed = Number(value);
4
+ if (!/^\d+$/.test(value) || !Number.isSafeInteger(parsed) || parsed <= 0) {
5
+ throw new InvalidArgumentError('Must be a positive safe integer.');
6
+ }
7
+ return parsed;
8
+ }
9
+ //# sourceMappingURL=parse-positive-integer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-positive-integer.js","sourceRoot":"","sources":["../../../src/cli/commands/parse-positive-integer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,oBAAoB,CAAC,kCAAkC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { RewardTransactionRecorder } from '@antseed/node/payments';
2
+ export declare class RewardClaimProgress {
3
+ private readonly report;
4
+ private readonly received;
5
+ claimed: bigint;
6
+ transactions: string[];
7
+ constructor(report: (hash: string, kind: 'claim' | 'accounting') => void, received: (hash: string) => Promise<bigint>);
8
+ record: RewardTransactionRecorder;
9
+ failure(message: string): string;
10
+ }
11
+ //# sourceMappingURL=reward-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reward-actions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/reward-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,SAAM;IACb,YAAY,EAAE,MAAM,EAAE,CAAM;gBAGT,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,YAAY,KAAK,IAAI,EAC5D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;IAG9D,MAAM,EAAE,yBAAyB,CAI/B;IAEF,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAIjC"}
@@ -0,0 +1,22 @@
1
+ export class RewardClaimProgress {
2
+ report;
3
+ received;
4
+ claimed = 0n;
5
+ transactions = [];
6
+ constructor(report, received) {
7
+ this.report = report;
8
+ this.received = received;
9
+ }
10
+ record = async (hash, kind) => {
11
+ this.transactions.push(hash);
12
+ this.report(hash, kind);
13
+ if (kind === 'claim')
14
+ this.claimed += await this.received(hash);
15
+ };
16
+ failure(message) {
17
+ if (this.transactions.length === 0)
18
+ return `Claim failed: ${message}`;
19
+ return `Claim incomplete: ${this.transactions.length} transaction(s) already confirmed (shown above). ${message}. Re-run the claim to collect remaining rewards.`;
20
+ }
21
+ }
22
+ //# sourceMappingURL=reward-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reward-actions.js","sourceRoot":"","sources":["../../../src/cli/commands/reward-actions.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IAKX;IACA;IALnB,OAAO,GAAG,EAAE,CAAC;IACb,YAAY,GAAa,EAAE,CAAC;IAE5B,YACmB,MAA4D,EAC5D,QAA2C;QAD3C,WAAM,GAAN,MAAM,CAAsD;QAC5D,aAAQ,GAAR,QAAQ,CAAmC;IAC3D,CAAC;IAEJ,MAAM,GAA8B,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,OAAO,CAAC,OAAe;QACrB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,iBAAiB,OAAO,EAAE,CAAC;QACtE,OAAO,qBAAqB,IAAI,CAAC,YAAY,CAAC,MAAM,oDAAoD,OAAO,kDAAkD,CAAC;IACpK,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contract-clients.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-clients.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/contract-clients.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { createLegacyEmissionsClient, createLegacyStakingClient, requireCryptoConfig } from '../../payment-utils.js';
4
+ const address = '0x0000000000000000000000000000000000000011';
5
+ test('CLI local defaults use the registry nonce rather than the token nonce and preserve overrides', () => {
6
+ const base = { payments: { crypto: { chainId: 'base-local' } } };
7
+ assert.equal(requireCryptoConfig(base).registryContractAddress, '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9');
8
+ assert.equal(requireCryptoConfig({ ...base, payments: { ...base.payments, crypto: { ...base.payments.crypto, registryContractAddress: address } } }).registryContractAddress, address);
9
+ });
10
+ test('legacy factories use V2 and USDC staking with the pre-cutover ledger', () => {
11
+ const config = { payments: { crypto: { chainId: 'base-mainnet', rpcUrl: 'http://127.0.0.1:1' } } };
12
+ const chain = requireCryptoConfig(config);
13
+ const emissions = createLegacyEmissionsClient(config);
14
+ const staking = createLegacyStakingClient(config);
15
+ try {
16
+ assert.equal(emissions.contractAddress, chain.emissionsContractAddress);
17
+ assert.notEqual(emissions.contractAddress, chain.legacyEmissionsContractAddress);
18
+ assert.equal(staking.contractAddress, chain.stakingContractAddress);
19
+ }
20
+ finally {
21
+ emissions.provider.destroy();
22
+ staking.provider.destroy();
23
+ }
24
+ });
25
+ test('legacy factories preserve the active ledger legacy overrides', () => {
26
+ const usage = '0x0000000000000000000000000000000000000021';
27
+ const registry = '0x0000000000000000000000000000000000000022';
28
+ const config = { payments: { crypto: {
29
+ chainId: 'base-local', rpcUrl: 'http://127.0.0.1:1',
30
+ emissionsContractAddress: usage, usageAccountingAddress: usage,
31
+ stakingContractAddress: registry, sellerRegistryAddress: registry,
32
+ legacyEmissionsContractAddress: address, legacyStakingContractAddress: address,
33
+ } } };
34
+ const emissions = createLegacyEmissionsClient(config);
35
+ const staking = createLegacyStakingClient(config);
36
+ try {
37
+ assert.equal(emissions.contractAddress, address);
38
+ assert.equal(staking.contractAddress, address);
39
+ }
40
+ finally {
41
+ emissions.provider.destroy();
42
+ staking.provider.destroy();
43
+ }
44
+ });
45
+ //# sourceMappingURL=contract-clients.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-clients.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/seller/contract-clients.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGrH,MAAM,OAAO,GAAG,4CAA4C,CAAC;AAE7D,IAAI,CAAC,8FAA8F,EAAE,GAAG,EAAE;IACxG,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAmB,CAAC;IAClF,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,4CAA4C,CAAC,CAAC;IAC9G,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,MAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3L,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;IAChF,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAAmB,CAAC;IACpH,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtE,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;IACxE,MAAM,KAAK,GAAG,4CAA4C,CAAC;IAC3D,MAAM,QAAQ,GAAG,4CAA4C,CAAC;IAC9D,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE;gBACnC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB;gBACnD,wBAAwB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK;gBAC9D,sBAAsB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,QAAQ;gBACjE,8BAA8B,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO;aAC/E,EAAE,EAAmB,CAAC;IACvB,MAAM,SAAS,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAY7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAa7D"}
@@ -3,8 +3,9 @@ import { registerSellerSetupCommand } from './setup.js';
3
3
  import { registerSellerStatusCommand } from './status.js';
4
4
  import { registerSellerRegisterCommand } from './register.js';
5
5
  import { registerSellerStakeCommand } from './stake.js';
6
- import { registerSellerEmissionsCommand } from './emissions.js';
7
6
  import { registerSellerDoctorCommand } from './doctor.js';
7
+ import { registerSellerPoolCommand } from './pool.js';
8
+ import { registerSellerRewardsCommand } from './rewards.js';
8
9
  export function registerSellerCommands(program) {
9
10
  const sellerCmd = program
10
11
  .command('seller')
@@ -14,7 +15,8 @@ export function registerSellerCommands(program) {
14
15
  registerSellerStatusCommand(sellerCmd);
15
16
  registerSellerRegisterCommand(sellerCmd);
16
17
  registerSellerStakeCommand(sellerCmd);
17
- registerSellerEmissionsCommand(sellerCmd);
18
+ registerSellerPoolCommand(sellerCmd);
19
+ registerSellerRewardsCommand(sellerCmd);
18
20
  registerSellerDoctorCommand(sellerCmd);
19
21
  }
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/seller/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sDAAsD,CAAC,CAAC;IAEvE,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACvC,6BAA6B,CAAC,SAAS,CAAC,CAAC;IACzC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAC1C,2BAA2B,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/seller/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sDAAsD,CAAC,CAAC;IAEvE,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACvC,6BAA6B,CAAC,SAAS,CAAC,CAAC;IACzC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACrC,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACxC,2BAA2B,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Command } from 'commander';
2
+ import { type SellerPoolPosition } from '@antseed/node/payments';
3
+ export declare function positionState(position: SellerPoolPosition, currentEpoch: number): string;
4
+ export declare function validateStakeEpochs(epochs: number, min: number, max: number): void;
5
+ export declare function registerSellerStarterCommand(legacyCmd: Command): void;
6
+ export declare function registerSellerPoolCommand(sellerCmd: Command): void;
7
+ export interface PoolStakeOptions {
8
+ epochs: number;
9
+ }
10
+ /** Stake ANTS into a seller pool through the primary `seller stake` command. */
11
+ export declare function runPoolStake(global: {
12
+ config: string;
13
+ dataDir: string;
14
+ }, amount: string, options: PoolStakeOptions): Promise<void>;
15
+ //# sourceMappingURL=pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEpF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAMxF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIlF;AAuBD,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA2BrE;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAsFlE;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gFAAgF;AAChF,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAwBf"}