@antseed/node 0.2.151 → 0.2.153

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 (86) hide show
  1. package/dist/buyer-identity-context.d.ts +2 -0
  2. package/dist/buyer-identity-context.d.ts.map +1 -1
  3. package/dist/buyer-identity-context.js +1 -0
  4. package/dist/buyer-identity-context.js.map +1 -1
  5. package/dist/discovery/announcer.d.ts +2 -0
  6. package/dist/discovery/announcer.d.ts.map +1 -1
  7. package/dist/discovery/announcer.js +11 -9
  8. package/dist/discovery/announcer.js.map +1 -1
  9. package/dist/index.d.ts +10 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +5 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/metering/index.d.ts +1 -1
  14. package/dist/metering/index.d.ts.map +1 -1
  15. package/dist/metering/index.js.map +1 -1
  16. package/dist/metering/storage.d.ts +66 -6
  17. package/dist/metering/storage.d.ts.map +1 -1
  18. package/dist/metering/storage.js +112 -12
  19. package/dist/metering/storage.js.map +1 -1
  20. package/dist/node.d.ts +30 -0
  21. package/dist/node.d.ts.map +1 -1
  22. package/dist/node.js +93 -2
  23. package/dist/node.js.map +1 -1
  24. package/dist/p2p/identity.d.ts +7 -0
  25. package/dist/p2p/identity.d.ts.map +1 -1
  26. package/dist/p2p/identity.js +2 -2
  27. package/dist/p2p/identity.js.map +1 -1
  28. package/dist/payments/evm/ants-token-client.d.ts.map +1 -1
  29. package/dist/payments/evm/ants-token-client.js +3 -9
  30. package/dist/payments/evm/ants-token-client.js.map +1 -1
  31. package/dist/payments/evm/emissions-client.d.ts.map +1 -1
  32. package/dist/payments/evm/emissions-client.js +1 -3
  33. package/dist/payments/evm/emissions-client.js.map +1 -1
  34. package/dist/payments/evm/identity-client.d.ts.map +1 -1
  35. package/dist/payments/evm/identity-client.js +1 -3
  36. package/dist/payments/evm/identity-client.js.map +1 -1
  37. package/dist/payments/evm/seller-pools-client.d.ts +9 -0
  38. package/dist/payments/evm/seller-pools-client.d.ts.map +1 -1
  39. package/dist/payments/evm/seller-pools-client.js +23 -0
  40. package/dist/payments/evm/seller-pools-client.js.map +1 -1
  41. package/dist/payments/free-tier-delegation.d.ts +65 -0
  42. package/dist/payments/free-tier-delegation.d.ts.map +1 -0
  43. package/dist/payments/free-tier-delegation.js +145 -0
  44. package/dist/payments/free-tier-delegation.js.map +1 -0
  45. package/dist/payments/free-tier-program.d.ts +97 -0
  46. package/dist/payments/free-tier-program.d.ts.map +1 -0
  47. package/dist/payments/free-tier-program.js +267 -0
  48. package/dist/payments/free-tier-program.js.map +1 -0
  49. package/dist/payments/free-tier-stake-resolver.d.ts +79 -0
  50. package/dist/payments/free-tier-stake-resolver.d.ts.map +1 -0
  51. package/dist/payments/free-tier-stake-resolver.js +152 -0
  52. package/dist/payments/free-tier-stake-resolver.js.map +1 -0
  53. package/dist/payments/free-tier-stake.d.ts +101 -0
  54. package/dist/payments/free-tier-stake.d.ts.map +1 -0
  55. package/dist/payments/free-tier-stake.js +116 -0
  56. package/dist/payments/free-tier-stake.js.map +1 -0
  57. package/dist/payments/index.d.ts +7 -1
  58. package/dist/payments/index.d.ts.map +1 -1
  59. package/dist/payments/index.js +3 -0
  60. package/dist/payments/index.js.map +1 -1
  61. package/dist/payments/seller-free-tier-limiter.d.ts +124 -6
  62. package/dist/payments/seller-free-tier-limiter.d.ts.map +1 -1
  63. package/dist/payments/seller-free-tier-limiter.js +342 -32
  64. package/dist/payments/seller-free-tier-limiter.js.map +1 -1
  65. package/dist/payments/seller-free-usage-manager.d.ts.map +1 -1
  66. package/dist/payments/seller-free-usage-manager.js +5 -1
  67. package/dist/payments/seller-free-usage-manager.js.map +1 -1
  68. package/dist/seller-request-handler.d.ts.map +1 -1
  69. package/dist/seller-request-handler.js +105 -19
  70. package/dist/seller-request-handler.js.map +1 -1
  71. package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.d.ts +3 -0
  72. package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.d.ts.map +1 -0
  73. package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.js +21 -0
  74. package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.js.map +1 -0
  75. package/dist/storage/migrations/metering/005_add_free_tier_scope.d.ts +8 -0
  76. package/dist/storage/migrations/metering/005_add_free_tier_scope.d.ts.map +1 -0
  77. package/dist/storage/migrations/metering/005_add_free_tier_scope.js +23 -0
  78. package/dist/storage/migrations/metering/005_add_free_tier_scope.js.map +1 -0
  79. package/dist/storage/migrations/metering/index.d.ts.map +1 -1
  80. package/dist/storage/migrations/metering/index.js +3 -1
  81. package/dist/storage/migrations/metering/index.js.map +1 -1
  82. package/dist/utils/file-lock.d.ts +12 -0
  83. package/dist/utils/file-lock.d.ts.map +1 -0
  84. package/dist/utils/file-lock.js +58 -0
  85. package/dist/utils/file-lock.js.map +1 -0
  86. package/package.json +11 -3
@@ -0,0 +1,116 @@
1
+ /** Most positions a seller counts toward one buyer's tier; the strongest are counted first. */
2
+ export const MAX_FREE_TIER_COUNTED_POSITIONS = 64;
3
+ /** Epochs of power a max-locked position keeps (the seller pool's `MAX_STAKE_EPOCHS`). */
4
+ export const FREE_TIER_MAX_LOCK_EPOCHS = 104;
5
+ /** Unix seconds `epoch` starts. */
6
+ export function freeTierEpochStart(view, epoch) {
7
+ return view.genesis + epoch * view.epochDuration;
8
+ }
9
+ /**
10
+ * Power of `positions` at unix second `at`, in ANTS-epochs, as sellers count
11
+ * it: each position from activation, `ants × epochs left` (max lock:
12
+ * `ants × FREE_TIER_MAX_LOCK_EPOCHS`), until it closes or its code expires,
13
+ * summed over the strongest `MAX_FREE_TIER_COUNTED_POSITIONS`.
14
+ * Locks change at epoch boundaries; a code stops counting the second it expires.
15
+ */
16
+ export function freeTierPowerAt(view, positions, at) {
17
+ const epoch = Math.floor((at - view.genesis) / view.epochDuration);
18
+ const counted = [];
19
+ for (const position of positions) {
20
+ if (position.expiresAt !== null && position.expiresAt <= at)
21
+ continue;
22
+ if (epoch < position.startEpoch || (position.closedAtEpoch !== null && epoch >= position.closedAtEpoch))
23
+ continue;
24
+ // A max-lock change made this epoch applies from the next one.
25
+ const locked = epoch <= view.currentEpoch ? position.maxLocked : position.maxLockedNext;
26
+ const power = position.ants * (locked ? FREE_TIER_MAX_LOCK_EPOCHS : Math.max(0, position.endEpoch - epoch));
27
+ if (power > 0)
28
+ counted.push({ id: position.id, power });
29
+ }
30
+ // Sellers count only the strongest positions (ties by lower id), so the projection does too.
31
+ counted.sort((a, b) => (a.power === b.power ? a.id - b.id : b.power - a.power));
32
+ let power = 0;
33
+ for (const position of counted.slice(0, MAX_FREE_TIER_COUNTED_POSITIONS))
34
+ power += position.power;
35
+ return power;
36
+ }
37
+ /** The tier `power` (ANTS-epochs) reaches, or null below the first. */
38
+ export function freeTierTierAt(tiers, power) {
39
+ let match = null;
40
+ for (const tier of tiers) {
41
+ if (power >= tier.minPower)
42
+ match = tier;
43
+ }
44
+ return match;
45
+ }
46
+ /**
47
+ * The future instants counted power can change, in order: each epoch start
48
+ * until the last lock ends, and each code expiry. `epochStart` marks the
49
+ * weekly lock run-down, as opposed to a code expiring.
50
+ */
51
+ function changePoints(view, positions, now) {
52
+ const lastEpoch = Math.min(Math.max(view.currentEpoch, ...positions.map((position) => position.endEpoch)) + 1, view.currentEpoch + 10 * FREE_TIER_MAX_LOCK_EPOCHS);
53
+ const points = new Map();
54
+ for (let epoch = view.currentEpoch + 1; epoch <= lastEpoch; epoch++)
55
+ points.set(freeTierEpochStart(view, epoch), true);
56
+ for (const position of positions) {
57
+ if (position.expiresAt !== null && position.expiresAt > now && !points.has(position.expiresAt))
58
+ points.set(position.expiresAt, false);
59
+ }
60
+ return [...points].filter(([at]) => at > now).sort(([a], [b]) => a - b).map(([at, epochStart]) => ({ at, epochStart }));
61
+ }
62
+ /**
63
+ * The tier `pool`'s stake earns at `now` (unix seconds) under `tiers`, and
64
+ * when it first earns less: power shrinks every epoch as locks run down, and
65
+ * a staker's code stops counting when it expires.
66
+ */
67
+ export function freeTierOutlook(view, pool, tiers, now = Math.floor(Date.now() / 1000)) {
68
+ const positions = pool?.positions ?? [];
69
+ const power = freeTierPowerAt(view, positions, now);
70
+ const tier = freeTierTierAt(tiers, power);
71
+ if (!tier)
72
+ return { power, tier, dropsAt: null, tierAfterDrop: null };
73
+ const rank = (candidate) => candidate ? tiers.indexOf(candidate) : -1;
74
+ for (const { at } of changePoints(view, positions, now)) {
75
+ // Stake still activating can raise power; only a lower tier is a drop.
76
+ const next = freeTierTierAt(tiers, freeTierPowerAt(view, positions, at));
77
+ if (rank(next) < rank(tier))
78
+ return { power, tier, dropsAt: at, tierAfterDrop: next };
79
+ }
80
+ return { power, tier, dropsAt: null, tierAfterDrop: null };
81
+ }
82
+ /**
83
+ * How `pool`'s counted power changes from `now`, following the same rules as
84
+ * `freeTierPowerAt` (only the strongest positions count), so positions that
85
+ * are never counted do not make a steady stake look like it shrinks.
86
+ */
87
+ export function freeTierStakeTrend(view, pool, now = Math.floor(Date.now() / 1000)) {
88
+ const power = freeTierPowerAt(view, pool.positions, now);
89
+ let previousAt = now;
90
+ let steady = power > 0;
91
+ let shrinking = false;
92
+ let endsAt = null;
93
+ // Stake still activating has no power yet, but it ends when its lock does.
94
+ let counting = power > 0;
95
+ for (const { at, epochStart } of changePoints(view, pool.positions, now)) {
96
+ const next = freeTierPowerAt(view, pool.positions, at);
97
+ if (next < power)
98
+ steady = false;
99
+ if (epochStart && !shrinking) {
100
+ // Lock run-down only: compare the positions still counting at `at` before and after the boundary,
101
+ // so a code expiring on the same boundary is not mistaken for shrinking.
102
+ const remaining = pool.positions.filter((position) => position.expiresAt === null || position.expiresAt > at);
103
+ if (freeTierPowerAt(view, remaining, at) < freeTierPowerAt(view, remaining, previousAt))
104
+ shrinking = true;
105
+ }
106
+ previousAt = at;
107
+ if (next > 0)
108
+ counting = true;
109
+ else if (counting) {
110
+ endsAt = at;
111
+ break;
112
+ }
113
+ }
114
+ return { power, steady, shrinking, endsAt };
115
+ }
116
+ //# sourceMappingURL=free-tier-stake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"free-tier-stake.js","sourceRoot":"","sources":["../../src/payments/free-tier-stake.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,13 @@ export type { BuyerFreeUsageConfig } from './buyer-free-usage-manager.js';
59
59
  export { SellerFreeUsageManager } from './seller-free-usage-manager.js';
60
60
  export type { SellerFreeUsageConfig } from './seller-free-usage-manager.js';
61
61
  export { SellerFreeTierLimiter, DEFAULT_FREE_TIER_WINDOW_MS, normalizeRemoteIp } from './seller-free-tier-limiter.js';
62
- export type { SellerFreeTierConfig, FreeTierDecision } from './seller-free-tier-limiter.js';
62
+ export type { SellerFreeTierConfig, SellerFreeTierProgramConfig, FreeTierDecision } from './seller-free-tier-limiter.js';
63
+ export { DEFAULT_FREE_TIER_STAKE_TIERS, FREE_TIER_EPOCHS_PER_YEAR, MAX_FREE_TIER_STAKE_TIERS, encodeFreeTierCapabilities, freeTierServiceScope, parseServiceFreeTierProgram, freeTierProgramForService, isPricedService, FREE_TIER_SERVED_HEADER, FREE_TIER_SERVED_COVERED, freeTierStakeTierForPower, normalizeFreeTierProgram, parseFreeTierProgram, powerToAntsEpochs, validateFreeTierStakeTiers, } from './free-tier-program.js';
64
+ export type { FreeTierBaseLimits, FreeTierProgram, FreeTierStakeTier } from './free-tier-program.js';
65
+ export { DEFAULT_FREE_TIER_DELEGATION_DAYS, FREE_TIER_DELEGATIONS_HEADER, FREE_TIER_DELEGATION_CODE_PREFIX, FREE_TIER_DELEGATION_TYPES, MAX_FREE_TIER_DELEGATIONS, acceptFreeTierDelegationCode, decodeFreeTierDelegationCode, decodeFreeTierDelegationsHeader, encodeFreeTierDelegationCode, encodeFreeTierDelegationsHeader, freeTierDelegationMessage, isFreeTierDelegationSigned, makeFreeTierDelegationDomain, verifyFreeTierDelegations, withFreeTierDelegation, } from './free-tier-delegation.js';
66
+ export type { FreeTierDelegation, VerifiedFreeTierDelegation } from './free-tier-delegation.js';
67
+ export { FreeTierStakeResolver, MAX_FREE_TIER_COUNTED_POSITIONS } from './free-tier-stake-resolver.js';
68
+ export type { FreeTierStakePosition, FreeTierStakeReader, FreeTierStakeResolverOptions, FreeTierStakeStanding } from './free-tier-stake-resolver.js';
63
69
  export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
64
70
  export type { BuyerNegotiatorConfig, Handle402Result, NegotiationEmitter } from './buyer-payment-negotiator.js';
65
71
  export { SellerPaymentManager, DEFAULT_MIN_SETTLE_DELTA_STR } from './seller-payment-manager.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,aAAa,EACb,OAAO,EACP,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGnH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGnH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,2BAA2B,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/H,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC1K,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,YAAY,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAC;AAC5G,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1I,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACjG,YAAY,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC9H,YAAY,EACV,+BAA+B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,yBAAyB,EAC3G,cAAc,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,yBAAyB,GACzF,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,YAAY,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9F,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGhH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACtH,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACzH,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EACL,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AACvG,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGrJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGhH,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -42,6 +42,9 @@ export { BuyerPaymentManager } from './buyer-payment-manager.js';
42
42
  export { BuyerFreeUsageManager } from './buyer-free-usage-manager.js';
43
43
  export { SellerFreeUsageManager } from './seller-free-usage-manager.js';
44
44
  export { SellerFreeTierLimiter, DEFAULT_FREE_TIER_WINDOW_MS, normalizeRemoteIp } from './seller-free-tier-limiter.js';
45
+ export { DEFAULT_FREE_TIER_STAKE_TIERS, FREE_TIER_EPOCHS_PER_YEAR, MAX_FREE_TIER_STAKE_TIERS, encodeFreeTierCapabilities, freeTierServiceScope, parseServiceFreeTierProgram, freeTierProgramForService, isPricedService, FREE_TIER_SERVED_HEADER, FREE_TIER_SERVED_COVERED, freeTierStakeTierForPower, normalizeFreeTierProgram, parseFreeTierProgram, powerToAntsEpochs, validateFreeTierStakeTiers, } from './free-tier-program.js';
46
+ export { DEFAULT_FREE_TIER_DELEGATION_DAYS, FREE_TIER_DELEGATIONS_HEADER, FREE_TIER_DELEGATION_CODE_PREFIX, FREE_TIER_DELEGATION_TYPES, MAX_FREE_TIER_DELEGATIONS, acceptFreeTierDelegationCode, decodeFreeTierDelegationCode, decodeFreeTierDelegationsHeader, encodeFreeTierDelegationCode, encodeFreeTierDelegationsHeader, freeTierDelegationMessage, isFreeTierDelegationSigned, makeFreeTierDelegationDomain, verifyFreeTierDelegations, withFreeTierDelegation, } from './free-tier-delegation.js';
47
+ export { FreeTierStakeResolver, MAX_FREE_TIER_COUNTED_POSITIONS } from './free-tier-stake-resolver.js';
45
48
  // Buyer payment negotiator (402 handling, SpendingAuth flow, cost tracking)
46
49
  export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
47
50
  // Seller payment manager
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,57 @@
1
1
  import { type FreeTierConsumption, type MeteringStorage } from '../metering/storage.js';
2
- export interface SellerFreeTierConfig {
2
+ import { type FreeTierProgram, type FreeTierStakeTier } from './free-tier-program.js';
3
+ import type { FreeTierStakeResolver, FreeTierStakeStanding } from './free-tier-stake-resolver.js';
4
+ /** One free-tier program: base limits and the staked tiers above them. */
5
+ export interface SellerFreeTierProgramConfig {
3
6
  /** Maximum zero-priced requests accepted from one buyer address per window. */
4
7
  maxRequestsPerAddress?: number;
5
8
  /** Maximum zero-priced requests accepted from one remote IP per window. */
6
9
  maxRequestsPerIp?: number;
7
10
  /** Sliding-window duration in milliseconds. Default: 24 hours. */
8
11
  windowMs?: number;
12
+ /**
13
+ * Larger allowances for buyers staked on this seller, by staking power.
14
+ * Default: `DEFAULT_FREE_TIER_STAKE_TIERS`. `[]` turns staked tiers off.
15
+ */
16
+ stakeTiers?: FreeTierStakeTier[];
17
+ /**
18
+ * Serve only buyers whose stake reaches a tier. The base limits are still
19
+ * required: they are the allowance the tier multipliers apply to.
20
+ */
21
+ stakersOnly?: boolean;
22
+ }
23
+ export interface SellerFreeTierConfig extends SellerFreeTierProgramConfig {
24
+ /**
25
+ * Programs for individual services, keyed by announced service id. A listed
26
+ * service uses only its own program and its own counters; the other
27
+ * zero-priced services use the seller-wide program above, or are not limited
28
+ * when there is none. On a priced service the program is a free allowance:
29
+ * requests it covers are served free, and the rest are paid as usual.
30
+ */
31
+ services?: Record<string, SellerFreeTierProgramConfig>;
9
32
  }
10
33
  export interface FreeTierDecision extends FreeTierConsumption {
11
34
  buyerAddress: string;
12
35
  /** Normalized remote IP the decision was keyed on, or null when unknown. */
13
36
  remoteIp: string | null;
37
+ /** Staked standing the decision used, or null for the base limits. */
38
+ standing: FreeTierStakeStanding | null;
39
+ /** Tier the standing earned under this program, or null for the base limits. */
40
+ tier: FreeTierStakeTier | null;
41
+ /** Limit that applied to the binding counter; null when unlimited. */
42
+ limit: number | null;
43
+ /** The program the request was decided under, as advertised. */
44
+ program: FreeTierProgram;
14
45
  }
15
46
  export interface FreeTierConsumeInput {
16
47
  buyerPeerId: string;
17
48
  service: string;
18
49
  /** Raw socket remote address of the buyer connection, if known. */
19
50
  remoteIp?: string | null;
51
+ /** Staked standing from `resolveStanding`; omitted or null applies the base limits. */
52
+ standing?: FreeTierStakeStanding | null;
53
+ /** The service is priced: only its own program applies, never the seller-wide one. */
54
+ paid?: boolean;
20
55
  nowMs?: number;
21
56
  }
22
57
  export declare const DEFAULT_FREE_TIER_WINDOW_MS: number;
@@ -27,17 +62,100 @@ export declare const DEFAULT_FREE_TIER_WINDOW_MS: number;
27
62
  */
28
63
  export declare function normalizeRemoteIp(remoteIp: string | null | undefined): string | null;
29
64
  export declare class SellerFreeTierLimiter {
30
- readonly maxRequestsPerAddress: number | null;
31
- readonly maxRequestsPerIp: number | null;
32
- readonly windowMs: number;
65
+ private readonly _default;
66
+ private readonly _services;
67
+ /** Longest window of any program: usage younger than this is never pruned. */
68
+ private readonly _retentionMs;
33
69
  private readonly _storage;
34
70
  private readonly _inMemoryUsage;
71
+ private _stakeResolver;
72
+ private _chainId;
73
+ /** Last verified delegations per buyer address, in insertion order for eviction. */
74
+ private readonly _delegations;
75
+ /** Priced services, whose allowances never admit a free-usage channel. */
76
+ private _paidServices;
77
+ /** Zero-priced services this seller offers, or null when not told: they decide channel admission. */
78
+ private _freeServices;
35
79
  constructor(config: SellerFreeTierConfig, storage?: MeteringStorage | null);
80
+ /**
81
+ * @deprecated The seller-wide program's per-address limit, or null when it
82
+ * has none (including a limiter with only per-service programs). Use
83
+ * `program(service)` for the limits a service is served under.
84
+ */
85
+ get maxRequestsPerAddress(): number | null;
86
+ /** @deprecated The seller-wide program's per-IP limit, or null. Use `program(service)`. */
87
+ get maxRequestsPerIp(): number | null;
88
+ /** @deprecated The seller-wide program's window, else the default window. Use `program(service)`. */
89
+ get windowMs(): number;
90
+ /**
91
+ * Enable staked tiers. Without a resolver every buyer gets the base limits.
92
+ * `chainId` is the EIP-712 domain delegations are verified against.
93
+ */
94
+ setStakeResolver(resolver: FreeTierStakeResolver | null, chainId?: number): void;
95
+ /** Whether any program has staked tiers, so stake lookups are worth enabling. */
96
+ get hasStakeTiers(): boolean;
97
+ /** Whether staked tiers are live: configured and backed by on-chain reads. */
98
+ get stakeTiersActive(): boolean;
99
+ /**
100
+ * Whether a program applies to `service`: its own, or for a zero-priced
101
+ * service the seller-wide one. A priced service has one only when configured.
102
+ */
103
+ appliesTo(service: string, options?: {
104
+ paid?: boolean;
105
+ }): boolean;
106
+ /**
107
+ * Services that are priced. Their programs are free allowances on paid
108
+ * models, served without a free-usage channel, so channel admission ignores them.
109
+ */
110
+ setPaidServices(services: Iterable<string>): void;
111
+ /** The zero-priced services this seller offers, so channel admission checks exactly their programs. */
112
+ setFreeServices(services: Iterable<string>): void;
113
+ /**
114
+ * The program `service` is served under, or the seller-wide program when
115
+ * `service` is omitted; tiers only when they are enforced. Null when none applies.
116
+ */
117
+ program(service?: string, options?: {
118
+ paid?: boolean;
119
+ }): FreeTierProgram | null;
120
+ /**
121
+ * Peer-metadata capability strings advertising every program: the
122
+ * seller-wide one first, then services in id order. A program that would
123
+ * exceed `budget` strings is skipped whole, never advertised in part.
124
+ */
125
+ capabilities(budget?: number): string[];
126
+ /**
127
+ * Staked standing for this buyer, or null for the base limits. Never throws.
128
+ *
129
+ * `delegationsHeader` is the buyer's `x-antseed-free-tier-delegations`
130
+ * value (from a request or a free usage open), or '' when a request carried
131
+ * none. Verified stakers are remembered for the buyer, so an open from an
132
+ * older buyer, which passes undefined, sees the standing of its requests.
133
+ */
134
+ resolveStanding(buyerPeerId: string, delegationsHeader?: string): Promise<FreeTierStakeStanding | null>;
135
+ private _rememberDelegations;
136
+ /**
137
+ * One line per program: the seller-wide one for free models, then each
138
+ * service's own. A priced service's line is its free allowance before its
139
+ * price applies, as set by `setPaidServices`.
140
+ */
141
+ describePrograms(): string[];
36
142
  describe(): string;
143
+ /** Consume one request for `input.service`. Callers check `appliesTo` first. */
37
144
  consume(input: FreeTierConsumeInput): FreeTierDecision;
38
- /** Check channel-open admission without consuming an inference request. */
39
- check(input: Omit<FreeTierConsumeInput, 'service'>): FreeTierDecision;
145
+ /**
146
+ * Check channel-open admission without consuming an inference request.
147
+ * The channel serves every free service, so it is admitted when the program
148
+ * of some offered free service would still serve the buyer, or when one of
149
+ * them is not limited at all. Otherwise the first refusal (the seller-wide
150
+ * one when it applies) is reported. Without the offered services (see
151
+ * `setFreeServices`), every program of a zero-priced service is considered,
152
+ * and no seller-wide program means some free service is unlimited.
153
+ */
154
+ check(input: Omit<FreeTierConsumeInput, 'service' | 'paid'>): FreeTierDecision | null;
155
+ private _policies;
156
+ private _policyFor;
40
157
  private _evaluate;
158
+ private _bindingLimit;
41
159
  private _evaluateInMemory;
42
160
  private _pruneExpiredBuckets;
43
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seller-free-tier-limiter.d.ts","sourceRoot":"","sources":["../../src/payments/seller-free-tier-limiter.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAG5D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAcpF;AAaD,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;gBAElD,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,eAAe,GAAG,IAAW;IAsBhF,QAAQ,IAAI,MAAM;IAOlB,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB;IAItD,2EAA2E;IAC3E,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG,gBAAgB;IAIrE,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,oBAAoB;CAO7B"}
1
+ {"version":3,"file":"seller-free-tier-limiter.d.ts","sourceRoot":"","sources":["../../src/payments/seller-free-tier-limiter.ts"],"names":[],"mappings":"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"}