@toon-protocol/connector 3.20.1 → 3.29.0
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/README.md +6 -6
- package/dist/auth/rfc9421/content-digest.d.ts +16 -0
- package/dist/auth/rfc9421/content-digest.d.ts.map +1 -0
- package/dist/auth/rfc9421/content-digest.js +35 -0
- package/dist/auth/rfc9421/content-digest.js.map +1 -0
- package/dist/auth/rfc9421/index.d.ts +9 -0
- package/dist/auth/rfc9421/index.d.ts.map +1 -0
- package/dist/auth/rfc9421/index.js +24 -0
- package/dist/auth/rfc9421/index.js.map +1 -0
- package/dist/auth/rfc9421/sign.d.ts +20 -0
- package/dist/auth/rfc9421/sign.d.ts.map +1 -0
- package/dist/auth/rfc9421/sign.js +43 -0
- package/dist/auth/rfc9421/sign.js.map +1 -0
- package/dist/auth/rfc9421/signature-base.d.ts +21 -0
- package/dist/auth/rfc9421/signature-base.d.ts.map +1 -0
- package/dist/auth/rfc9421/signature-base.js +57 -0
- package/dist/auth/rfc9421/signature-base.js.map +1 -0
- package/dist/auth/rfc9421/verify.d.ts +19 -0
- package/dist/auth/rfc9421/verify.d.ts.map +1 -0
- package/dist/auth/rfc9421/verify.js +215 -0
- package/dist/auth/rfc9421/verify.js.map +1 -0
- package/dist/btp/btp-client-manager.d.ts +1 -1
- package/dist/btp/btp-client-manager.d.ts.map +1 -1
- package/dist/btp/btp-client.d.ts +2 -2
- package/dist/btp/btp-client.d.ts.map +1 -1
- package/dist/btp/btp-client.js.map +1 -1
- package/dist/cli/admin-client-factory.d.ts +10 -0
- package/dist/cli/admin-client-factory.d.ts.map +1 -0
- package/dist/cli/admin-client-factory.js +33 -0
- package/dist/cli/admin-client-factory.js.map +1 -0
- package/dist/cli/commands/app.d.ts +6 -0
- package/dist/cli/commands/app.d.ts.map +1 -0
- package/dist/cli/commands/app.js +132 -0
- package/dist/cli/commands/app.js.map +1 -0
- package/dist/cli/commands/route.d.ts +3 -0
- package/dist/cli/commands/route.d.ts.map +1 -0
- package/dist/cli/commands/route.js +63 -0
- package/dist/cli/commands/route.js.map +1 -0
- package/dist/cli/commands/up.d.ts +3 -0
- package/dist/cli/commands/up.d.ts.map +1 -0
- package/dist/cli/commands/up.js +27 -0
- package/dist/cli/commands/up.js.map +1 -0
- package/dist/cli/index.js +32 -16
- package/dist/cli/index.js.map +1 -1
- package/dist/client/connector-admin-client.d.ts +17 -12
- package/dist/client/connector-admin-client.d.ts.map +1 -1
- package/dist/client/connector-admin-client.js.map +1 -1
- package/dist/config/config-loader.d.ts +0 -3
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +41 -161
- package/dist/config/config-loader.js.map +1 -1
- package/dist/config/environment-validator.js +6 -6
- package/dist/config/environment-validator.js.map +1 -1
- package/dist/config/types.d.ts +49 -17
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +93 -1
- package/dist/config/types.js.map +1 -1
- package/dist/core/connector-node.d.ts +13 -1
- package/dist/core/connector-node.d.ts.map +1 -1
- package/dist/core/connector-node.js +279 -171
- package/dist/core/connector-node.js.map +1 -1
- package/dist/core/handlers/http-proxy-handler.d.ts +47 -0
- package/dist/core/handlers/http-proxy-handler.d.ts.map +1 -0
- package/dist/core/handlers/http-proxy-handler.js +223 -0
- package/dist/core/handlers/http-proxy-handler.js.map +1 -0
- package/dist/core/local-delivery-client.d.ts +1 -0
- package/dist/core/local-delivery-client.d.ts.map +1 -1
- package/dist/core/local-delivery-client.js +25 -9
- package/dist/core/local-delivery-client.js.map +1 -1
- package/dist/core/packet-handler.d.ts +10 -0
- package/dist/core/packet-handler.d.ts.map +1 -1
- package/dist/core/packet-handler.js +121 -8
- package/dist/core/packet-handler.js.map +1 -1
- package/dist/core/payment-handler.d.ts +2 -1
- package/dist/core/payment-handler.d.ts.map +1 -1
- package/dist/core/payment-handler.js +24 -0
- package/dist/core/payment-handler.js.map +1 -1
- package/dist/core/registry-db-schema.d.ts +2 -1
- package/dist/core/registry-db-schema.d.ts.map +1 -1
- package/dist/core/registry-db-schema.js +9 -0
- package/dist/core/registry-db-schema.js.map +1 -1
- package/dist/core/registry-store.d.ts +1 -0
- package/dist/core/registry-store.d.ts.map +1 -1
- package/dist/core/registry-store.js +6 -4
- package/dist/core/registry-store.js.map +1 -1
- package/dist/core/route-upstream-registry.d.ts +17 -0
- package/dist/core/route-upstream-registry.d.ts.map +1 -0
- package/dist/core/route-upstream-registry.js +51 -0
- package/dist/core/route-upstream-registry.js.map +1 -0
- package/dist/discovery/ilp-peer-info-event.d.ts +22 -0
- package/dist/discovery/ilp-peer-info-event.d.ts.map +1 -0
- package/dist/discovery/ilp-peer-info-event.js +21 -0
- package/dist/discovery/ilp-peer-info-event.js.map +1 -0
- package/dist/discovery/index.d.ts +8 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +16 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/self-announce-builder.d.ts +14 -0
- package/dist/discovery/self-announce-builder.d.ts.map +1 -0
- package/dist/discovery/self-announce-builder.js +88 -0
- package/dist/discovery/self-announce-builder.js.map +1 -0
- package/dist/discovery/self-announce-publish.d.ts +17 -0
- package/dist/discovery/self-announce-publish.d.ts.map +1 -0
- package/dist/discovery/self-announce-publish.js +35 -0
- package/dist/discovery/self-announce-publish.js.map +1 -0
- package/dist/discovery/self-announce-service.d.ts +36 -0
- package/dist/discovery/self-announce-service.d.ts.map +1 -0
- package/dist/discovery/self-announce-service.js +118 -0
- package/dist/discovery/self-announce-service.js.map +1 -0
- package/dist/http/admin-api-inventory.d.ts.map +1 -1
- package/dist/http/admin-api-inventory.js +0 -42
- package/dist/http/admin-api-inventory.js.map +1 -1
- package/dist/http/admin-api.d.ts +29 -13
- package/dist/http/admin-api.d.ts.map +1 -1
- package/dist/http/admin-api.js +141 -76
- package/dist/http/admin-api.js.map +1 -1
- package/dist/http/admin-server.d.ts +3 -4
- package/dist/http/admin-server.d.ts.map +1 -1
- package/dist/http/admin-server.js +4 -6
- package/dist/http/admin-server.js.map +1 -1
- package/dist/http/ilp-http-adapter.d.ts +10 -0
- package/dist/http/ilp-http-adapter.d.ts.map +1 -1
- package/dist/http/ilp-http-adapter.js +118 -0
- package/dist/http/ilp-http-adapter.js.map +1 -1
- package/dist/http/types.d.ts +1 -1
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/x402-greeting.d.ts +46 -0
- package/dist/http/x402-greeting.d.ts.map +1 -0
- package/dist/http/x402-greeting.js +77 -0
- package/dist/http/x402-greeting.js.map +1 -0
- package/dist/lib.d.ts +15 -4
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +42 -1
- package/dist/lib.js.map +1 -1
- package/dist/main.d.ts +3 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +3 -1
- package/dist/main.js.map +1 -1
- package/dist/settlement/channel-manager.d.ts.map +1 -1
- package/dist/settlement/channel-manager.js +1 -1
- package/dist/settlement/channel-manager.js.map +1 -1
- package/dist/settlement/provider/solana-payment-channel-provider.d.ts.map +1 -1
- package/dist/settlement/provider/solana-payment-channel-provider.js +1 -1
- package/dist/settlement/provider/solana-payment-channel-provider.js.map +1 -1
- package/dist/settlement/solana-payment-channel-sdk.d.ts +1 -1
- package/dist/settlement/solana-payment-channel-sdk.d.ts.map +1 -1
- package/dist/settlement/solana-payment-channel-sdk.js +2 -2
- package/dist/settlement/solana-payment-channel-sdk.js.map +1 -1
- package/dist/transport/http-peer-transport.d.ts +46 -0
- package/dist/transport/http-peer-transport.d.ts.map +1 -0
- package/dist/transport/http-peer-transport.js +185 -0
- package/dist/transport/http-peer-transport.js.map +1 -0
- package/dist/transport/index.d.ts +0 -3
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +1 -8
- package/dist/transport/index.js.map +1 -1
- package/dist/wallet/mnemonic-keys.d.ts +15 -0
- package/dist/wallet/mnemonic-keys.d.ts.map +1 -0
- package/dist/wallet/mnemonic-keys.js +150 -0
- package/dist/wallet/mnemonic-keys.js.map +1 -0
- package/package.json +11 -8
- package/dist/transport/hs-desc-monitor.d.ts +0 -12
- package/dist/transport/hs-desc-monitor.d.ts.map +0 -1
- package/dist/transport/hs-desc-monitor.js +0 -105
- package/dist/transport/hs-desc-monitor.js.map +0 -1
- package/dist/transport/managed-anon-client.d.ts +0 -93
- package/dist/transport/managed-anon-client.d.ts.map +0 -1
- package/dist/transport/managed-anon-client.js +0 -522
- package/dist/transport/managed-anon-client.js.map +0 -1
- package/dist/transport/socks-transport-provider.d.ts +0 -29
- package/dist/transport/socks-transport-provider.d.ts.map +0 -1
- package/dist/transport/socks-transport-provider.js +0 -136
- package/dist/transport/socks-transport-provider.js.map +0 -1
- package/dist/transport/socks-url.d.ts +0 -6
- package/dist/transport/socks-url.d.ts.map +0 -1
- package/dist/transport/socks-url.js +0 -29
- package/dist/transport/socks-url.js.map +0 -1
- package/dist/transport/socks5-connect.d.ts +0 -12
- package/dist/transport/socks5-connect.d.ts.map +0 -1
- package/dist/transport/socks5-connect.js +0 -89
- package/dist/transport/socks5-connect.js.map +0 -1
|
@@ -10,7 +10,6 @@ import type { SettlementMonitor } from '../settlement/settlement-monitor';
|
|
|
10
10
|
import type { ClaimReceiver } from '../settlement/claim-receiver';
|
|
11
11
|
import type { PacketSenderFn, IsReadyFn } from './ilp-send-handler';
|
|
12
12
|
import type { IlpMetricsRegistry } from '../observability/metrics-registry';
|
|
13
|
-
import type { ManagedAnonClient } from '../transport/managed-anon-client';
|
|
14
13
|
export declare class AdminServer {
|
|
15
14
|
private _app;
|
|
16
15
|
private _server;
|
|
@@ -18,7 +17,6 @@ export declare class AdminServer {
|
|
|
18
17
|
private readonly _config;
|
|
19
18
|
private readonly _nodeId;
|
|
20
19
|
private readonly _options;
|
|
21
|
-
private readonly _transportType;
|
|
22
20
|
constructor(options: {
|
|
23
21
|
routingTable: RoutingTable;
|
|
24
22
|
btpClientManager: BTPClientManager;
|
|
@@ -36,16 +34,17 @@ export declare class AdminServer {
|
|
|
36
34
|
packetSender?: PacketSenderFn;
|
|
37
35
|
isReady?: IsReadyFn;
|
|
38
36
|
metricsRegistry?: IlpMetricsRegistry;
|
|
39
|
-
managedAnonClient?: ManagedAnonClient;
|
|
40
37
|
resolveTokenMetadata?: (blockchain: 'evm' | 'solana' | 'mina', tokenAddress: string) => Promise<{
|
|
41
38
|
assetCode: string;
|
|
42
39
|
assetScale: number;
|
|
43
40
|
}>;
|
|
44
41
|
connectorFeePercentage?: number;
|
|
45
|
-
transportType?: 'direct' | 'socks5';
|
|
46
42
|
setPeerRelation?: (peerId: string, relation: import('../config/types').PeerRelation) => void;
|
|
47
43
|
getPeerRelation?: (peerId: string) => import('../config/types').PeerRelation | undefined;
|
|
48
44
|
registryStore?: import('./admin-api').RegistryPeerSink;
|
|
45
|
+
httpPeerEgress?: import('../transport/http-peer-transport').PeerEgress;
|
|
46
|
+
setPeerProtocol?: (peerId: string, protocol: 'btp' | 'ilp-http') => void;
|
|
47
|
+
routeTerminationRegistry?: import('./admin-api').RouteTerminationSink;
|
|
49
48
|
});
|
|
50
49
|
private _initApp;
|
|
51
50
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../../src/http/admin-server.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../../src/http/admin-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,17 +10,15 @@ class AdminServer {
|
|
|
10
10
|
_config;
|
|
11
11
|
_nodeId;
|
|
12
12
|
_options;
|
|
13
|
-
_transportType;
|
|
14
13
|
constructor(options) {
|
|
15
14
|
this._options = options;
|
|
16
15
|
this._nodeId = options.nodeId;
|
|
17
16
|
this._config = options.config;
|
|
18
17
|
this._logger = options.logger.child({ component: 'AdminServer' });
|
|
19
|
-
this._transportType = options.transportType ?? 'direct';
|
|
20
18
|
}
|
|
21
19
|
async _initApp() {
|
|
22
20
|
const { default: express } = await (0, optional_require_1.requireOptional)('express', 'HTTP admin/health APIs');
|
|
23
|
-
const { routingTable, btpClientManager, nodeId, config, settlementPeers, channelManager, paymentChannelSDK, accountManager, settlementMonitor, claimReceiver, sentClaimsQueries, defaultSettlementTokenId, packetSender, isReady, metricsRegistry,
|
|
21
|
+
const { routingTable, btpClientManager, nodeId, config, settlementPeers, channelManager, paymentChannelSDK, accountManager, settlementMonitor, claimReceiver, sentClaimsQueries, defaultSettlementTokenId, packetSender, isReady, metricsRegistry, resolveTokenMetadata, connectorFeePercentage, setPeerRelation, getPeerRelation, registryStore, httpPeerEgress, setPeerProtocol, routeTerminationRegistry, } = this._options;
|
|
24
22
|
this._app = express();
|
|
25
23
|
const adminRouter = await (0, admin_api_1.createAdminRouter)({
|
|
26
24
|
routingTable,
|
|
@@ -41,13 +39,14 @@ class AdminServer {
|
|
|
41
39
|
packetSender,
|
|
42
40
|
isReady,
|
|
43
41
|
metricsRegistry,
|
|
44
|
-
managedAnonClient,
|
|
45
42
|
resolveTokenMetadata,
|
|
46
43
|
connectorFeePercentage,
|
|
47
|
-
transportType: this._transportType,
|
|
48
44
|
setPeerRelation,
|
|
49
45
|
getPeerRelation,
|
|
50
46
|
registryStore,
|
|
47
|
+
httpPeerEgress,
|
|
48
|
+
setPeerProtocol,
|
|
49
|
+
routeTerminationRegistry,
|
|
51
50
|
});
|
|
52
51
|
this._app.use('/admin', adminRouter);
|
|
53
52
|
this._app.get('/health', (_req, res) => {
|
|
@@ -92,7 +91,6 @@ class AdminServer {
|
|
|
92
91
|
'GET /admin/settlement/states',
|
|
93
92
|
'GET /admin/channels/:channelId/claims',
|
|
94
93
|
'POST /admin/ilp/send',
|
|
95
|
-
'GET /admin/hs-hostname',
|
|
96
94
|
],
|
|
97
95
|
}, `Admin API server started on ${host}:${port}`);
|
|
98
96
|
const hasIPAllowlist = this._config.allowedIPs && this._config.allowedIPs.length > 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-server.js","sourceRoot":"","sources":["../../src/http/admin-server.ts"],"names":[],"mappings":";;;AAkBA,2CAAgD;
|
|
1
|
+
{"version":3,"file":"admin-server.js","sourceRoot":"","sources":["../../src/http/admin-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import type { IncomingMessage, ServerResponse } from 'http';
|
|
|
2
2
|
import { type ILPPreparePacket, type ILPFulfillPacket, type ILPRejectPacket } from '@toon-protocol/shared';
|
|
3
3
|
import type { BTPProtocolData } from '../btp/btp-types';
|
|
4
4
|
import type { Logger } from '../utils/logger';
|
|
5
|
+
import type { RouteTermination, TerminationChain } from '../config/types';
|
|
6
|
+
export type ResolveTerminationFn = (prepare: ILPPreparePacket) => RouteTermination | null;
|
|
5
7
|
export type InboundClaimValidateFn = (protocolData: BTPProtocolData[], ilpPacket: ILPPreparePacket, peerId: string) => Promise<ILPRejectPacket | null>;
|
|
6
8
|
export type HandlePrepareFn = (ilpPacket: ILPPreparePacket, peerId: string, protocolData?: BTPProtocolData[]) => Promise<ILPFulfillPacket | ILPRejectPacket>;
|
|
7
9
|
export interface IlpHttpAdapterDeps {
|
|
@@ -11,6 +13,8 @@ export interface IlpHttpAdapterDeps {
|
|
|
11
13
|
recordClaim?: (peerId: string, protocolData: BTPProtocolData[]) => Promise<void>;
|
|
12
14
|
nodeId: string;
|
|
13
15
|
maxBodyBytes?: number;
|
|
16
|
+
resolveTermination?: ResolveTerminationFn;
|
|
17
|
+
terminationChainIds?: Partial<Record<TerminationChain, string>>;
|
|
14
18
|
}
|
|
15
19
|
export declare const ILP_HTTP_PATH = "/ilp";
|
|
16
20
|
export declare class IlpHttpAdapter {
|
|
@@ -20,10 +24,16 @@ export declare class IlpHttpAdapter {
|
|
|
20
24
|
private readonly recordClaim?;
|
|
21
25
|
private readonly nodeId;
|
|
22
26
|
private readonly maxBodyBytes;
|
|
27
|
+
private readonly resolveTermination?;
|
|
28
|
+
private readonly terminationChainIds;
|
|
23
29
|
constructor(deps: IlpHttpAdapterDeps);
|
|
24
30
|
handle(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
25
31
|
private readBody;
|
|
26
32
|
private extractBearer;
|
|
33
|
+
private isUnpaid;
|
|
34
|
+
private respond402;
|
|
35
|
+
private checkRequestBinding;
|
|
36
|
+
private bindingReject;
|
|
27
37
|
private respondPacket;
|
|
28
38
|
private respondText;
|
|
29
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ilp-http-adapter.d.ts","sourceRoot":"","sources":["../../src/http/ilp-http-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ilp-http-adapter.d.ts","sourceRoot":"","sources":["../../src/http/ilp-http-adapter.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAoB1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,IAAI,CAAC;AAG1F,MAAM,MAAM,sBAAsB,GAAG,CACnC,YAAY,EAAE,eAAe,EAAE,EAC/B,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAGrC,MAAM,MAAM,eAAe,GAAG,CAC5B,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,eAAe,EAAE,KAC7B,OAAO,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IAEf,aAAa,EAAE,eAAe,CAAC;IAM/B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAOvC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,CAAC,EAAE,MAAM,CAAC;IAQtB,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAQ1C,mBAAmB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;CACjE;AAKD,eAAO,MAAM,aAAa,SAAS,CAAC;AAuEpC,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAqE;IAClG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAuB;IAC3D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4C;gBAEpE,IAAI,EAAE,kBAAkB;IAgB9B,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqMtE,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;CAIpB"}
|
|
@@ -5,8 +5,33 @@ const shared_1 = require("@toon-protocol/shared");
|
|
|
5
5
|
const btp_claim_types_1 = require("../btp/btp-claim-types");
|
|
6
6
|
const nip59_claim_wrapper_1 = require("../settlement/privacy/nip59-claim-wrapper");
|
|
7
7
|
const peer_secret_resolver_1 = require("../auth/peer-secret-resolver");
|
|
8
|
+
const x402_greeting_1 = require("./x402-greeting");
|
|
9
|
+
const http_proxy_handler_1 = require("../core/handlers/http-proxy-handler");
|
|
10
|
+
const rfc9421_1 = require("../auth/rfc9421");
|
|
8
11
|
const DEFAULT_MAX_BODY_BYTES = 5 * 1024 * 1024;
|
|
9
12
|
exports.ILP_HTTP_PATH = '/ilp';
|
|
13
|
+
const RFC9421_REJECT_CODE_MAP = {
|
|
14
|
+
missing_signature: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
15
|
+
malformed_signature: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
16
|
+
unsupported_alg: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
17
|
+
covered_components_mismatch: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
18
|
+
missing_component: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
19
|
+
digest_mismatch: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
20
|
+
keyid_mismatch: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
21
|
+
signature_invalid: shared_1.ILPErrorCode.F01_INVALID_PACKET,
|
|
22
|
+
price_mismatch: shared_1.ILPErrorCode.F03_INVALID_AMOUNT,
|
|
23
|
+
};
|
|
24
|
+
function lowerCaseHeaderMap(headers) {
|
|
25
|
+
const out = {};
|
|
26
|
+
for (const [name, value] of headers) {
|
|
27
|
+
out[name.toLowerCase()] = value;
|
|
28
|
+
}
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
function pathOf(target) {
|
|
32
|
+
const q = target.indexOf('?');
|
|
33
|
+
return q === -1 ? target : target.slice(0, q);
|
|
34
|
+
}
|
|
10
35
|
function firstHeader(value) {
|
|
11
36
|
return Array.isArray(value) ? value[0] : value;
|
|
12
37
|
}
|
|
@@ -30,6 +55,8 @@ class IlpHttpAdapter {
|
|
|
30
55
|
recordClaim;
|
|
31
56
|
nodeId;
|
|
32
57
|
maxBodyBytes;
|
|
58
|
+
resolveTermination;
|
|
59
|
+
terminationChainIds;
|
|
33
60
|
constructor(deps) {
|
|
34
61
|
this.logger = deps.logger.child({ component: 'IlpHttpAdapter' });
|
|
35
62
|
this.handlePrepare = deps.handlePrepare;
|
|
@@ -37,6 +64,8 @@ class IlpHttpAdapter {
|
|
|
37
64
|
this.recordClaim = deps.recordClaim;
|
|
38
65
|
this.nodeId = deps.nodeId;
|
|
39
66
|
this.maxBodyBytes = deps.maxBodyBytes ?? DEFAULT_MAX_BODY_BYTES;
|
|
67
|
+
this.resolveTermination = deps.resolveTermination;
|
|
68
|
+
this.terminationChainIds = deps.terminationChainIds ?? {};
|
|
40
69
|
}
|
|
41
70
|
async handle(req, res) {
|
|
42
71
|
let body;
|
|
@@ -95,7 +124,27 @@ class IlpHttpAdapter {
|
|
|
95
124
|
else {
|
|
96
125
|
peerId = ephemeralPeerIdFromClaim(plaintextClaim);
|
|
97
126
|
}
|
|
127
|
+
if (this.resolveTermination) {
|
|
128
|
+
const termination = this.resolveTermination(prepare);
|
|
129
|
+
if (termination && this.isUnpaid(protocolData, req)) {
|
|
130
|
+
this.respond402(res, termination, req);
|
|
131
|
+
this.logger.info({ event: 'ilp_http_x402_greeting', peerId, destination: prepare.destination }, 'ILP-over-HTTP unpaid terminated request greeted with x402 402');
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
98
135
|
try {
|
|
136
|
+
const reject = this.checkRequestBinding(prepare);
|
|
137
|
+
if (reject) {
|
|
138
|
+
this.logger.warn({
|
|
139
|
+
event: 'ilp_http_request_binding_rejected',
|
|
140
|
+
peerId,
|
|
141
|
+
destination: prepare.destination,
|
|
142
|
+
code: reject.code,
|
|
143
|
+
detail: reject.message,
|
|
144
|
+
}, 'ILP-over-HTTP PREPARE rejected: RFC 9421 request binding failed');
|
|
145
|
+
this.respondPacket(res, reject);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
99
148
|
if (this.recordClaim && protocolData.length > 0) {
|
|
100
149
|
await this.recordClaim(peerId, protocolData).catch((err) => {
|
|
101
150
|
this.logger.warn({
|
|
@@ -165,6 +214,75 @@ class IlpHttpAdapter {
|
|
|
165
214
|
const match = /^Bearer\s+(.*)$/i.exec(authHeader.trim());
|
|
166
215
|
return match ? match[1] : authHeader.trim();
|
|
167
216
|
}
|
|
217
|
+
isUnpaid(protocolData, req) {
|
|
218
|
+
if (protocolData.length > 0)
|
|
219
|
+
return false;
|
|
220
|
+
const paymentSig = req.headers[x402_greeting_1.X402_PAYMENT_SIGNATURE_HEADER.toLowerCase()];
|
|
221
|
+
return paymentSig === undefined;
|
|
222
|
+
}
|
|
223
|
+
respond402(res, termination, req) {
|
|
224
|
+
const proto = firstHeader(req.headers['x-forwarded-proto']) ?? 'https';
|
|
225
|
+
const host = firstHeader(req.headers['host']);
|
|
226
|
+
const httpEndpoint = host ? `${proto}://${host}${exports.ILP_HTTP_PATH}` : undefined;
|
|
227
|
+
const body = (0, x402_greeting_1.buildX402Greeting)(termination, {
|
|
228
|
+
chainIds: this.terminationChainIds,
|
|
229
|
+
resourceUrl: termination.ilpAddress,
|
|
230
|
+
error: `${x402_greeting_1.X402_PAYMENT_SIGNATURE_HEADER} header is required`,
|
|
231
|
+
httpEndpoint,
|
|
232
|
+
});
|
|
233
|
+
const json = JSON.stringify(body);
|
|
234
|
+
res.writeHead(402, {
|
|
235
|
+
'Content-Type': 'application/json',
|
|
236
|
+
'Content-Length': Buffer.byteLength(json),
|
|
237
|
+
[x402_greeting_1.X402_PAYMENT_REQUIRED_HEADER]: Buffer.from(json, 'utf8').toString('base64'),
|
|
238
|
+
});
|
|
239
|
+
res.end(json);
|
|
240
|
+
}
|
|
241
|
+
checkRequestBinding(prepare) {
|
|
242
|
+
if (!this.resolveTermination)
|
|
243
|
+
return null;
|
|
244
|
+
const termination = this.resolveTermination(prepare);
|
|
245
|
+
if (!termination)
|
|
246
|
+
return null;
|
|
247
|
+
const enforce = termination.requireRequestBinding === true;
|
|
248
|
+
let envelope;
|
|
249
|
+
try {
|
|
250
|
+
envelope = (0, http_proxy_handler_1.decodeHttpRequest)(prepare.data ?? Buffer.alloc(0));
|
|
251
|
+
}
|
|
252
|
+
catch (err) {
|
|
253
|
+
if (!enforce)
|
|
254
|
+
return null;
|
|
255
|
+
const detail = err instanceof http_proxy_handler_1.EnvelopeDecodeError ? err.message : String(err);
|
|
256
|
+
return this.bindingReject(shared_1.ILPErrorCode.F01_INVALID_PACKET, `malformed_envelope: ${detail}`);
|
|
257
|
+
}
|
|
258
|
+
const headers = lowerCaseHeaderMap(envelope.headers);
|
|
259
|
+
const hasSignature = headers['signature'] !== undefined && headers['signature-input'] !== undefined;
|
|
260
|
+
if (!hasSignature) {
|
|
261
|
+
if (enforce) {
|
|
262
|
+
return this.bindingReject(shared_1.ILPErrorCode.F01_INVALID_PACKET, 'missing_signature');
|
|
263
|
+
}
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
const result = (0, rfc9421_1.verify)(headers, envelope.body, {
|
|
267
|
+
method: envelope.method,
|
|
268
|
+
path: pathOf(envelope.target),
|
|
269
|
+
expectedPrice: termination.price,
|
|
270
|
+
});
|
|
271
|
+
if (result.ok)
|
|
272
|
+
return null;
|
|
273
|
+
const code = RFC9421_REJECT_CODE_MAP[result.code];
|
|
274
|
+
const detail = result.detail ? `${result.code}: ${result.detail}` : result.code;
|
|
275
|
+
return this.bindingReject(code, detail);
|
|
276
|
+
}
|
|
277
|
+
bindingReject(code, detail) {
|
|
278
|
+
return {
|
|
279
|
+
type: shared_1.PacketType.REJECT,
|
|
280
|
+
code,
|
|
281
|
+
triggeredBy: this.nodeId,
|
|
282
|
+
message: `RFC 9421 request binding failed: ${detail}`,
|
|
283
|
+
data: Buffer.alloc(0),
|
|
284
|
+
};
|
|
285
|
+
}
|
|
168
286
|
respondPacket(res, packet) {
|
|
169
287
|
const buffer = (0, shared_1.serializePacket)(packet);
|
|
170
288
|
res.writeHead(200, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ilp-http-adapter.js","sourceRoot":"","sources":["../../src/http/ilp-http-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ilp-http-adapter.js","sourceRoot":"","sources":["../../src/http/ilp-http-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/http/types.d.ts
CHANGED
package/dist/http/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAO3B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAM7C,MAAM,EAAE,MAAM,CAAC;IAMf,cAAc,EAAE,MAAM,CAAC;IAMvB,UAAU,EAAE,MAAM,CAAC;IAMnB,SAAS,EAAE,MAAM,CAAC;IAMlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,QAAQ,CAAC,EAAE;QAET,OAAO,EAAE,OAAO,CAAC;QAEjB,IAAI,EAAE,MAAM,CAAC;QAEb,UAAU,EAAE,MAAM,CAAC;QAEnB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAO3B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAM7C,MAAM,EAAE,MAAM,CAAC;IAMf,cAAc,EAAE,MAAM,CAAC;IAMvB,UAAU,EAAE,MAAM,CAAC;IAMnB,SAAS,EAAE,MAAM,CAAC;IAMlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,QAAQ,CAAC,EAAE;QAET,OAAO,EAAE,OAAO,CAAC;QAEjB,IAAI,EAAE,MAAM,CAAC;QAEb,UAAU,EAAE,MAAM,CAAC;QAEnB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAcF,SAAS,CAAC,EAAE;QAEV,IAAI,EAAE,QAAQ,CAAC;QAEf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAkBD,MAAM,WAAW,oBAAoB;IAKnC,eAAe,IAAI,YAAY,CAAC;CACjC;AAMD,MAAM,WAAW,sBAAsB;IAErC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,WAAW,kBAAkB;IAEjC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAOD,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;IAQxE,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IAM1D,YAAY,EAAE;QACZ,WAAW,EAAE,sBAAsB,CAAC;QACpC,GAAG,CAAC,EAAE,sBAAsB,CAAC;KAC9B,CAAC;IAMF,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAMD,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IAKxE,uBAAuB,IAAI,oBAAoB,CAAC;CACjD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { RouteTermination, TerminationChain } from '../config/types';
|
|
2
|
+
export declare const X402_VERSION: 2;
|
|
3
|
+
export declare const X402_PAYMENT_SIGNATURE_HEADER = "PAYMENT-SIGNATURE";
|
|
4
|
+
export declare const X402_PAYMENT_REQUIRED_HEADER = "PAYMENT-REQUIRED";
|
|
5
|
+
export declare const TOON_CHANNEL_SCHEME = "toon-channel";
|
|
6
|
+
export declare const TOON_CHANNEL_ENDPOINT = "/ilp";
|
|
7
|
+
export declare const X402_DEFAULT_MAX_TIMEOUT_SECONDS = 60;
|
|
8
|
+
export interface X402PaymentRequirements {
|
|
9
|
+
scheme: string;
|
|
10
|
+
network: string;
|
|
11
|
+
amount: string;
|
|
12
|
+
asset?: string;
|
|
13
|
+
payTo: string;
|
|
14
|
+
maxTimeoutSeconds: number;
|
|
15
|
+
extra?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export interface X402ResourceInfo {
|
|
18
|
+
url: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
mimeType?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface X402PaymentRequired {
|
|
23
|
+
x402Version: typeof X402_VERSION;
|
|
24
|
+
error?: string;
|
|
25
|
+
resource: X402ResourceInfo;
|
|
26
|
+
accepts: X402PaymentRequirements[];
|
|
27
|
+
extensions?: Record<string, unknown>;
|
|
28
|
+
}
|
|
29
|
+
export interface ToonChannelExtra {
|
|
30
|
+
ilpAddress: string;
|
|
31
|
+
endpoint: typeof TOON_CHANNEL_ENDPOINT;
|
|
32
|
+
price: string;
|
|
33
|
+
chains: TerminationChain[];
|
|
34
|
+
settlementAddresses: Partial<Record<TerminationChain, string>>;
|
|
35
|
+
}
|
|
36
|
+
export declare function chainToCaip2(chain: TerminationChain, chainIds: Partial<Record<TerminationChain, string>>): string | null;
|
|
37
|
+
export interface X402GreetingContext {
|
|
38
|
+
chainIds: Partial<Record<TerminationChain, string>>;
|
|
39
|
+
resourceUrl: string;
|
|
40
|
+
resourceDescription?: string;
|
|
41
|
+
resourceMimeType?: string;
|
|
42
|
+
error?: string;
|
|
43
|
+
httpEndpoint?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function buildX402Greeting(termination: RouteTermination, ctx: X402GreetingContext): X402PaymentRequired;
|
|
46
|
+
//# sourceMappingURL=x402-greeting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402-greeting.d.ts","sourceRoot":"","sources":["../../src/http/x402-greeting.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG1E,eAAO,MAAM,YAAY,EAAG,CAAU,CAAC;AAGvC,eAAO,MAAM,6BAA6B,sBAAsB,CAAC;AAGjE,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAG/D,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAGlD,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAM5C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAMnD,MAAM,WAAW,uBAAuB;IAEtC,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC;IAEd,iBAAiB,EAAE,MAAM,CAAC;IAE1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,mBAAmB;IAElC,WAAW,EAAE,OAAO,YAAY,CAAC;IAEjC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAEnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAQD,MAAM,WAAW,gBAAgB;IAE/B,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE,OAAO,qBAAqB,CAAC;IAEvC,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAE3B,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;CAChE;AAcD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,GAClD,MAAM,GAAG,IAAI,CAaf;AAGD,MAAM,WAAW,mBAAmB;IAMlC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpD,WAAW,EAAE,MAAM,CAAC;IAEpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAOf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAeD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,gBAAgB,EAC7B,GAAG,EAAE,mBAAmB,GACvB,mBAAmB,CAuDrB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.X402_DEFAULT_MAX_TIMEOUT_SECONDS = exports.TOON_CHANNEL_ENDPOINT = exports.TOON_CHANNEL_SCHEME = exports.X402_PAYMENT_REQUIRED_HEADER = exports.X402_PAYMENT_SIGNATURE_HEADER = exports.X402_VERSION = void 0;
|
|
4
|
+
exports.chainToCaip2 = chainToCaip2;
|
|
5
|
+
exports.buildX402Greeting = buildX402Greeting;
|
|
6
|
+
exports.X402_VERSION = 2;
|
|
7
|
+
exports.X402_PAYMENT_SIGNATURE_HEADER = 'PAYMENT-SIGNATURE';
|
|
8
|
+
exports.X402_PAYMENT_REQUIRED_HEADER = 'PAYMENT-REQUIRED';
|
|
9
|
+
exports.TOON_CHANNEL_SCHEME = 'toon-channel';
|
|
10
|
+
exports.TOON_CHANNEL_ENDPOINT = '/ilp';
|
|
11
|
+
exports.X402_DEFAULT_MAX_TIMEOUT_SECONDS = 60;
|
|
12
|
+
function chainToCaip2(chain, chainIds) {
|
|
13
|
+
if (chain === 'mina')
|
|
14
|
+
return null;
|
|
15
|
+
const internal = chainIds[chain];
|
|
16
|
+
if (chain === 'evm') {
|
|
17
|
+
if (!internal)
|
|
18
|
+
return null;
|
|
19
|
+
const ref = internal.startsWith('evm:') ? internal.slice('evm:'.length) : internal;
|
|
20
|
+
return ref ? `eip155:${ref}` : null;
|
|
21
|
+
}
|
|
22
|
+
return internal && internal.startsWith('solana:') ? internal : null;
|
|
23
|
+
}
|
|
24
|
+
function buildX402Greeting(termination, ctx) {
|
|
25
|
+
const accepts = [];
|
|
26
|
+
for (const chain of termination.chains) {
|
|
27
|
+
const network = chainToCaip2(chain, ctx.chainIds);
|
|
28
|
+
if (network === null)
|
|
29
|
+
continue;
|
|
30
|
+
const payTo = termination.settlementAddresses[chain];
|
|
31
|
+
if (!payTo)
|
|
32
|
+
continue;
|
|
33
|
+
const entry = {
|
|
34
|
+
scheme: 'exact',
|
|
35
|
+
network,
|
|
36
|
+
amount: termination.price,
|
|
37
|
+
payTo,
|
|
38
|
+
maxTimeoutSeconds: exports.X402_DEFAULT_MAX_TIMEOUT_SECONDS,
|
|
39
|
+
};
|
|
40
|
+
const asset = termination.asset?.[chain];
|
|
41
|
+
if (asset)
|
|
42
|
+
entry.asset = asset;
|
|
43
|
+
accepts.push(entry);
|
|
44
|
+
}
|
|
45
|
+
const toonExtra = {
|
|
46
|
+
ilpAddress: termination.ilpAddress,
|
|
47
|
+
endpoint: exports.TOON_CHANNEL_ENDPOINT,
|
|
48
|
+
price: termination.price,
|
|
49
|
+
chains: termination.chains,
|
|
50
|
+
settlementAddresses: termination.settlementAddresses,
|
|
51
|
+
};
|
|
52
|
+
const toonEntry = {
|
|
53
|
+
scheme: exports.TOON_CHANNEL_SCHEME,
|
|
54
|
+
network: termination.ilpAddress,
|
|
55
|
+
amount: termination.price,
|
|
56
|
+
payTo: termination.ilpAddress,
|
|
57
|
+
maxTimeoutSeconds: exports.X402_DEFAULT_MAX_TIMEOUT_SECONDS,
|
|
58
|
+
extra: toonExtra,
|
|
59
|
+
};
|
|
60
|
+
if (ctx.httpEndpoint)
|
|
61
|
+
toonEntry.httpEndpoint = ctx.httpEndpoint;
|
|
62
|
+
accepts.push(toonEntry);
|
|
63
|
+
const resource = { url: ctx.resourceUrl };
|
|
64
|
+
if (ctx.resourceDescription)
|
|
65
|
+
resource.description = ctx.resourceDescription;
|
|
66
|
+
if (ctx.resourceMimeType)
|
|
67
|
+
resource.mimeType = ctx.resourceMimeType;
|
|
68
|
+
const body = {
|
|
69
|
+
x402Version: exports.X402_VERSION,
|
|
70
|
+
resource,
|
|
71
|
+
accepts,
|
|
72
|
+
};
|
|
73
|
+
if (ctx.error)
|
|
74
|
+
body.error = ctx.error;
|
|
75
|
+
return body;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=x402-greeting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402-greeting.js","sourceRoot":"","sources":["../../src/http/x402-greeting.ts"],"names":[],"mappings":";;;AA8HA,oCAgBC;AAuCD,8CA0DC;AA9MY,QAAA,YAAY,GAAG,CAAU,CAAC;AAG1B,QAAA,6BAA6B,GAAG,mBAAmB,CAAC;AAGpD,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAGlD,QAAA,mBAAmB,GAAG,cAAc,CAAC;AAGrC,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAM/B,QAAA,gCAAgC,GAAG,EAAE,CAAC;AA2EnD,SAAgB,YAAY,CAC1B,KAAuB,EACvB,QAAmD;IAEnD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAGpB,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnF,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;IAGD,OAAO,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAuCD,SAAgB,iBAAiB,CAC/B,WAA6B,EAC7B,GAAwB;IAExB,MAAM,OAAO,GAA8B,EAAE,CAAC;IAG9C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,KAAK,GAA4B;YACrC,MAAM,EAAE,OAAO;YACf,OAAO;YACP,MAAM,EAAE,WAAW,CAAC,KAAK;YACzB,KAAK;YACL,iBAAiB,EAAE,wCAAgC;SACpD,CAAC;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAGD,MAAM,SAAS,GAAqB;QAClC,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,QAAQ,EAAE,6BAAqB;QAC/B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;KACrD,CAAC;IACF,MAAM,SAAS,GAAwD;QACrE,MAAM,EAAE,2BAAmB;QAG3B,OAAO,EAAE,WAAW,CAAC,UAAU;QAC/B,MAAM,EAAE,WAAW,CAAC,KAAK;QACzB,KAAK,EAAE,WAAW,CAAC,UAAU;QAC7B,iBAAiB,EAAE,wCAAgC;QACnD,KAAK,EAAE,SAA+C;KACvD,CAAC;IAGF,IAAI,GAAG,CAAC,YAAY;QAAE,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAExB,MAAM,QAAQ,GAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,GAAG,CAAC,mBAAmB;QAAE,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAC5E,IAAI,GAAG,CAAC,gBAAgB;QAAE,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAEnE,MAAM,IAAI,GAAwB;QAChC,WAAW,EAAE,oBAAY;QACzB,QAAQ;QACR,OAAO;KACR,CAAC;IACF,IAAI,GAAG,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/lib.d.ts
CHANGED
|
@@ -12,18 +12,29 @@ import { evaluatePeerSecret } from './auth/peer-secret-resolver';
|
|
|
12
12
|
import { AccountManager } from './settlement/account-manager';
|
|
13
13
|
import { SettlementMonitor } from './settlement/settlement-monitor';
|
|
14
14
|
import { UnifiedSettlementExecutor } from './settlement/unified-settlement-executor';
|
|
15
|
-
import { createPaymentHandlerAdapter, REJECT_CODE_MAP, generatePaymentId, mapRejectCode, validateResponseData } from './core/payment-handler';
|
|
15
|
+
import { createPaymentHandlerAdapter, REJECT_CODE_MAP, generatePaymentId, mapRejectCode, validateResponseData, validateFulfillment } from './core/payment-handler';
|
|
16
16
|
import { IlpSendHandler, validateIlpSendRequest } from './http/ilp-send-handler';
|
|
17
|
-
export { ConnectorNode, ConfigLoader, ConfigurationError, ConnectorNotStartedError, RoutingTable, PacketHandler, BTPServer, BTPClient, BTPClientManager, AdminServer, IlpHttpAdapter, evaluatePeerSecret, AccountManager, SettlementMonitor, UnifiedSettlementExecutor, createLogger, createPaymentHandlerAdapter, REJECT_CODE_MAP, generatePaymentId, mapRejectCode, validateResponseData, IlpSendHandler, validateIlpSendRequest, };
|
|
17
|
+
export { ConnectorNode, ConfigLoader, ConfigurationError, ConnectorNotStartedError, RoutingTable, PacketHandler, BTPServer, BTPClient, BTPClientManager, AdminServer, IlpHttpAdapter, evaluatePeerSecret, AccountManager, SettlementMonitor, UnifiedSettlementExecutor, createLogger, createPaymentHandlerAdapter, REJECT_CODE_MAP, generatePaymentId, mapRejectCode, validateResponseData, validateFulfillment, IlpSendHandler, validateIlpSendRequest, };
|
|
18
18
|
export { ConnectorAdminClient, ConnectorAdminError } from './client/connector-admin-client';
|
|
19
|
-
export type { ConnectorAdminClientOptions, RegisterPeerInput, AdminRouteInput, FetchLike, } from './client/connector-admin-client';
|
|
19
|
+
export type { ConnectorAdminClientOptions, RegisterPeerInput, AdminRouteInput, RouteInput, RouteTerminationInput, FetchLike, } from './client/connector-admin-client';
|
|
20
20
|
export type { ConnectorConfig, PeerConfig, RouteConfig, SettlementConfig, LocalDeliveryConfig, LocalDeliveryHandler, LocalDeliveryRequest, LocalDeliveryResponse, SendPacketParams, PeerRegistrationRequest, PeerInfo, PeerAccountBalance, RouteInfo, RemovePeerResult, IlpSendRequest, IlpSendResponse, TransportConfig, } from './config/types';
|
|
21
21
|
export type { AdminSettlementConfig } from './settlement/types';
|
|
22
22
|
export type { ChannelOpenOptions, ChannelMetadata } from './settlement/channel-manager';
|
|
23
23
|
export type { PaymentRequest, PaymentResponse, PaymentHandler } from './core/payment-handler';
|
|
24
24
|
export type { PacketSenderFn, IsReadyFn } from './http/ilp-send-handler';
|
|
25
|
+
export { HttpProxyHandler, EnvelopeDecodeError, decodeHttpRequest, encodeHttpRequest, encodeHttpResponse, TOON_PAYER_HEADER, TOON_AMOUNT_HEADER, TOON_CHAIN_HEADER, } from './core/handlers/http-proxy-handler';
|
|
26
|
+
export type { HttpProxyHandlerOptions, HttpRequestEnvelope, UpstreamResolver, ChainResolver, } from './core/handlers/http-proxy-handler';
|
|
27
|
+
export { RouteTerminationRegistry } from './core/route-upstream-registry';
|
|
28
|
+
export type { RouteTermination, TerminationChain } from './config/types';
|
|
29
|
+
export { validateRouteTermination, toRouteTermination } from './config/types';
|
|
25
30
|
export type { ILPPreparePacket, ILPFulfillPacket, ILPRejectPacket } from '@toon-protocol/shared';
|
|
26
31
|
export type { BtpPreAuth, IlpHttpHandler } from './btp/btp-server';
|
|
27
|
-
export type { InboundClaimValidateFn, HandlePrepareFn, IlpHttpAdapterDeps, } from './http/ilp-http-adapter';
|
|
32
|
+
export type { InboundClaimValidateFn, HandlePrepareFn, IlpHttpAdapterDeps, ResolveTerminationFn, } from './http/ilp-http-adapter';
|
|
28
33
|
export type { PeerSecretDecision } from './auth/peer-secret-resolver';
|
|
34
|
+
export { HttpPeerClientManager, HttpPeerConnectionError, HttpPeerTimeoutError, DEFAULT_ILP_HTTP_EGRESS_PATH, } from './transport/http-peer-transport';
|
|
35
|
+
export type { PeerEgress, HttpPeer } from './transport/http-peer-transport';
|
|
36
|
+
export { buildX402Greeting, chainToCaip2, X402_VERSION, X402_PAYMENT_SIGNATURE_HEADER, X402_PAYMENT_REQUIRED_HEADER, X402_DEFAULT_MAX_TIMEOUT_SECONDS, TOON_CHANNEL_SCHEME, TOON_CHANNEL_ENDPOINT, } from './http/x402-greeting';
|
|
37
|
+
export type { X402PaymentRequired, X402PaymentRequirements, X402ResourceInfo, X402GreetingContext, ToonChannelExtra, } from './http/x402-greeting';
|
|
38
|
+
export { verify as verifyRfc9421Signature, computeContentDigest, verifyContentDigest, buildSignatureBase, signRequest as signRfc9421Request, publicKeyToKeyid, COVERED_COMPONENTS as RFC9421_COVERED_COMPONENTS, PRICE_HEADER as TOON_PRICE_HEADER, PRICE_HEADER_WIRE as TOON_PRICE_HEADER_WIRE, SIGNATURE_ALG as RFC9421_SIGNATURE_ALG, } from './auth/rfc9421';
|
|
39
|
+
export type { VerifyResult as Rfc9421VerifyResult, VerifyOptions as Rfc9421VerifyOptions, VerifyFailureCode as Rfc9421VerifyFailureCode, SignRequestInput as Rfc9421SignRequestInput, SignedHeaders as Rfc9421SignedHeaders, } from './auth/rfc9421';
|
|
29
40
|
//# sourceMappingURL=lib.d.ts.map
|
package/dist/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,oBAAoB,
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
|