@antseed/node 0.2.105 → 0.2.107
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/billing/index.d.ts +2 -0
- package/dist/billing/index.d.ts.map +1 -0
- package/dist/billing/index.js +2 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/billing/unit.d.ts +3 -0
- package/dist/billing/unit.d.ts.map +1 -0
- package/dist/billing/unit.js +3 -0
- package/dist/billing/unit.js.map +1 -0
- package/dist/buyer-request-handler.d.ts +1 -54
- package/dist/buyer-request-handler.d.ts.map +1 -1
- package/dist/buyer-request-handler.js +2 -379
- package/dist/buyer-request-handler.js.map +1 -1
- package/dist/discovery/announcer.d.ts +7 -1
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +84 -33
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/http-metadata-resolver.d.ts +4 -0
- package/dist/discovery/http-metadata-resolver.d.ts.map +1 -1
- package/dist/discovery/http-metadata-resolver.js +42 -2
- package/dist/discovery/http-metadata-resolver.js.map +1 -1
- package/dist/discovery/index.d.ts +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/metadata-codec.d.ts +4 -4
- package/dist/discovery/metadata-codec.d.ts.map +1 -1
- package/dist/discovery/metadata-codec.js +339 -23
- package/dist/discovery/metadata-codec.js.map +1 -1
- package/dist/discovery/metadata-validator.d.ts +7 -3
- package/dist/discovery/metadata-validator.d.ts.map +1 -1
- package/dist/discovery/metadata-validator.js +139 -8
- package/dist/discovery/metadata-validator.js.map +1 -1
- package/dist/discovery/peer-lookup.d.ts +1 -0
- package/dist/discovery/peer-lookup.d.ts.map +1 -1
- package/dist/discovery/peer-lookup.js +23 -5
- package/dist/discovery/peer-lookup.js.map +1 -1
- package/dist/discovery/peer-metadata.d.ts +2 -90
- package/dist/discovery/peer-metadata.d.ts.map +1 -1
- package/dist/discovery/peer-metadata.js +3 -11
- package/dist/discovery/peer-metadata.js.map +1 -1
- package/dist/discovery/seller-address-resolver.d.ts +1 -49
- package/dist/discovery/seller-address-resolver.d.ts.map +1 -1
- package/dist/discovery/seller-address-resolver.js +2 -114
- package/dist/discovery/seller-address-resolver.js.map +1 -1
- package/dist/errors.d.ts +43 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +73 -0
- package/dist/errors.js.map +1 -0
- package/dist/health/model-health-checker.d.ts +6 -5
- package/dist/health/model-health-checker.d.ts.map +1 -1
- package/dist/health/model-health-checker.js +22 -10
- package/dist/health/model-health-checker.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/seller-provider.d.ts +6 -0
- package/dist/interfaces/seller-provider.d.ts.map +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +28 -0
- package/dist/node.js.map +1 -1
- package/dist/p2p/connection-auth.d.ts +3 -8
- package/dist/p2p/connection-auth.d.ts.map +1 -1
- package/dist/p2p/connection-auth.js +4 -6
- package/dist/p2p/connection-auth.js.map +1 -1
- package/dist/p2p/connection-manager.d.ts +3 -1
- package/dist/p2p/connection-manager.d.ts.map +1 -1
- package/dist/p2p/connection-manager.js.map +1 -1
- package/dist/p2p/identity.d.ts +1 -21
- package/dist/p2p/identity.d.ts.map +1 -1
- package/dist/p2p/identity.js +3 -62
- package/dist/p2p/identity.js.map +1 -1
- package/dist/p2p/message-protocol.d.ts +1 -49
- package/dist/p2p/message-protocol.d.ts.map +1 -1
- package/dist/p2p/message-protocol.js +2 -125
- package/dist/p2p/message-protocol.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts +1 -21
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +2 -220
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/p2p/payment-mux.d.ts +1 -51
- package/dist/p2p/payment-mux.d.ts.map +1 -1
- package/dist/p2p/payment-mux.js +2 -159
- package/dist/p2p/payment-mux.js.map +1 -1
- package/dist/payments/buyer-free-usage-manager.d.ts +1 -43
- package/dist/payments/buyer-free-usage-manager.d.ts.map +1 -1
- package/dist/payments/buyer-free-usage-manager.js +2 -298
- package/dist/payments/buyer-free-usage-manager.js.map +1 -1
- package/dist/payments/buyer-payment-manager.d.ts +1 -277
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +2 -1039
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/buyer-payment-negotiator.d.ts +1 -130
- package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
- package/dist/payments/buyer-payment-negotiator.js +2 -950
- package/dist/payments/buyer-payment-negotiator.js.map +1 -1
- package/dist/payments/chain-config.d.ts.map +1 -1
- package/dist/payments/chain-config.js +13 -2
- package/dist/payments/chain-config.js.map +1 -1
- package/dist/payments/channel-session-state.d.ts +1 -13
- package/dist/payments/channel-session-state.d.ts.map +1 -1
- package/dist/payments/channel-session-state.js +2 -25
- package/dist/payments/channel-session-state.js.map +1 -1
- package/dist/payments/channel-store.d.ts +2 -51
- package/dist/payments/channel-store.d.ts.map +1 -1
- package/dist/payments/channel-store.js +3 -14
- package/dist/payments/channel-store.js.map +1 -1
- package/dist/payments/channel-usage-accounting.d.ts +1 -17
- package/dist/payments/channel-usage-accounting.d.ts.map +1 -1
- package/dist/payments/channel-usage-accounting.js +2 -65
- package/dist/payments/channel-usage-accounting.js.map +1 -1
- package/dist/payments/evm/base-evm-client.d.ts +1 -26
- package/dist/payments/evm/base-evm-client.d.ts.map +1 -1
- package/dist/payments/evm/base-evm-client.js +2 -115
- package/dist/payments/evm/base-evm-client.js.map +1 -1
- package/dist/payments/evm/channels-client.d.ts +1 -85
- package/dist/payments/evm/channels-client.d.ts.map +1 -1
- package/dist/payments/evm/channels-client.js +2 -193
- package/dist/payments/evm/channels-client.js.map +1 -1
- package/dist/payments/evm/deposits-client.d.ts +1 -29
- package/dist/payments/evm/deposits-client.d.ts.map +1 -1
- package/dist/payments/evm/deposits-client.js +2 -67
- package/dist/payments/evm/deposits-client.js.map +1 -1
- package/dist/payments/evm/signatures.d.ts +1 -203
- package/dist/payments/evm/signatures.d.ts.map +1 -1
- package/dist/payments/evm/signatures.js +2 -236
- package/dist/payments/evm/signatures.js.map +1 -1
- package/dist/payments/evm/subpool-client.d.ts +32 -0
- package/dist/payments/evm/subpool-client.d.ts.map +1 -0
- package/dist/payments/evm/subpool-client.js +158 -0
- package/dist/payments/evm/subpool-client.js.map +1 -0
- package/dist/payments/index.d.ts +1 -1
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +1 -1
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/pricing.d.ts +1 -26
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +2 -36
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/seller-payment-manager.d.ts +7 -0
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +27 -2
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/payments/usdc-utils.d.ts +1 -8
- package/dist/payments/usdc-utils.d.ts.map +1 -1
- package/dist/payments/usdc-utils.js +2 -16
- package/dist/payments/usdc-utils.js.map +1 -1
- package/dist/proxy/proxy-mux.d.ts +1 -69
- package/dist/proxy/proxy-mux.d.ts.map +1 -1
- package/dist/proxy/proxy-mux.js +2 -346
- package/dist/proxy/proxy-mux.js.map +1 -1
- package/dist/proxy/request-codec.d.ts +1 -41
- package/dist/proxy/request-codec.d.ts.map +1 -1
- package/dist/proxy/request-codec.js +2 -280
- package/dist/proxy/request-codec.js.map +1 -1
- package/dist/seller-request-handler.d.ts +10 -3
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +112 -17
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/billing.d.ts +2 -0
- package/dist/types/billing.d.ts.map +1 -0
- package/dist/types/billing.js +2 -0
- package/dist/types/billing.js.map +1 -0
- package/dist/types/capability.d.ts +1 -25
- package/dist/types/capability.d.ts.map +1 -1
- package/dist/types/capability.js +2 -1
- package/dist/types/capability.js.map +1 -1
- package/dist/types/connection.d.ts +1 -26
- package/dist/types/connection.d.ts.map +1 -1
- package/dist/types/connection.js +2 -10
- package/dist/types/connection.js.map +1 -1
- package/dist/types/http.d.ts +1 -39
- package/dist/types/http.d.ts.map +1 -1
- package/dist/types/http.js +2 -16
- package/dist/types/http.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/peer.d.ts +9 -31
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/types/peer.js +2 -14
- package/dist/types/peer.js.map +1 -1
- package/dist/types/protocol.d.ts +1 -306
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +2 -81
- package/dist/types/protocol.js.map +1 -1
- package/dist/types/service-api.d.ts +1 -5
- package/dist/types/service-api.d.ts.map +1 -1
- package/dist/types/service-api.js +2 -12
- package/dist/types/service-api.js.map +1 -1
- package/dist/utils/debug.d.ts +1 -5
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +2 -52
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/hex.d.ts +1 -2
- package/dist/utils/hex.d.ts.map +1 -1
- package/dist/utils/hex.js +2 -14
- package/dist/utils/hex.js.map +1 -1
- package/dist/utils/json-codec.d.ts +1 -9
- package/dist/utils/json-codec.d.ts.map +1 -1
- package/dist/utils/json-codec.js +2 -51
- package/dist/utils/json-codec.js.map +1 -1
- package/dist/utils/response-usage.d.ts +1 -9
- package/dist/utils/response-usage.d.ts.map +1 -1
- package/dist/utils/response-usage.js +2 -39
- package/dist/utils/response-usage.js.map +1 -1
- package/dist/verification/codec.d.ts +1 -3
- package/dist/verification/codec.d.ts.map +1 -1
- package/dist/verification/codec.js +2 -37
- package/dist/verification/codec.js.map +1 -1
- package/dist/verification/response-auth.d.ts +1 -30
- package/dist/verification/response-auth.d.ts.map +1 -1
- package/dist/verification/response-auth.js +2 -110
- package/dist/verification/response-auth.js.map +1 -1
- package/dist/verification/verification-mux.d.ts +1 -19
- package/dist/verification/verification-mux.d.ts.map +1 -1
- package/dist/verification/verification-mux.js +2 -99
- package/dist/verification/verification-mux.js.map +1 -1
- package/package.json +4 -2
|
@@ -1,221 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const encoder = new TextEncoder();
|
|
4
|
-
// --- Validation helpers ---
|
|
5
|
-
const MAX_PAYLOAD_SIZE = 65536; // 64KB
|
|
6
|
-
function parsePaymentJson(data) {
|
|
7
|
-
return parseJsonObject(data, {
|
|
8
|
-
maxBytes: MAX_PAYLOAD_SIZE,
|
|
9
|
-
payloadName: 'Payment payload',
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
function requireFiniteNumberField(obj, field) {
|
|
13
|
-
const value = typeof obj[field] === 'number' ? obj[field] : Number(requireStringField(obj, field));
|
|
14
|
-
if (!Number.isFinite(value)) {
|
|
15
|
-
throw new Error(`Payment payload field "${field}" must be a finite number`);
|
|
16
|
-
}
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
// --- Encoders ---
|
|
20
|
-
export function encodeSpendingAuth(payload) {
|
|
21
|
-
return encoder.encode(JSON.stringify(payload));
|
|
22
|
-
}
|
|
23
|
-
export function encodeAuthAck(payload) {
|
|
24
|
-
return encoder.encode(JSON.stringify(payload));
|
|
25
|
-
}
|
|
26
|
-
export function encodeFreeUsageOpen(payload) {
|
|
27
|
-
return encoder.encode(JSON.stringify(payload));
|
|
28
|
-
}
|
|
29
|
-
export function encodeFreeUsageAuth(payload) {
|
|
30
|
-
return encoder.encode(JSON.stringify(payload));
|
|
31
|
-
}
|
|
32
|
-
export function encodeFreeUsageAck(payload) {
|
|
33
|
-
return encoder.encode(JSON.stringify(payload));
|
|
34
|
-
}
|
|
35
|
-
export function encodeNeedFreeUsageAuth(payload) {
|
|
36
|
-
return encoder.encode(JSON.stringify(payload));
|
|
37
|
-
}
|
|
38
|
-
export function encodePaymentRequired(payload) {
|
|
39
|
-
return encoder.encode(JSON.stringify(payload));
|
|
40
|
-
}
|
|
41
|
-
export function encodeNeedAuth(payload) {
|
|
42
|
-
return encoder.encode(JSON.stringify(payload));
|
|
43
|
-
}
|
|
44
|
-
export function encodeCloseChannelRequest(payload) {
|
|
45
|
-
return encoder.encode(JSON.stringify(payload));
|
|
46
|
-
}
|
|
47
|
-
export function encodeCloseChannelResult(payload) {
|
|
48
|
-
return encoder.encode(JSON.stringify(payload));
|
|
49
|
-
}
|
|
50
|
-
// --- Decoders (with runtime validation) ---
|
|
51
|
-
export function decodeSpendingAuth(data) {
|
|
52
|
-
const obj = parsePaymentJson(data);
|
|
53
|
-
const result = {
|
|
54
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
55
|
-
cumulativeAmount: requireStringField(obj, 'cumulativeAmount'),
|
|
56
|
-
metadataHash: requireStringField(obj, 'metadataHash'),
|
|
57
|
-
metadata: typeof obj.metadata === 'string' ? obj.metadata : '',
|
|
58
|
-
spendingAuthSig: requireStringField(obj, 'spendingAuthSig'),
|
|
59
|
-
};
|
|
60
|
-
// Optional reserve params (only on initial auth)
|
|
61
|
-
if (typeof obj.reserveSalt === 'string')
|
|
62
|
-
result.reserveSalt = obj.reserveSalt;
|
|
63
|
-
if (typeof obj.reserveMaxAmount === 'string')
|
|
64
|
-
result.reserveMaxAmount = obj.reserveMaxAmount;
|
|
65
|
-
if (typeof obj.reserveDeadline === 'number')
|
|
66
|
-
result.reserveDeadline = obj.reserveDeadline;
|
|
67
|
-
return result;
|
|
68
|
-
}
|
|
69
|
-
export function decodeAuthAck(data) {
|
|
70
|
-
const obj = parsePaymentJson(data);
|
|
71
|
-
return {
|
|
72
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
export function decodeFreeUsageOpen(data) {
|
|
76
|
-
const obj = parsePaymentJson(data);
|
|
77
|
-
return {
|
|
78
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
79
|
-
salt: requireStringField(obj, 'salt'),
|
|
80
|
-
deadline: requireFiniteNumberField(obj, 'deadline'),
|
|
81
|
-
openSig: requireStringField(obj, 'openSig'),
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
export function decodeFreeUsageAuth(data) {
|
|
85
|
-
const obj = parsePaymentJson(data);
|
|
86
|
-
return {
|
|
87
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
88
|
-
cumulativeInputTokens: requireStringField(obj, 'cumulativeInputTokens'),
|
|
89
|
-
cumulativeOutputTokens: requireStringField(obj, 'cumulativeOutputTokens'),
|
|
90
|
-
sequence: requireStringField(obj, 'sequence'),
|
|
91
|
-
metadataHash: requireStringField(obj, 'metadataHash'),
|
|
92
|
-
metadata: requireStringField(obj, 'metadata'),
|
|
93
|
-
deadline: requireFiniteNumberField(obj, 'deadline'),
|
|
94
|
-
usageSig: requireStringField(obj, 'usageSig'),
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
export function decodeFreeUsageAck(data) {
|
|
98
|
-
const obj = parsePaymentJson(data);
|
|
99
|
-
const result = {
|
|
100
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
101
|
-
};
|
|
102
|
-
if (typeof obj.acceptedSequence === 'string')
|
|
103
|
-
result.acceptedSequence = obj.acceptedSequence;
|
|
104
|
-
return result;
|
|
105
|
-
}
|
|
106
|
-
export function decodeNeedFreeUsageAuth(data) {
|
|
107
|
-
const obj = parsePaymentJson(data);
|
|
108
|
-
const result = {
|
|
109
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
110
|
-
requiredSequence: requireStringField(obj, 'requiredSequence'),
|
|
111
|
-
currentAcceptedSequence: requireStringField(obj, 'currentAcceptedSequence'),
|
|
112
|
-
};
|
|
113
|
-
if (typeof obj.requestId === 'string')
|
|
114
|
-
result.requestId = obj.requestId;
|
|
115
|
-
if (typeof obj.inputTokens === 'string')
|
|
116
|
-
result.inputTokens = obj.inputTokens;
|
|
117
|
-
if (typeof obj.outputTokens === 'string')
|
|
118
|
-
result.outputTokens = obj.outputTokens;
|
|
119
|
-
if (typeof obj.service === 'string')
|
|
120
|
-
result.service = obj.service;
|
|
121
|
-
return result;
|
|
122
|
-
}
|
|
123
|
-
export function decodePaymentRequired(data) {
|
|
124
|
-
const obj = parsePaymentJson(data);
|
|
125
|
-
const result = {
|
|
126
|
-
minBudgetPerRequest: requireStringField(obj, 'minBudgetPerRequest'),
|
|
127
|
-
suggestedAmount: requireStringField(obj, 'suggestedAmount'),
|
|
128
|
-
requestId: requireStringField(obj, 'requestId'),
|
|
129
|
-
};
|
|
130
|
-
if (typeof obj.inputUsdPerMillion === 'number')
|
|
131
|
-
result.inputUsdPerMillion = obj.inputUsdPerMillion;
|
|
132
|
-
if (typeof obj.outputUsdPerMillion === 'number')
|
|
133
|
-
result.outputUsdPerMillion = obj.outputUsdPerMillion;
|
|
134
|
-
if (typeof obj.cachedInputUsdPerMillion === 'number')
|
|
135
|
-
result.cachedInputUsdPerMillion = obj.cachedInputUsdPerMillion;
|
|
136
|
-
if (typeof obj.requiredCumulativeAmount === 'string')
|
|
137
|
-
result.requiredCumulativeAmount = obj.requiredCumulativeAmount;
|
|
138
|
-
if (typeof obj.currentSpent === 'string')
|
|
139
|
-
result.currentSpent = obj.currentSpent;
|
|
140
|
-
if (typeof obj.currentAcceptedCumulative === 'string')
|
|
141
|
-
result.currentAcceptedCumulative = obj.currentAcceptedCumulative;
|
|
142
|
-
if (typeof obj.channelId === 'string')
|
|
143
|
-
result.channelId = obj.channelId;
|
|
144
|
-
if (typeof obj.reserveMaxAmount === 'string')
|
|
145
|
-
result.reserveMaxAmount = obj.reserveMaxAmount;
|
|
146
|
-
if (obj.code === PAYMENT_CODE_CHANNEL_EXHAUSTED)
|
|
147
|
-
result.code = obj.code;
|
|
148
|
-
return result;
|
|
149
|
-
}
|
|
150
|
-
export function decodeNeedAuth(data) {
|
|
151
|
-
const obj = parsePaymentJson(data);
|
|
152
|
-
const result = {
|
|
153
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
154
|
-
requiredCumulativeAmount: requireStringField(obj, 'requiredCumulativeAmount'),
|
|
155
|
-
currentAcceptedCumulative: requireStringField(obj, 'currentAcceptedCumulative'),
|
|
156
|
-
deposit: requireStringField(obj, 'deposit'),
|
|
157
|
-
};
|
|
158
|
-
if (typeof obj.requestId === 'string')
|
|
159
|
-
result.requestId = obj.requestId;
|
|
160
|
-
if (typeof obj.lastRequestCost === 'string')
|
|
161
|
-
result.lastRequestCost = obj.lastRequestCost;
|
|
162
|
-
if (typeof obj.inputTokens === 'string')
|
|
163
|
-
result.inputTokens = obj.inputTokens;
|
|
164
|
-
if (typeof obj.outputTokens === 'string')
|
|
165
|
-
result.outputTokens = obj.outputTokens;
|
|
166
|
-
if (typeof obj.cachedInputTokens === 'string')
|
|
167
|
-
result.cachedInputTokens = obj.cachedInputTokens;
|
|
168
|
-
if (typeof obj.freshInputTokens === 'string')
|
|
169
|
-
result.freshInputTokens = obj.freshInputTokens;
|
|
170
|
-
if (typeof obj.service === 'string')
|
|
171
|
-
result.service = obj.service;
|
|
172
|
-
return result;
|
|
173
|
-
}
|
|
174
|
-
export function decodeCloseChannelRequest(data) {
|
|
175
|
-
const obj = parsePaymentJson(data);
|
|
176
|
-
const result = {
|
|
177
|
-
version: 1,
|
|
178
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
179
|
-
};
|
|
180
|
-
// The four auth fields are only meaningful together — a partial set would
|
|
181
|
-
// leave the seller unable to verify the signature, so drop it wholesale.
|
|
182
|
-
if (typeof obj.cumulativeAmount === 'string'
|
|
183
|
-
&& typeof obj.metadataHash === 'string'
|
|
184
|
-
&& typeof obj.metadata === 'string'
|
|
185
|
-
&& typeof obj.spendingAuthSig === 'string') {
|
|
186
|
-
result.cumulativeAmount = obj.cumulativeAmount;
|
|
187
|
-
result.metadataHash = obj.metadataHash;
|
|
188
|
-
result.metadata = obj.metadata;
|
|
189
|
-
result.spendingAuthSig = obj.spendingAuthSig;
|
|
190
|
-
}
|
|
191
|
-
return result;
|
|
192
|
-
}
|
|
193
|
-
export function decodeCloseChannelResult(data) {
|
|
194
|
-
const obj = parsePaymentJson(data);
|
|
195
|
-
const status = requireStringField(obj, 'status');
|
|
196
|
-
if (status !== 'closed' && status !== 'rejected') {
|
|
197
|
-
throw new Error(`Payment payload field "status" must be "closed" or "rejected"`);
|
|
198
|
-
}
|
|
199
|
-
const result = {
|
|
200
|
-
version: 1,
|
|
201
|
-
channelId: requireStringField(obj, 'channelId'),
|
|
202
|
-
status,
|
|
203
|
-
};
|
|
204
|
-
if (typeof obj.txHash === 'string')
|
|
205
|
-
result.txHash = obj.txHash;
|
|
206
|
-
if (typeof obj.finalAmount === 'string')
|
|
207
|
-
result.finalAmount = obj.finalAmount;
|
|
208
|
-
if (typeof obj.code === 'string' && CLOSE_CHANNEL_REJECT_CODES.includes(obj.code)) {
|
|
209
|
-
result.code = obj.code;
|
|
210
|
-
}
|
|
211
|
-
if (typeof obj.reason === 'string')
|
|
212
|
-
result.reason = obj.reason;
|
|
213
|
-
if (typeof obj.retryAfterMs === 'number' && Number.isFinite(obj.retryAfterMs)) {
|
|
214
|
-
result.retryAfterMs = obj.retryAfterMs;
|
|
215
|
-
}
|
|
216
|
-
if (typeof obj.requiredCumulativeAmount === 'string') {
|
|
217
|
-
result.requiredCumulativeAmount = obj.requiredCumulativeAmount;
|
|
218
|
-
}
|
|
219
|
-
return result;
|
|
220
|
-
}
|
|
1
|
+
// Moved to @antseed/protocol; re-exported here for compatibility.
|
|
2
|
+
export * from '@antseed/protocol/payment-codec';
|
|
221
3
|
//# sourceMappingURL=payment-codec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-codec.js","sourceRoot":"","sources":["../../src/p2p/payment-codec.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"payment-codec.js","sourceRoot":"","sources":["../../src/p2p/payment-codec.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,iCAAiC,CAAC"}
|
|
@@ -1,52 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import type { SpendingAuthPayload, AuthAckPayload, FreeUsageOpenPayload, FreeUsageAuthPayload, FreeUsageAckPayload, NeedFreeUsageAuthPayload, PaymentRequiredPayload, NeedAuthPayload, CloseChannelRequestPayload, CloseChannelResultPayload } from '../types/protocol.js';
|
|
3
|
-
import type { FramedMessage } from '../types/protocol.js';
|
|
4
|
-
export type PaymentMessageHandler<T> = (payload: T) => void | Promise<void>;
|
|
5
|
-
/**
|
|
6
|
-
* Multiplexes payment messages over a PeerConnection.
|
|
7
|
-
* Register handlers for each message type, then call handleFrame()
|
|
8
|
-
* when a payment-range frame arrives.
|
|
9
|
-
*/
|
|
10
|
-
export declare class PaymentMux {
|
|
11
|
-
private _connection;
|
|
12
|
-
private _messageIdCounter;
|
|
13
|
-
private _onSpendingAuth?;
|
|
14
|
-
private _onAuthAck?;
|
|
15
|
-
private _onFreeUsageOpen?;
|
|
16
|
-
private _onFreeUsageAuth?;
|
|
17
|
-
private _onFreeUsageAck?;
|
|
18
|
-
private _onNeedFreeUsageAuth?;
|
|
19
|
-
private _onPaymentRequired?;
|
|
20
|
-
private _onNeedAuth?;
|
|
21
|
-
private _onCloseChannelRequest?;
|
|
22
|
-
private _onCloseChannelResult?;
|
|
23
|
-
constructor(connection: PeerConnection);
|
|
24
|
-
onSpendingAuth(handler: PaymentMessageHandler<SpendingAuthPayload>): void;
|
|
25
|
-
onAuthAck(handler: PaymentMessageHandler<AuthAckPayload>): void;
|
|
26
|
-
onFreeUsageOpen(handler: PaymentMessageHandler<FreeUsageOpenPayload>): void;
|
|
27
|
-
onFreeUsageAuth(handler: PaymentMessageHandler<FreeUsageAuthPayload>): void;
|
|
28
|
-
onFreeUsageAck(handler: PaymentMessageHandler<FreeUsageAckPayload>): void;
|
|
29
|
-
onNeedFreeUsageAuth(handler: PaymentMessageHandler<NeedFreeUsageAuthPayload>): void;
|
|
30
|
-
onPaymentRequired(handler: PaymentMessageHandler<PaymentRequiredPayload>): void;
|
|
31
|
-
onNeedAuth(handler: PaymentMessageHandler<NeedAuthPayload>): void;
|
|
32
|
-
onCloseChannelRequest(handler: PaymentMessageHandler<CloseChannelRequestPayload>): void;
|
|
33
|
-
onCloseChannelResult(handler: PaymentMessageHandler<CloseChannelResultPayload>): void;
|
|
34
|
-
sendSpendingAuth(payload: SpendingAuthPayload): void;
|
|
35
|
-
sendAuthAck(payload: AuthAckPayload): void;
|
|
36
|
-
sendFreeUsageOpen(payload: FreeUsageOpenPayload): void;
|
|
37
|
-
sendFreeUsageAuth(payload: FreeUsageAuthPayload): void;
|
|
38
|
-
sendFreeUsageAck(payload: FreeUsageAckPayload): void;
|
|
39
|
-
sendNeedFreeUsageAuth(payload: NeedFreeUsageAuthPayload): void;
|
|
40
|
-
sendPaymentRequired(payload: PaymentRequiredPayload): void;
|
|
41
|
-
sendNeedAuth(payload: NeedAuthPayload): void;
|
|
42
|
-
sendCloseChannelRequest(payload: CloseChannelRequestPayload): void;
|
|
43
|
-
sendCloseChannelResult(payload: CloseChannelResultPayload): void;
|
|
44
|
-
/**
|
|
45
|
-
* Returns true if this frame is a payment message and was handled.
|
|
46
|
-
*/
|
|
47
|
-
handleFrame(frame: FramedMessage): Promise<boolean>;
|
|
48
|
-
/** Check if a message type is in the payment range (0x50-0x5F). */
|
|
49
|
-
static isPaymentMessage(type: number): boolean;
|
|
50
|
-
private _send;
|
|
51
|
-
}
|
|
1
|
+
export * from '@antseed/buyer-core/payment-mux';
|
|
52
2
|
//# sourceMappingURL=payment-mux.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-mux.d.ts","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payment-mux.d.ts","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"AACA,cAAc,iCAAiC,CAAC"}
|
package/dist/p2p/payment-mux.js
CHANGED
|
@@ -1,160 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import * as codec from './payment-codec.js';
|
|
4
|
-
import { debugLog } from '../utils/debug.js';
|
|
5
|
-
const MESSAGE_TYPE_NAME = {
|
|
6
|
-
[MessageType.SpendingAuth]: 'SpendingAuth',
|
|
7
|
-
[MessageType.AuthAck]: 'AuthAck',
|
|
8
|
-
[MessageType.FreeUsageOpen]: 'FreeUsageOpen',
|
|
9
|
-
[MessageType.FreeUsageAuth]: 'FreeUsageAuth',
|
|
10
|
-
[MessageType.FreeUsageAck]: 'FreeUsageAck',
|
|
11
|
-
[MessageType.NeedFreeUsageAuth]: 'NeedFreeUsageAuth',
|
|
12
|
-
[MessageType.PaymentRequired]: 'PaymentRequired',
|
|
13
|
-
[MessageType.NeedAuth]: 'NeedAuth',
|
|
14
|
-
[MessageType.CloseChannelRequest]: 'CloseChannelRequest',
|
|
15
|
-
[MessageType.CloseChannelResult]: 'CloseChannelResult',
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Multiplexes payment messages over a PeerConnection.
|
|
19
|
-
* Register handlers for each message type, then call handleFrame()
|
|
20
|
-
* when a payment-range frame arrives.
|
|
21
|
-
*/
|
|
22
|
-
export class PaymentMux {
|
|
23
|
-
_connection;
|
|
24
|
-
_messageIdCounter = 0;
|
|
25
|
-
// Handler registrations
|
|
26
|
-
_onSpendingAuth;
|
|
27
|
-
_onAuthAck;
|
|
28
|
-
_onFreeUsageOpen;
|
|
29
|
-
_onFreeUsageAuth;
|
|
30
|
-
_onFreeUsageAck;
|
|
31
|
-
_onNeedFreeUsageAuth;
|
|
32
|
-
_onPaymentRequired;
|
|
33
|
-
_onNeedAuth;
|
|
34
|
-
_onCloseChannelRequest;
|
|
35
|
-
_onCloseChannelResult;
|
|
36
|
-
constructor(connection) {
|
|
37
|
-
this._connection = connection;
|
|
38
|
-
}
|
|
39
|
-
// --- Handler registration ---
|
|
40
|
-
onSpendingAuth(handler) {
|
|
41
|
-
this._onSpendingAuth = handler;
|
|
42
|
-
}
|
|
43
|
-
onAuthAck(handler) {
|
|
44
|
-
this._onAuthAck = handler;
|
|
45
|
-
}
|
|
46
|
-
onFreeUsageOpen(handler) {
|
|
47
|
-
this._onFreeUsageOpen = handler;
|
|
48
|
-
}
|
|
49
|
-
onFreeUsageAuth(handler) {
|
|
50
|
-
this._onFreeUsageAuth = handler;
|
|
51
|
-
}
|
|
52
|
-
onFreeUsageAck(handler) {
|
|
53
|
-
this._onFreeUsageAck = handler;
|
|
54
|
-
}
|
|
55
|
-
onNeedFreeUsageAuth(handler) {
|
|
56
|
-
this._onNeedFreeUsageAuth = handler;
|
|
57
|
-
}
|
|
58
|
-
onPaymentRequired(handler) {
|
|
59
|
-
this._onPaymentRequired = handler;
|
|
60
|
-
}
|
|
61
|
-
onNeedAuth(handler) {
|
|
62
|
-
this._onNeedAuth = handler;
|
|
63
|
-
}
|
|
64
|
-
onCloseChannelRequest(handler) {
|
|
65
|
-
this._onCloseChannelRequest = handler;
|
|
66
|
-
}
|
|
67
|
-
onCloseChannelResult(handler) {
|
|
68
|
-
this._onCloseChannelResult = handler;
|
|
69
|
-
}
|
|
70
|
-
// --- Sending ---
|
|
71
|
-
sendSpendingAuth(payload) {
|
|
72
|
-
this._send(MessageType.SpendingAuth, codec.encodeSpendingAuth(payload));
|
|
73
|
-
}
|
|
74
|
-
sendAuthAck(payload) {
|
|
75
|
-
this._send(MessageType.AuthAck, codec.encodeAuthAck(payload));
|
|
76
|
-
}
|
|
77
|
-
sendFreeUsageOpen(payload) {
|
|
78
|
-
this._send(MessageType.FreeUsageOpen, codec.encodeFreeUsageOpen(payload));
|
|
79
|
-
}
|
|
80
|
-
sendFreeUsageAuth(payload) {
|
|
81
|
-
this._send(MessageType.FreeUsageAuth, codec.encodeFreeUsageAuth(payload));
|
|
82
|
-
}
|
|
83
|
-
sendFreeUsageAck(payload) {
|
|
84
|
-
this._send(MessageType.FreeUsageAck, codec.encodeFreeUsageAck(payload));
|
|
85
|
-
}
|
|
86
|
-
sendNeedFreeUsageAuth(payload) {
|
|
87
|
-
this._send(MessageType.NeedFreeUsageAuth, codec.encodeNeedFreeUsageAuth(payload));
|
|
88
|
-
}
|
|
89
|
-
sendPaymentRequired(payload) {
|
|
90
|
-
this._send(MessageType.PaymentRequired, codec.encodePaymentRequired(payload));
|
|
91
|
-
}
|
|
92
|
-
sendNeedAuth(payload) {
|
|
93
|
-
this._send(MessageType.NeedAuth, codec.encodeNeedAuth(payload));
|
|
94
|
-
}
|
|
95
|
-
sendCloseChannelRequest(payload) {
|
|
96
|
-
this._send(MessageType.CloseChannelRequest, codec.encodeCloseChannelRequest(payload));
|
|
97
|
-
}
|
|
98
|
-
sendCloseChannelResult(payload) {
|
|
99
|
-
this._send(MessageType.CloseChannelResult, codec.encodeCloseChannelResult(payload));
|
|
100
|
-
}
|
|
101
|
-
// --- Receiving ---
|
|
102
|
-
/**
|
|
103
|
-
* Returns true if this frame is a payment message and was handled.
|
|
104
|
-
*/
|
|
105
|
-
async handleFrame(frame) {
|
|
106
|
-
const name = MESSAGE_TYPE_NAME[frame.type];
|
|
107
|
-
if (!name)
|
|
108
|
-
return false;
|
|
109
|
-
debugLog(`[PaymentMux] ← recv ${name} (${frame.payload.length}b)`);
|
|
110
|
-
switch (frame.type) {
|
|
111
|
-
case MessageType.SpendingAuth:
|
|
112
|
-
await this._onSpendingAuth?.(codec.decodeSpendingAuth(frame.payload));
|
|
113
|
-
return true;
|
|
114
|
-
case MessageType.AuthAck:
|
|
115
|
-
await this._onAuthAck?.(codec.decodeAuthAck(frame.payload));
|
|
116
|
-
return true;
|
|
117
|
-
case MessageType.FreeUsageOpen:
|
|
118
|
-
await this._onFreeUsageOpen?.(codec.decodeFreeUsageOpen(frame.payload));
|
|
119
|
-
return true;
|
|
120
|
-
case MessageType.FreeUsageAuth:
|
|
121
|
-
await this._onFreeUsageAuth?.(codec.decodeFreeUsageAuth(frame.payload));
|
|
122
|
-
return true;
|
|
123
|
-
case MessageType.FreeUsageAck:
|
|
124
|
-
await this._onFreeUsageAck?.(codec.decodeFreeUsageAck(frame.payload));
|
|
125
|
-
return true;
|
|
126
|
-
case MessageType.NeedFreeUsageAuth:
|
|
127
|
-
await this._onNeedFreeUsageAuth?.(codec.decodeNeedFreeUsageAuth(frame.payload));
|
|
128
|
-
return true;
|
|
129
|
-
case MessageType.PaymentRequired:
|
|
130
|
-
await this._onPaymentRequired?.(codec.decodePaymentRequired(frame.payload));
|
|
131
|
-
return true;
|
|
132
|
-
case MessageType.NeedAuth:
|
|
133
|
-
await this._onNeedAuth?.(codec.decodeNeedAuth(frame.payload));
|
|
134
|
-
return true;
|
|
135
|
-
case MessageType.CloseChannelRequest:
|
|
136
|
-
await this._onCloseChannelRequest?.(codec.decodeCloseChannelRequest(frame.payload));
|
|
137
|
-
return true;
|
|
138
|
-
case MessageType.CloseChannelResult:
|
|
139
|
-
await this._onCloseChannelResult?.(codec.decodeCloseChannelResult(frame.payload));
|
|
140
|
-
return true;
|
|
141
|
-
default:
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/** Check if a message type is in the payment range (0x50-0x5F). */
|
|
146
|
-
static isPaymentMessage(type) {
|
|
147
|
-
return type >= 0x50 && type <= 0x5f;
|
|
148
|
-
}
|
|
149
|
-
_send(type, payload) {
|
|
150
|
-
const name = MESSAGE_TYPE_NAME[type] ?? `0x${type.toString(16)}`;
|
|
151
|
-
debugLog(`[PaymentMux] → send ${name} (${payload.length}b)`);
|
|
152
|
-
const frame = encodeFrame({
|
|
153
|
-
type,
|
|
154
|
-
messageId: this._messageIdCounter++ & 0xffffffff,
|
|
155
|
-
payload,
|
|
156
|
-
});
|
|
157
|
-
this._connection.send(frame);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
1
|
+
// Moved to @antseed/buyer-core; re-exported for compatibility.
|
|
2
|
+
export * from '@antseed/buyer-core/payment-mux';
|
|
160
3
|
//# sourceMappingURL=payment-mux.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-mux.js","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payment-mux.js","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,cAAc,iCAAiC,CAAC"}
|
|
@@ -1,44 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import type { PaymentMux } from '../p2p/payment-mux.js';
|
|
3
|
-
import type { PeerInfo } from '../types/peer.js';
|
|
4
|
-
import type { FreeUsageAckPayload, NeedFreeUsageAuthPayload } from '../types/protocol.js';
|
|
5
|
-
import type { SellerAddressResolver } from '../discovery/seller-address-resolver.js';
|
|
6
|
-
import { type ChannelStore } from './channel-store.js';
|
|
7
|
-
export interface BuyerFreeUsageConfig {
|
|
8
|
-
chainId: number;
|
|
9
|
-
freeUsageContractAddress: string;
|
|
10
|
-
defaultAuthDurationSecs: number;
|
|
11
|
-
openAckTimeoutMs?: number;
|
|
12
|
-
/** Disable per-service attribution in free-usage metadata. Default: false. */
|
|
13
|
-
disableMetadataV2Services?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare class BuyerFreeUsageManager {
|
|
16
|
-
private readonly _identity;
|
|
17
|
-
private readonly _config;
|
|
18
|
-
private readonly _sellerAddressResolver?;
|
|
19
|
-
private readonly _channelStore?;
|
|
20
|
-
private readonly _domain;
|
|
21
|
-
private readonly _sessions;
|
|
22
|
-
private readonly _sellerLocks;
|
|
23
|
-
private readonly _openAckWaiters;
|
|
24
|
-
private readonly _requestService;
|
|
25
|
-
constructor(identity: Identity, config: BuyerFreeUsageConfig, sellerAddressResolver?: SellerAddressResolver, channelStore?: ChannelStore);
|
|
26
|
-
private get _disableMetadataV2Services();
|
|
27
|
-
private _sanitizeMetadata;
|
|
28
|
-
private _advanceUsageMetadata;
|
|
29
|
-
private _hydrateFromStore;
|
|
30
|
-
trackRequestService(requestId: string, service: string): void;
|
|
31
|
-
prepareOpen(peer: PeerInfo, paymentMux: PaymentMux): Promise<void>;
|
|
32
|
-
waitForOpenAck(sellerPeerId: string, timeoutMs?: number): Promise<void>;
|
|
33
|
-
handleAck(sellerPeerId: string, payload: FreeUsageAckPayload): void;
|
|
34
|
-
onPeerDisconnect(sellerPeerId: string): void;
|
|
35
|
-
handleNeedAuth(sellerPeerId: string, payload: NeedFreeUsageAuthPayload, paymentMux: PaymentMux): Promise<void>;
|
|
36
|
-
private _handleNeedAuthInner;
|
|
37
|
-
private _resolveSellerAddr;
|
|
38
|
-
private _resolveOpenAckWaiters;
|
|
39
|
-
private _rejectOpenAckWaiters;
|
|
40
|
-
private _removeOpenAckWaiter;
|
|
41
|
-
private _retireOtherActiveSessions;
|
|
42
|
-
private _persistSession;
|
|
43
|
-
}
|
|
1
|
+
export * from '@antseed/buyer-core/buyer-free-usage-manager';
|
|
44
2
|
//# sourceMappingURL=buyer-free-usage-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyer-free-usage-manager.d.ts","sourceRoot":"","sources":["../../src/payments/buyer-free-usage-manager.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"buyer-free-usage-manager.d.ts","sourceRoot":"","sources":["../../src/payments/buyer-free-usage-manager.ts"],"names":[],"mappings":"AACA,cAAc,8CAA8C,CAAC"}
|