@antseed/node 0.2.152 → 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.
- package/dist/buyer-identity-context.d.ts +2 -0
- package/dist/buyer-identity-context.d.ts.map +1 -1
- package/dist/buyer-identity-context.js +1 -0
- package/dist/buyer-identity-context.js.map +1 -1
- package/dist/discovery/announcer.d.ts +2 -0
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +11 -9
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/metering/index.d.ts +1 -1
- package/dist/metering/index.d.ts.map +1 -1
- package/dist/metering/index.js.map +1 -1
- package/dist/metering/storage.d.ts +66 -6
- package/dist/metering/storage.d.ts.map +1 -1
- package/dist/metering/storage.js +112 -12
- package/dist/metering/storage.js.map +1 -1
- package/dist/node.d.ts +30 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +93 -2
- package/dist/node.js.map +1 -1
- package/dist/payments/evm/seller-pools-client.d.ts +9 -0
- package/dist/payments/evm/seller-pools-client.d.ts.map +1 -1
- package/dist/payments/evm/seller-pools-client.js +23 -0
- package/dist/payments/evm/seller-pools-client.js.map +1 -1
- package/dist/payments/free-tier-delegation.d.ts +65 -0
- package/dist/payments/free-tier-delegation.d.ts.map +1 -0
- package/dist/payments/free-tier-delegation.js +145 -0
- package/dist/payments/free-tier-delegation.js.map +1 -0
- package/dist/payments/free-tier-program.d.ts +97 -0
- package/dist/payments/free-tier-program.d.ts.map +1 -0
- package/dist/payments/free-tier-program.js +267 -0
- package/dist/payments/free-tier-program.js.map +1 -0
- package/dist/payments/free-tier-stake-resolver.d.ts +79 -0
- package/dist/payments/free-tier-stake-resolver.d.ts.map +1 -0
- package/dist/payments/free-tier-stake-resolver.js +152 -0
- package/dist/payments/free-tier-stake-resolver.js.map +1 -0
- package/dist/payments/free-tier-stake.d.ts +101 -0
- package/dist/payments/free-tier-stake.d.ts.map +1 -0
- package/dist/payments/free-tier-stake.js +116 -0
- package/dist/payments/free-tier-stake.js.map +1 -0
- package/dist/payments/index.d.ts +7 -1
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +3 -0
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/seller-free-tier-limiter.d.ts +124 -6
- package/dist/payments/seller-free-tier-limiter.d.ts.map +1 -1
- package/dist/payments/seller-free-tier-limiter.js +342 -32
- package/dist/payments/seller-free-tier-limiter.js.map +1 -1
- package/dist/payments/seller-free-usage-manager.d.ts.map +1 -1
- package/dist/payments/seller-free-usage-manager.js +5 -1
- package/dist/payments/seller-free-usage-manager.js.map +1 -1
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +105 -19
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.d.ts +3 -0
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.d.ts.map +1 -0
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.js +21 -0
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.js.map +1 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.d.ts +8 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.d.ts.map +1 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.js +23 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.js.map +1 -0
- package/dist/storage/migrations/metering/index.d.ts.map +1 -1
- package/dist/storage/migrations/metering/index.js +3 -1
- package/dist/storage/migrations/metering/index.js.map +1 -1
- package/dist/utils/file-lock.d.ts +12 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +58 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/package.json +11 -3
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { MAX_FREE_TIER_COUNTED_POSITIONS } from './free-tier-stake.js';
|
|
2
|
+
/** A seller-pool position and its staking power at the current epoch. */
|
|
3
|
+
export interface FreeTierStakePosition {
|
|
4
|
+
id: number;
|
|
5
|
+
/** ANTS wei × epochs of lock remaining. */
|
|
6
|
+
power: bigint;
|
|
7
|
+
}
|
|
8
|
+
/** On-chain reads the staked free tier needs. */
|
|
9
|
+
export interface FreeTierStakeReader {
|
|
10
|
+
/** The seller's agent id in the seller pools, or 0 when it has none. */
|
|
11
|
+
sellerAgentId(): Promise<number>;
|
|
12
|
+
currentEpoch(): Promise<number>;
|
|
13
|
+
/** `staker`'s positions with power in `agentId`'s pool at `epoch`. */
|
|
14
|
+
stakerPositions(staker: string, agentId: number, epoch: number): Promise<FreeTierStakePosition[]>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A buyer whose own stake plus its delegated stake has power in this seller's
|
|
18
|
+
* pool. Which tier that power earns depends on the program a request is under.
|
|
19
|
+
*/
|
|
20
|
+
export interface FreeTierStakeStanding {
|
|
21
|
+
/** Addresses whose stake counts: the buyer and every staker that delegated to it. */
|
|
22
|
+
stakers: string[];
|
|
23
|
+
/** Combined power of every counted position. */
|
|
24
|
+
power: bigint;
|
|
25
|
+
/**
|
|
26
|
+
* Positions the allowance is counted on. Usage follows the positions, not
|
|
27
|
+
* the staker, so transferring a position carries its used allowance along.
|
|
28
|
+
*/
|
|
29
|
+
positionIds: number[];
|
|
30
|
+
}
|
|
31
|
+
export interface FreeTierStakeResolverOptions {
|
|
32
|
+
/** How long a standing and a staker's positions are reused. Default: 10 minutes. */
|
|
33
|
+
cacheTtlMs?: number;
|
|
34
|
+
/** How long a failed lookup is remembered before retrying. Default: 30 seconds. */
|
|
35
|
+
failureTtlMs?: number;
|
|
36
|
+
/** Lookups slower than this fall back to base limits for this request. Default: 3 seconds. */
|
|
37
|
+
lookupTimeoutMs?: number;
|
|
38
|
+
maxEntries?: number;
|
|
39
|
+
now?: () => number;
|
|
40
|
+
}
|
|
41
|
+
/** Most positions one request is counted on; the strongest positions come first. */
|
|
42
|
+
export { MAX_FREE_TIER_COUNTED_POSITIONS };
|
|
43
|
+
/**
|
|
44
|
+
* Resolves a buyer's staked standing on this seller.
|
|
45
|
+
*
|
|
46
|
+
* The buyer's own stake counts, plus the stake of every staker that signed a
|
|
47
|
+
* delegation to it (verified by the caller). Their positions in this seller's
|
|
48
|
+
* pool are pooled: power is summed and usage is counted on every position.
|
|
49
|
+
* Any read failure resolves to no standing, so the buyer keeps the base limits:
|
|
50
|
+
* an RPC outage can only make the free tier stricter, never looser.
|
|
51
|
+
*/
|
|
52
|
+
export declare class FreeTierStakeResolver {
|
|
53
|
+
private readonly _reader;
|
|
54
|
+
private readonly _cacheTtlMs;
|
|
55
|
+
private readonly _failureTtlMs;
|
|
56
|
+
private readonly _lookupTimeoutMs;
|
|
57
|
+
private readonly _maxEntries;
|
|
58
|
+
private readonly _now;
|
|
59
|
+
private readonly _standings;
|
|
60
|
+
private readonly _positions;
|
|
61
|
+
private readonly _inFlight;
|
|
62
|
+
private _agentId;
|
|
63
|
+
private _epoch;
|
|
64
|
+
private _seq;
|
|
65
|
+
constructor(_reader: FreeTierStakeReader, options?: FreeTierStakeResolverOptions);
|
|
66
|
+
/**
|
|
67
|
+
* The staked standing of `buyerAddress` together with `delegatedStakers`
|
|
68
|
+
* (already verified), or null when none of them has power in the pool.
|
|
69
|
+
*/
|
|
70
|
+
resolve(buyerAddress: string, delegatedStakers?: readonly string[]): Promise<FreeTierStakeStanding | null>;
|
|
71
|
+
/** The standing of `stakers`, and when the earliest snapshot it was built from expires. */
|
|
72
|
+
private _lookup;
|
|
73
|
+
private _stakerPositions;
|
|
74
|
+
private _sellerAgentId;
|
|
75
|
+
private _currentEpoch;
|
|
76
|
+
/** Stores `value` unless a read that started later already stored a result, which is kept and returned instead. */
|
|
77
|
+
private _remember;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=free-tier-stake-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-tier-stake-resolver.d.ts","sourceRoot":"","sources":["../../src/payments/free-tier-stake-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,yEAAyE;AACzE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,sEAAsE;IACtE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CACnG;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,qFAAqF;IACrF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AASD,oFAAoF;AACpF,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAE3C;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAc9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+D;IAC1F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0D;IACrF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4D;IACtF,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,IAAI,CAAK;gBAGE,OAAO,EAAE,mBAAmB,EAC7C,OAAO,GAAE,4BAAiC;IAS5C;;;OAGG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAE,SAAS,MAAM,EAAO,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA2CpH,2FAA2F;YAC7E,OAAO;YAmBP,gBAAgB;YAOhB,cAAc;YAOd,aAAa;IAO3B,mHAAmH;IACnH,OAAO,CAAC,SAAS;CAmBlB"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { debugWarn } from '../utils/debug.js';
|
|
2
|
+
import { MAX_FREE_TIER_COUNTED_POSITIONS } from './free-tier-stake.js';
|
|
3
|
+
/** Most positions one request is counted on; the strongest positions come first. */
|
|
4
|
+
export { MAX_FREE_TIER_COUNTED_POSITIONS };
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a buyer's staked standing on this seller.
|
|
7
|
+
*
|
|
8
|
+
* The buyer's own stake counts, plus the stake of every staker that signed a
|
|
9
|
+
* delegation to it (verified by the caller). Their positions in this seller's
|
|
10
|
+
* pool are pooled: power is summed and usage is counted on every position.
|
|
11
|
+
* Any read failure resolves to no standing, so the buyer keeps the base limits:
|
|
12
|
+
* an RPC outage can only make the free tier stricter, never looser.
|
|
13
|
+
*/
|
|
14
|
+
export class FreeTierStakeResolver {
|
|
15
|
+
_reader;
|
|
16
|
+
_cacheTtlMs;
|
|
17
|
+
_failureTtlMs;
|
|
18
|
+
_lookupTimeoutMs;
|
|
19
|
+
_maxEntries;
|
|
20
|
+
_now;
|
|
21
|
+
_standings = new Map();
|
|
22
|
+
_positions = new Map();
|
|
23
|
+
_inFlight = new Map();
|
|
24
|
+
_agentId = null;
|
|
25
|
+
_epoch = null;
|
|
26
|
+
_seq = 0;
|
|
27
|
+
constructor(_reader, options = {}) {
|
|
28
|
+
this._reader = _reader;
|
|
29
|
+
this._cacheTtlMs = options.cacheTtlMs ?? 10 * 60_000;
|
|
30
|
+
this._failureTtlMs = options.failureTtlMs ?? 30_000;
|
|
31
|
+
this._lookupTimeoutMs = options.lookupTimeoutMs ?? 3_000;
|
|
32
|
+
this._maxEntries = options.maxEntries ?? 20_000;
|
|
33
|
+
this._now = options.now ?? Date.now;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The staked standing of `buyerAddress` together with `delegatedStakers`
|
|
37
|
+
* (already verified), or null when none of them has power in the pool.
|
|
38
|
+
*/
|
|
39
|
+
async resolve(buyerAddress, delegatedStakers = []) {
|
|
40
|
+
const stakers = [...new Set([buyerAddress, ...delegatedStakers].map((address) => address.toLowerCase()))];
|
|
41
|
+
const key = stakers.join(',');
|
|
42
|
+
const cached = this._standings.get(key);
|
|
43
|
+
if (cached && cached.expiresAt > this._now())
|
|
44
|
+
return cached.value;
|
|
45
|
+
let pending = this._inFlight.get(key);
|
|
46
|
+
if (!pending) {
|
|
47
|
+
const seq = ++this._seq;
|
|
48
|
+
const lookup = this._lookup(stakers, seq)
|
|
49
|
+
.then(({ value: standing, expiresAt }) => {
|
|
50
|
+
// A standing never outlives the stake snapshots it was derived from.
|
|
51
|
+
return this._remember(this._standings, key, standing, expiresAt, seq).value;
|
|
52
|
+
})
|
|
53
|
+
.catch((err) => {
|
|
54
|
+
debugWarn(`[FreeTierStake] Stake lookup failed for ${stakers[0]}: ${err instanceof Error ? err.message : err}`);
|
|
55
|
+
// A lookup that timed out and was replaced must not overwrite its replacement's result.
|
|
56
|
+
this._remember(this._standings, key, null, this._now() + this._failureTtlMs, seq);
|
|
57
|
+
return null;
|
|
58
|
+
})
|
|
59
|
+
.finally(() => {
|
|
60
|
+
if (this._inFlight.get(key) === lookup)
|
|
61
|
+
this._inFlight.delete(key);
|
|
62
|
+
});
|
|
63
|
+
pending = lookup;
|
|
64
|
+
this._inFlight.set(key, pending);
|
|
65
|
+
}
|
|
66
|
+
const current = pending;
|
|
67
|
+
let timer;
|
|
68
|
+
const timeout = new Promise((resolve) => {
|
|
69
|
+
timer = setTimeout(() => {
|
|
70
|
+
// A stalled lookup must not block the next request from trying again.
|
|
71
|
+
if (this._inFlight.get(key) === current)
|
|
72
|
+
this._inFlight.delete(key);
|
|
73
|
+
resolve(null);
|
|
74
|
+
}, this._lookupTimeoutMs);
|
|
75
|
+
});
|
|
76
|
+
try {
|
|
77
|
+
return await Promise.race([pending, timeout]);
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
clearTimeout(timer);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** The standing of `stakers`, and when the earliest snapshot it was built from expires. */
|
|
84
|
+
async _lookup(stakers, seq) {
|
|
85
|
+
const agentId = await this._sellerAgentId(seq);
|
|
86
|
+
if (agentId.value <= 0)
|
|
87
|
+
return { value: null, expiresAt: agentId.expiresAt };
|
|
88
|
+
const epoch = await this._currentEpoch(seq);
|
|
89
|
+
const holdings = await Promise.all(stakers.map((staker) => this._stakerPositions(staker, agentId.value, epoch.value, seq)));
|
|
90
|
+
const expiresAt = Math.min(agentId.expiresAt, epoch.expiresAt, ...holdings.map((entry) => entry.expiresAt));
|
|
91
|
+
const unique = new Map();
|
|
92
|
+
for (const position of holdings.flatMap((entry) => entry.value))
|
|
93
|
+
unique.set(position.id, position);
|
|
94
|
+
// Only the positions that are charged for usage may count toward a tier,
|
|
95
|
+
// so stake left out by the cap cannot back a second, untouched allowance.
|
|
96
|
+
const counted = [...unique.values()]
|
|
97
|
+
.sort((a, b) => (a.power === b.power ? a.id - b.id : a.power > b.power ? -1 : 1))
|
|
98
|
+
.slice(0, MAX_FREE_TIER_COUNTED_POSITIONS);
|
|
99
|
+
const power = counted.reduce((sum, position) => sum + position.power, 0n);
|
|
100
|
+
if (power <= 0n)
|
|
101
|
+
return { value: null, expiresAt };
|
|
102
|
+
return { value: { stakers, power, positionIds: counted.map((position) => position.id) }, expiresAt };
|
|
103
|
+
}
|
|
104
|
+
async _stakerPositions(staker, agentId, epoch, seq) {
|
|
105
|
+
const cached = this._positions.get(staker);
|
|
106
|
+
if (cached && cached.expiresAt > this._now())
|
|
107
|
+
return cached;
|
|
108
|
+
const positions = await this._reader.stakerPositions(staker, agentId, epoch);
|
|
109
|
+
return this._remember(this._positions, staker, positions, this._now() + this._cacheTtlMs, seq);
|
|
110
|
+
}
|
|
111
|
+
async _sellerAgentId(seq) {
|
|
112
|
+
if (this._agentId && this._agentId.expiresAt > this._now())
|
|
113
|
+
return this._agentId;
|
|
114
|
+
const agentId = await this._reader.sellerAgentId();
|
|
115
|
+
this._agentId = newer(this._agentId, { value: agentId, expiresAt: this._now() + this._cacheTtlMs, seq });
|
|
116
|
+
return this._agentId;
|
|
117
|
+
}
|
|
118
|
+
async _currentEpoch(seq) {
|
|
119
|
+
if (this._epoch && this._epoch.expiresAt > this._now())
|
|
120
|
+
return this._epoch;
|
|
121
|
+
const epoch = await this._reader.currentEpoch();
|
|
122
|
+
this._epoch = newer(this._epoch, { value: epoch, expiresAt: this._now() + this._cacheTtlMs, seq });
|
|
123
|
+
return this._epoch;
|
|
124
|
+
}
|
|
125
|
+
/** Stores `value` unless a read that started later already stored a result, which is kept and returned instead. */
|
|
126
|
+
_remember(cache, key, value, expiresAt, seq) {
|
|
127
|
+
const existing = cache.get(key);
|
|
128
|
+
if (existing && existing.seq > seq)
|
|
129
|
+
return existing;
|
|
130
|
+
cache.delete(key);
|
|
131
|
+
if (cache.size >= this._maxEntries) {
|
|
132
|
+
const now = this._now();
|
|
133
|
+
for (const [entryKey, entry] of cache) {
|
|
134
|
+
if (entry.expiresAt <= now)
|
|
135
|
+
cache.delete(entryKey);
|
|
136
|
+
}
|
|
137
|
+
while (cache.size >= this._maxEntries) {
|
|
138
|
+
const oldest = cache.keys().next().value;
|
|
139
|
+
if (oldest === undefined)
|
|
140
|
+
break;
|
|
141
|
+
cache.delete(oldest);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const entry = { value, expiresAt, seq };
|
|
145
|
+
cache.set(key, entry);
|
|
146
|
+
return entry;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function newer(existing, candidate) {
|
|
150
|
+
return existing && existing.seq > candidate.seq ? existing : candidate;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=free-tier-stake-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-tier-stake-resolver.js","sourceRoot":"","sources":["../../src/payments/free-tier-stake-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Staked free-tier projections: the power a buyer's counted seller-pool stake
|
|
3
|
+
* has at a given time, the tier it earns under a program, and when that
|
|
4
|
+
* drops. Pure and browser-safe (no ethers), so desktop, the gateway console
|
|
5
|
+
* and the CLI share one implementation; re-exported from
|
|
6
|
+
* `@antseed/node/free-tier-program`.
|
|
7
|
+
*/
|
|
8
|
+
import type { FreeTierStakeTier } from './free-tier-program.js';
|
|
9
|
+
/** Most positions a seller counts toward one buyer's tier; the strongest are counted first. */
|
|
10
|
+
export declare const MAX_FREE_TIER_COUNTED_POSITIONS = 64;
|
|
11
|
+
/** Epochs of power a max-locked position keeps (the seller pool's `MAX_STAKE_EPOCHS`). */
|
|
12
|
+
export declare const FREE_TIER_MAX_LOCK_EPOCHS = 104;
|
|
13
|
+
/**
|
|
14
|
+
* One seller-pool position whose stake counts toward a buyer's free tier: the
|
|
15
|
+
* buyer's own, or a staker's that shared it with a code.
|
|
16
|
+
*/
|
|
17
|
+
export interface FreeTierStakePositionView {
|
|
18
|
+
id: number;
|
|
19
|
+
staker: string;
|
|
20
|
+
/** Weighted ANTS (whole ANTS, may be fractional); power is this × epochs of lock remaining. */
|
|
21
|
+
ants: number;
|
|
22
|
+
/** First epoch the position has power (it activates a week or more after staking). */
|
|
23
|
+
startEpoch: number;
|
|
24
|
+
/** Epoch the lock ends; power reaches zero then (not while max-locked). */
|
|
25
|
+
endEpoch: number;
|
|
26
|
+
/** Epoch a moved, split or merged position stops counting (its replacements take over), or null. */
|
|
27
|
+
closedAtEpoch: number | null;
|
|
28
|
+
/** Max lock is on this epoch: power is `ants × FREE_TIER_MAX_LOCK_EPOCHS`. */
|
|
29
|
+
maxLocked: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Max lock is on from the next epoch. Turning it on or off takes effect at
|
|
32
|
+
* the next epoch, so this can differ from `maxLocked` until then.
|
|
33
|
+
*/
|
|
34
|
+
maxLockedNext: boolean;
|
|
35
|
+
/** Unix seconds the staker's code expires, or null for the buyer's own stake. */
|
|
36
|
+
expiresAt: number | null;
|
|
37
|
+
}
|
|
38
|
+
/** A buyer's stake in one seller's pool, as that seller's staked free tier counts it. */
|
|
39
|
+
export interface FreeTierPoolStakeView {
|
|
40
|
+
agentId: number;
|
|
41
|
+
positions: FreeTierStakePositionView[];
|
|
42
|
+
}
|
|
43
|
+
/** Every pool a buyer has counted stake in, and the epoch clock to date its changes. */
|
|
44
|
+
export interface FreeTierStakeView {
|
|
45
|
+
currentEpoch: number;
|
|
46
|
+
/** Unix seconds epoch 0 starts. */
|
|
47
|
+
genesis: number;
|
|
48
|
+
/** Seconds per epoch. */
|
|
49
|
+
epochDuration: number;
|
|
50
|
+
pools: FreeTierPoolStakeView[];
|
|
51
|
+
}
|
|
52
|
+
/** Unix seconds `epoch` starts. */
|
|
53
|
+
export declare function freeTierEpochStart(view: Pick<FreeTierStakeView, 'genesis' | 'epochDuration'>, epoch: number): number;
|
|
54
|
+
/**
|
|
55
|
+
* Power of `positions` at unix second `at`, in ANTS-epochs, as sellers count
|
|
56
|
+
* it: each position from activation, `ants × epochs left` (max lock:
|
|
57
|
+
* `ants × FREE_TIER_MAX_LOCK_EPOCHS`), until it closes or its code expires,
|
|
58
|
+
* summed over the strongest `MAX_FREE_TIER_COUNTED_POSITIONS`.
|
|
59
|
+
* Locks change at epoch boundaries; a code stops counting the second it expires.
|
|
60
|
+
*/
|
|
61
|
+
export declare function freeTierPowerAt(view: Pick<FreeTierStakeView, 'currentEpoch' | 'genesis' | 'epochDuration'>, positions: readonly FreeTierStakePositionView[], at: number): number;
|
|
62
|
+
/** The tier `power` (ANTS-epochs) reaches, or null below the first. */
|
|
63
|
+
export declare function freeTierTierAt(tiers: readonly FreeTierStakeTier[], power: number): FreeTierStakeTier | null;
|
|
64
|
+
/** Where a buyer's stake in one pool stands against a program's tiers, and when that changes. */
|
|
65
|
+
export interface FreeTierOutlook {
|
|
66
|
+
/** Power now, in ANTS-epochs. */
|
|
67
|
+
power: number;
|
|
68
|
+
tier: FreeTierStakeTier | null;
|
|
69
|
+
/** Unix seconds the stake first earns a lower tier, or null when it holds (max lock) or is below every tier. */
|
|
70
|
+
dropsAt: number | null;
|
|
71
|
+
/** The tier from `dropsAt` on; null means below every tier. */
|
|
72
|
+
tierAfterDrop: FreeTierStakeTier | null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The tier `pool`'s stake earns at `now` (unix seconds) under `tiers`, and
|
|
76
|
+
* when it first earns less: power shrinks every epoch as locks run down, and
|
|
77
|
+
* a staker's code stops counting when it expires.
|
|
78
|
+
*/
|
|
79
|
+
export declare function freeTierOutlook(view: Pick<FreeTierStakeView, 'currentEpoch' | 'genesis' | 'epochDuration'>, pool: {
|
|
80
|
+
readonly positions: readonly FreeTierStakePositionView[];
|
|
81
|
+
} | null | undefined, tiers: readonly FreeTierStakeTier[], now?: number): FreeTierOutlook;
|
|
82
|
+
/** How a pool's counted stake changes from now: steady, or shrinking weekly until a date. */
|
|
83
|
+
export interface FreeTierStakeTrend {
|
|
84
|
+
/** Power now, in ANTS-epochs. */
|
|
85
|
+
power: number;
|
|
86
|
+
/** Counted power never drops from here (max lock, no code expiring): it holds. */
|
|
87
|
+
steady: boolean;
|
|
88
|
+
/** Counted power drops at some epoch boundary as a lock runs down (not only when a code expires). */
|
|
89
|
+
shrinking: boolean;
|
|
90
|
+
/** Unix seconds counted power reaches zero, or null when it never does. */
|
|
91
|
+
endsAt: number | null;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* How `pool`'s counted power changes from `now`, following the same rules as
|
|
95
|
+
* `freeTierPowerAt` (only the strongest positions count), so positions that
|
|
96
|
+
* are never counted do not make a steady stake look like it shrinks.
|
|
97
|
+
*/
|
|
98
|
+
export declare function freeTierStakeTrend(view: Pick<FreeTierStakeView, 'currentEpoch' | 'genesis' | 'epochDuration'>, pool: {
|
|
99
|
+
readonly positions: readonly FreeTierStakePositionView[];
|
|
100
|
+
}, now?: number): FreeTierStakeTrend;
|
|
101
|
+
//# sourceMappingURL=free-tier-stake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-tier-stake.d.ts","sourceRoot":"","sources":["../../src/payments/free-tier-stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/dist/payments/index.d.ts
CHANGED
|
@@ -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":"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"}
|
package/dist/payments/index.js
CHANGED
|
@@ -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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"}
|