@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Database } from 'better-sqlite3';
|
|
2
2
|
export declare const REGISTRY_PEERS_SCHEMA = "\n CREATE TABLE IF NOT EXISTS peers (\n id TEXT PRIMARY KEY,\n url TEXT NOT NULL,\n auth_token TEXT NOT NULL,\n relation TEXT,\n transport TEXT,\n settlement_json TEXT,\n source TEXT NOT NULL,\n updated_at INTEGER NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_peers_source ON peers(source);\n";
|
|
3
|
-
export declare const REGISTRY_ROUTES_SCHEMA = "\n CREATE TABLE IF NOT EXISTS routes (\n prefix TEXT PRIMARY KEY,\n next_hop TEXT NOT NULL,\n priority INTEGER NOT NULL DEFAULT 0,\n source TEXT NOT NULL,\n updated_at INTEGER NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_routes_next_hop ON routes(next_hop);\n CREATE INDEX IF NOT EXISTS idx_routes_source ON routes(source);\n";
|
|
3
|
+
export declare const REGISTRY_ROUTES_SCHEMA = "\n CREATE TABLE IF NOT EXISTS routes (\n prefix TEXT PRIMARY KEY,\n next_hop TEXT NOT NULL,\n priority INTEGER NOT NULL DEFAULT 0,\n source TEXT NOT NULL,\n termination_json TEXT,\n updated_at INTEGER NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_routes_next_hop ON routes(next_hop);\n CREATE INDEX IF NOT EXISTS idx_routes_source ON routes(source);\n";
|
|
4
|
+
export declare function migrateRouteTerminationColumn(db: Database): void;
|
|
4
5
|
export declare function initializeRegistrySchema(db: Database): void;
|
|
5
6
|
//# sourceMappingURL=registry-db-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-db-schema.d.ts","sourceRoot":"","sources":["../../src/core/registry-db-schema.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAY/C,eAAO,MAAM,qBAAqB,uUAajC,CAAC;AASF,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"registry-db-schema.d.ts","sourceRoot":"","sources":["../../src/core/registry-db-schema.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAY/C,eAAO,MAAM,qBAAqB,uUAajC,CAAC;AASF,eAAO,MAAM,sBAAsB,6XAYlC,CAAC;AAUF,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAKhE;AAOD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAK3D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.REGISTRY_ROUTES_SCHEMA = exports.REGISTRY_PEERS_SCHEMA = void 0;
|
|
4
|
+
exports.migrateRouteTerminationColumn = migrateRouteTerminationColumn;
|
|
4
5
|
exports.initializeRegistrySchema = initializeRegistrySchema;
|
|
5
6
|
exports.REGISTRY_PEERS_SCHEMA = `
|
|
6
7
|
CREATE TABLE IF NOT EXISTS peers (
|
|
@@ -22,14 +23,22 @@ exports.REGISTRY_ROUTES_SCHEMA = `
|
|
|
22
23
|
next_hop TEXT NOT NULL,
|
|
23
24
|
priority INTEGER NOT NULL DEFAULT 0,
|
|
24
25
|
source TEXT NOT NULL,
|
|
26
|
+
termination_json TEXT,
|
|
25
27
|
updated_at INTEGER NOT NULL
|
|
26
28
|
);
|
|
27
29
|
|
|
28
30
|
CREATE INDEX IF NOT EXISTS idx_routes_next_hop ON routes(next_hop);
|
|
29
31
|
CREATE INDEX IF NOT EXISTS idx_routes_source ON routes(source);
|
|
30
32
|
`;
|
|
33
|
+
function migrateRouteTerminationColumn(db) {
|
|
34
|
+
const columns = db.prepare(`PRAGMA table_info(routes)`).all();
|
|
35
|
+
if (!columns.some((c) => c.name === 'termination_json')) {
|
|
36
|
+
db.exec(`ALTER TABLE routes ADD COLUMN termination_json TEXT`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
31
39
|
function initializeRegistrySchema(db) {
|
|
32
40
|
db.exec(exports.REGISTRY_PEERS_SCHEMA);
|
|
33
41
|
db.exec(exports.REGISTRY_ROUTES_SCHEMA);
|
|
42
|
+
migrateRouteTerminationColumn(db);
|
|
34
43
|
}
|
|
35
44
|
//# sourceMappingURL=registry-db-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-db-schema.js","sourceRoot":"","sources":["../../src/core/registry-db-schema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry-db-schema.js","sourceRoot":"","sources":["../../src/core/registry-db-schema.ts"],"names":[],"mappings":";;;AAsEA,sEAKC;AAOD,4DAKC;AA7DY,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;CAapC,CAAC;AASW,QAAA,sBAAsB,GAAG;;;;;;;;;;;;CAYrC,CAAC;AAUF,SAAgB,6BAA6B,CAAC,EAAY;IACxD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,EAA6B,CAAC;IACzF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,EAAE,CAAC;QACxD,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAOD,SAAgB,wBAAwB,CAAC,EAAY;IACnD,EAAE,CAAC,IAAI,CAAC,6BAAqB,CAAC,CAAC;IAC/B,EAAE,CAAC,IAAI,CAAC,8BAAsB,CAAC,CAAC;IAEhC,6BAA6B,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-store.d.ts","sourceRoot":"","sources":["../../src/core/registry-store.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGlD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;CACxB;AAGD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"registry-store.d.ts","sourceRoot":"","sources":["../../src/core/registry-store.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGlD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;CACxB;AAGD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IAMvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAQD,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM;IAIjC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA+BlC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS5B,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IA2BpC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASjC,OAAO,IAAI;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,MAAM,EAAE,WAAW,EAAE,CAAA;KAAE;IAiDzD,OAAO,CAAC,UAAU;CAWnB"}
|
|
@@ -38,14 +38,15 @@ class RegistryStore {
|
|
|
38
38
|
saveRoute(record) {
|
|
39
39
|
try {
|
|
40
40
|
this.db
|
|
41
|
-
.prepare(`INSERT INTO routes (prefix, next_hop, priority, source, updated_at)
|
|
42
|
-
VALUES (?, ?, ?, ?, ?)
|
|
41
|
+
.prepare(`INSERT INTO routes (prefix, next_hop, priority, source, termination_json, updated_at)
|
|
42
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
43
43
|
ON CONFLICT(prefix) DO UPDATE SET
|
|
44
44
|
next_hop = excluded.next_hop,
|
|
45
45
|
priority = excluded.priority,
|
|
46
46
|
source = excluded.source,
|
|
47
|
+
termination_json = excluded.termination_json,
|
|
47
48
|
updated_at = excluded.updated_at`)
|
|
48
|
-
.run(record.prefix, record.nextHop, record.priority, record.source, Date.now());
|
|
49
|
+
.run(record.prefix, record.nextHop, record.priority, record.source, record.terminationJson ?? null, Date.now());
|
|
49
50
|
}
|
|
50
51
|
catch (error) {
|
|
51
52
|
this.logFailure('save_route', { prefix: record.prefix }, error);
|
|
@@ -65,7 +66,7 @@ class RegistryStore {
|
|
|
65
66
|
.prepare(`SELECT id, url, auth_token, relation, transport, settlement_json, source FROM peers`)
|
|
66
67
|
.all();
|
|
67
68
|
const routeRows = this.db
|
|
68
|
-
.prepare(`SELECT prefix, next_hop, priority, source FROM routes`)
|
|
69
|
+
.prepare(`SELECT prefix, next_hop, priority, source, termination_json FROM routes`)
|
|
69
70
|
.all();
|
|
70
71
|
return {
|
|
71
72
|
peers: peerRows.map((r) => ({
|
|
@@ -82,6 +83,7 @@ class RegistryStore {
|
|
|
82
83
|
nextHop: r.next_hop,
|
|
83
84
|
priority: r.priority,
|
|
84
85
|
source: r.source,
|
|
86
|
+
terminationJson: r.termination_json ?? undefined,
|
|
85
87
|
})),
|
|
86
88
|
};
|
|
87
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-store.js","sourceRoot":"","sources":["../../src/core/registry-store.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry-store.js","sourceRoot":"","sources":["../../src/core/registry-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LocalDeliveryRequest, RouteTermination } from '../config/types';
|
|
2
|
+
export declare class RouteTerminationRegistry {
|
|
3
|
+
private readonly byPrefix;
|
|
4
|
+
constructor(entries?: Iterable<{
|
|
5
|
+
prefix: string;
|
|
6
|
+
termination?: RouteTermination;
|
|
7
|
+
}>);
|
|
8
|
+
get size(): number;
|
|
9
|
+
prefixes(): string[];
|
|
10
|
+
lookup(prefix: string): RouteTermination | undefined;
|
|
11
|
+
match(destination: string): RouteTermination | undefined;
|
|
12
|
+
set(prefix: string, termination: RouteTermination): void;
|
|
13
|
+
delete(prefix: string): boolean;
|
|
14
|
+
clear(): void;
|
|
15
|
+
readonly resolveUpstream: (request: LocalDeliveryRequest) => string | undefined;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=route-upstream-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-upstream-registry.d.ts","sourceRoot":"","sources":["../../src/core/route-upstream-registry.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAU9E,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;gBAOpD,OAAO,CAAC,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAWlF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAGD,QAAQ,IAAI,MAAM,EAAE;IASpB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IASpD,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAexD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,GAAG,IAAI;IAKxD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/B,KAAK,IAAI,IAAI;IAmBb,QAAQ,CAAC,eAAe,GAAI,SAAS,oBAAoB,KAAG,MAAM,GAAG,SAAS,CAE5E;CACH"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RouteTerminationRegistry = void 0;
|
|
4
|
+
class RouteTerminationRegistry {
|
|
5
|
+
byPrefix = new Map();
|
|
6
|
+
constructor(entries) {
|
|
7
|
+
if (entries) {
|
|
8
|
+
for (const entry of entries) {
|
|
9
|
+
if (entry.termination) {
|
|
10
|
+
this.byPrefix.set(entry.prefix, entry.termination);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
get size() {
|
|
16
|
+
return this.byPrefix.size;
|
|
17
|
+
}
|
|
18
|
+
prefixes() {
|
|
19
|
+
return [...this.byPrefix.keys()];
|
|
20
|
+
}
|
|
21
|
+
lookup(prefix) {
|
|
22
|
+
return this.byPrefix.get(prefix);
|
|
23
|
+
}
|
|
24
|
+
match(destination) {
|
|
25
|
+
let best;
|
|
26
|
+
let bestLen = -1;
|
|
27
|
+
for (const [prefix, termination] of this.byPrefix) {
|
|
28
|
+
if (destination === prefix || destination.startsWith(prefix + '.')) {
|
|
29
|
+
if (prefix.length > bestLen) {
|
|
30
|
+
bestLen = prefix.length;
|
|
31
|
+
best = termination;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return best;
|
|
36
|
+
}
|
|
37
|
+
set(prefix, termination) {
|
|
38
|
+
this.byPrefix.set(prefix, termination);
|
|
39
|
+
}
|
|
40
|
+
delete(prefix) {
|
|
41
|
+
return this.byPrefix.delete(prefix);
|
|
42
|
+
}
|
|
43
|
+
clear() {
|
|
44
|
+
this.byPrefix.clear();
|
|
45
|
+
}
|
|
46
|
+
resolveUpstream = (request) => {
|
|
47
|
+
return this.match(request.destination)?.upstream;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
exports.RouteTerminationRegistry = RouteTerminationRegistry;
|
|
51
|
+
//# sourceMappingURL=route-upstream-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-upstream-registry.js","sourceRoot":"","sources":["../../src/core/route-upstream-registry.ts"],"names":[],"mappings":";;;AAmCA,MAAa,wBAAwB;IAClB,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAOhE,YAAY,OAAsE;QAChF,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAGD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAGD,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAOD,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAOD,KAAK,CAAC,WAAmB;QACvB,IAAI,IAAkC,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClD,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnE,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;oBAC5B,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;oBACxB,IAAI,GAAG,WAAW,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,GAAG,CAAC,MAAc,EAAE,WAA6B;QAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAGD,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAiBQ,eAAe,GAAG,CAAC,OAA6B,EAAsB,EAAE;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACnD,CAAC,CAAC;CACH;AAzFD,4DAyFC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type NostrEvent } from 'nostr-tools';
|
|
2
|
+
export declare const ILP_PEER_INFO_KIND = 10032;
|
|
3
|
+
export declare const EXPIRATION_TAG = "expiration";
|
|
4
|
+
export interface IlpPeerInfo {
|
|
5
|
+
pubkey?: string;
|
|
6
|
+
ilpAddress: string;
|
|
7
|
+
ilpAddresses?: string[];
|
|
8
|
+
btpEndpoint: string;
|
|
9
|
+
httpEndpoint?: string;
|
|
10
|
+
relayUrl?: string;
|
|
11
|
+
assetCode: string;
|
|
12
|
+
assetScale: number;
|
|
13
|
+
supportedChains?: string[];
|
|
14
|
+
settlementAddresses?: Record<string, string>;
|
|
15
|
+
preferredTokens?: Record<string, string>;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}
|
|
18
|
+
export interface BuildIlpPeerInfoOptions {
|
|
19
|
+
ttlSeconds?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function buildIlpPeerInfoEvent(info: IlpPeerInfo, secretKey: Uint8Array, options?: BuildIlpPeerInfoOptions): NostrEvent;
|
|
22
|
+
//# sourceMappingURL=ilp-peer-info-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ilp-peer-info-event.d.ts","sourceRoot":"","sources":["../../src/discovery/ilp-peer-info-event.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7D,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAGxC,eAAO,MAAM,cAAc,eAAe,CAAC;AAU3C,MAAM,WAAW,WAAW;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,WAAW,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAO3B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,uBAAuB;IAOtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,UAAU,EACrB,OAAO,GAAE,uBAA4B,GACpC,UAAU,CAgBZ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXPIRATION_TAG = exports.ILP_PEER_INFO_KIND = void 0;
|
|
4
|
+
exports.buildIlpPeerInfoEvent = buildIlpPeerInfoEvent;
|
|
5
|
+
const nostr_tools_1 = require("nostr-tools");
|
|
6
|
+
exports.ILP_PEER_INFO_KIND = 10032;
|
|
7
|
+
exports.EXPIRATION_TAG = 'expiration';
|
|
8
|
+
function buildIlpPeerInfoEvent(info, secretKey, options = {}) {
|
|
9
|
+
const createdAt = Math.floor(Date.now() / 1000);
|
|
10
|
+
const tags = [];
|
|
11
|
+
if (options.ttlSeconds !== undefined && options.ttlSeconds > 0) {
|
|
12
|
+
tags.push([exports.EXPIRATION_TAG, String(createdAt + Math.floor(options.ttlSeconds))]);
|
|
13
|
+
}
|
|
14
|
+
return (0, nostr_tools_1.finalizeEvent)({
|
|
15
|
+
kind: exports.ILP_PEER_INFO_KIND,
|
|
16
|
+
content: JSON.stringify(info),
|
|
17
|
+
tags,
|
|
18
|
+
created_at: createdAt,
|
|
19
|
+
}, secretKey);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ilp-peer-info-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ilp-peer-info-event.js","sourceRoot":"","sources":["../../src/discovery/ilp-peer-info-event.ts"],"names":[],"mappings":";;;AAqGA,sDAoBC;AA5FD,6CAA6D;AAGhD,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAG3B,QAAA,cAAc,GAAG,YAAY,CAAC;AAkE3C,SAAgB,qBAAqB,CACnC,IAAiB,EACjB,SAAqB,EACrB,UAAmC,EAAE;IAErC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,sBAAc,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,IAAA,2BAAa,EAClB;QACE,IAAI,EAAE,0BAAkB;QACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7B,IAAI;QACJ,UAAU,EAAE,SAAS;KACtB,EACD,SAAS,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
export { PeerDiscoveryService } from './peer-discovery-service';
|
|
2
2
|
export type { PeerDiscoveryConfig, PeerInfo, AnnounceResponse, PeerListResponse, DiscoveryStatus, PeerDiscoveryEvents, } from './types';
|
|
3
|
+
export { SelfAnnounceService, DEFAULT_REFRESH_INTERVAL_SECS } from './self-announce-service';
|
|
4
|
+
export type { SelfAnnounceServiceDeps, PublishFn, PublishOutcome } from './self-announce-service';
|
|
5
|
+
export { buildSelfAnnouncementInfo, normalizeSettlementAddressKeys, resolveRouteHints, } from './self-announce-builder';
|
|
6
|
+
export type { AnnounceWarnFn, IlpRouteHints, SelfAnnouncementInfo } from './self-announce-builder';
|
|
7
|
+
export { planAnnouncePublish, encodeWriteEnvelope, DEFAULT_ANNOUNCE_PRICE, } from './self-announce-publish';
|
|
8
|
+
export type { AnnouncePublishPlan, AnnouncePublishMode } from './self-announce-publish';
|
|
9
|
+
export { buildIlpPeerInfoEvent, ILP_PEER_INFO_KIND, EXPIRATION_TAG } from './ilp-peer-info-event';
|
|
10
|
+
export type { IlpPeerInfo, BuildIlpPeerInfoOptions } from './ilp-peer-info-event';
|
|
3
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7F,YAAY,EAAE,uBAAuB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClG,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/discovery/index.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PeerDiscoveryService = void 0;
|
|
3
|
+
exports.EXPIRATION_TAG = exports.ILP_PEER_INFO_KIND = exports.buildIlpPeerInfoEvent = exports.DEFAULT_ANNOUNCE_PRICE = exports.encodeWriteEnvelope = exports.planAnnouncePublish = exports.resolveRouteHints = exports.normalizeSettlementAddressKeys = exports.buildSelfAnnouncementInfo = exports.DEFAULT_REFRESH_INTERVAL_SECS = exports.SelfAnnounceService = exports.PeerDiscoveryService = void 0;
|
|
4
4
|
var peer_discovery_service_1 = require("./peer-discovery-service");
|
|
5
5
|
Object.defineProperty(exports, "PeerDiscoveryService", { enumerable: true, get: function () { return peer_discovery_service_1.PeerDiscoveryService; } });
|
|
6
|
+
var self_announce_service_1 = require("./self-announce-service");
|
|
7
|
+
Object.defineProperty(exports, "SelfAnnounceService", { enumerable: true, get: function () { return self_announce_service_1.SelfAnnounceService; } });
|
|
8
|
+
Object.defineProperty(exports, "DEFAULT_REFRESH_INTERVAL_SECS", { enumerable: true, get: function () { return self_announce_service_1.DEFAULT_REFRESH_INTERVAL_SECS; } });
|
|
9
|
+
var self_announce_builder_1 = require("./self-announce-builder");
|
|
10
|
+
Object.defineProperty(exports, "buildSelfAnnouncementInfo", { enumerable: true, get: function () { return self_announce_builder_1.buildSelfAnnouncementInfo; } });
|
|
11
|
+
Object.defineProperty(exports, "normalizeSettlementAddressKeys", { enumerable: true, get: function () { return self_announce_builder_1.normalizeSettlementAddressKeys; } });
|
|
12
|
+
Object.defineProperty(exports, "resolveRouteHints", { enumerable: true, get: function () { return self_announce_builder_1.resolveRouteHints; } });
|
|
13
|
+
var self_announce_publish_1 = require("./self-announce-publish");
|
|
14
|
+
Object.defineProperty(exports, "planAnnouncePublish", { enumerable: true, get: function () { return self_announce_publish_1.planAnnouncePublish; } });
|
|
15
|
+
Object.defineProperty(exports, "encodeWriteEnvelope", { enumerable: true, get: function () { return self_announce_publish_1.encodeWriteEnvelope; } });
|
|
16
|
+
Object.defineProperty(exports, "DEFAULT_ANNOUNCE_PRICE", { enumerable: true, get: function () { return self_announce_publish_1.DEFAULT_ANNOUNCE_PRICE; } });
|
|
17
|
+
var ilp_peer_info_event_1 = require("./ilp-peer-info-event");
|
|
18
|
+
Object.defineProperty(exports, "buildIlpPeerInfoEvent", { enumerable: true, get: function () { return ilp_peer_info_event_1.buildIlpPeerInfoEvent; } });
|
|
19
|
+
Object.defineProperty(exports, "ILP_PEER_INFO_KIND", { enumerable: true, get: function () { return ilp_peer_info_event_1.ILP_PEER_INFO_KIND; } });
|
|
20
|
+
Object.defineProperty(exports, "EXPIRATION_TAG", { enumerable: true, get: function () { return ilp_peer_info_event_1.EXPIRATION_TAG; } });
|
|
6
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":";;;AAMA,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":";;;AAMA,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAa7B,iEAA6F;AAApF,4HAAA,mBAAmB,OAAA;AAAE,sIAAA,6BAA6B,OAAA;AAE3D,iEAIiC;AAH/B,kIAAA,yBAAyB,OAAA;AACzB,uIAAA,8BAA8B,OAAA;AAC9B,0HAAA,iBAAiB,OAAA;AAGnB,iEAIiC;AAH/B,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AACnB,+HAAA,sBAAsB,OAAA;AAGxB,6DAAkG;AAAzF,4HAAA,qBAAqB,OAAA;AAAE,yHAAA,kBAAkB,OAAA;AAAE,qHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ConnectorConfig, RouteConfig, SelfAnnounceConfig } from '../config/types';
|
|
2
|
+
import type { IlpPeerInfo } from './ilp-peer-info-event';
|
|
3
|
+
export type AnnounceWarnFn = (context: object, message: string) => void;
|
|
4
|
+
export interface IlpRouteHints {
|
|
5
|
+
publish: string;
|
|
6
|
+
store: string;
|
|
7
|
+
}
|
|
8
|
+
export type SelfAnnouncementInfo = IlpPeerInfo & {
|
|
9
|
+
routes: IlpRouteHints;
|
|
10
|
+
};
|
|
11
|
+
export declare function resolveRouteHints(routes: RouteConfig[], override?: SelfAnnounceConfig['routes']): IlpRouteHints;
|
|
12
|
+
export declare function normalizeSettlementAddressKeys(addresses: Record<string, string>, supportedChains: string[], warn?: AnnounceWarnFn): Record<string, string>;
|
|
13
|
+
export declare function buildSelfAnnouncementInfo(config: ConnectorConfig, selfAnnounce: SelfAnnounceConfig, warn?: AnnounceWarnFn): SelfAnnouncementInfo;
|
|
14
|
+
//# sourceMappingURL=self-announce-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-announce-builder.d.ts","sourceRoot":"","sources":["../../src/discovery/self-announce-builder.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUzD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAGxE,MAAM,WAAW,aAAa;IAE5B,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAyB3E,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EAAE,EACrB,QAAQ,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GACtC,aAAa,CA0Bf;AA4BD,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,eAAe,EAAE,MAAM,EAAE,EACzB,IAAI,CAAC,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4BxB;AAUD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,kBAAkB,EAChC,IAAI,CAAC,EAAE,cAAc,GACpB,oBAAoB,CAmDtB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveRouteHints = resolveRouteHints;
|
|
4
|
+
exports.normalizeSettlementAddressKeys = normalizeSettlementAddressKeys;
|
|
5
|
+
exports.buildSelfAnnouncementInfo = buildSelfAnnouncementInfo;
|
|
6
|
+
const DEFAULT_ASSET_CODE = 'USDC';
|
|
7
|
+
const DEFAULT_ASSET_SCALE = 6;
|
|
8
|
+
function isTerminated(route) {
|
|
9
|
+
return typeof route.upstream === 'string' && route.upstream.length > 0;
|
|
10
|
+
}
|
|
11
|
+
function routeAddress(route) {
|
|
12
|
+
return route.ilpAddress ?? route.prefix;
|
|
13
|
+
}
|
|
14
|
+
function resolveRouteHints(routes, override) {
|
|
15
|
+
const addresses = routes.map(routeAddress);
|
|
16
|
+
const relayRoute = addresses.find((a) => a.endsWith('.relay'));
|
|
17
|
+
const directStoreRoute = addresses.find((a) => a.endsWith('.store') && !a.includes('.relay.')) ??
|
|
18
|
+
addresses.find((a) => a.endsWith('.store'));
|
|
19
|
+
let publish = override?.publish ?? relayRoute;
|
|
20
|
+
let store = override?.store ?? directStoreRoute;
|
|
21
|
+
if (!publish && store) {
|
|
22
|
+
publish = store.endsWith('.store') ? `${store.slice(0, -'.store'.length)}.relay` : store;
|
|
23
|
+
}
|
|
24
|
+
if (!store && publish) {
|
|
25
|
+
store = publish.endsWith('.relay') ? `${publish.slice(0, -'.relay'.length)}.store` : publish;
|
|
26
|
+
}
|
|
27
|
+
const fallback = addresses[0] ?? '';
|
|
28
|
+
return {
|
|
29
|
+
publish: publish ?? fallback,
|
|
30
|
+
store: store ?? fallback,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function normalizeSettlementAddressKeys(addresses, supportedChains, warn) {
|
|
34
|
+
const out = {};
|
|
35
|
+
for (const [key, addr] of Object.entries(addresses)) {
|
|
36
|
+
if (key.includes(':')) {
|
|
37
|
+
if (supportedChains.length === 0 || supportedChains.includes(key)) {
|
|
38
|
+
out[key] = addr;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
warn?.({ event: 'self_announce_settlement_key_dropped', key, supportedChains }, 'Dropping settlementAddresses key not in supportedChains (would fail core kind:10032 parsing)');
|
|
42
|
+
}
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const qualified = supportedChains.filter((chainId) => chainId.split(':')[0] === key);
|
|
46
|
+
if (qualified.length === 0) {
|
|
47
|
+
warn?.({ event: 'self_announce_settlement_key_dropped', key, supportedChains }, 'Dropping bare settlementAddresses key with no matching chainProviders chain id (cannot be announced schema-compliantly)');
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
for (const chainId of qualified)
|
|
51
|
+
out[chainId] = addr;
|
|
52
|
+
}
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
55
|
+
function buildSelfAnnouncementInfo(config, selfAnnounce, warn) {
|
|
56
|
+
const terminated = config.routes.filter(isTerminated);
|
|
57
|
+
const sourceRoutes = terminated.length > 0 ? terminated : config.routes;
|
|
58
|
+
const ilpAddresses = Array.from(new Set(sourceRoutes.map(routeAddress))).filter(Boolean);
|
|
59
|
+
const ilpAddress = ilpAddresses[0] ?? '';
|
|
60
|
+
const supportedChains = (config.chainProviders ?? [])
|
|
61
|
+
.map((p) => p.chainId)
|
|
62
|
+
.filter((c) => typeof c === 'string' && c.length > 0);
|
|
63
|
+
const mergedAddresses = {};
|
|
64
|
+
for (const route of sourceRoutes) {
|
|
65
|
+
if (route.settlementAddresses) {
|
|
66
|
+
for (const [chain, addr] of Object.entries(route.settlementAddresses)) {
|
|
67
|
+
if (addr)
|
|
68
|
+
mergedAddresses[chain] = addr;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const settlementAddresses = normalizeSettlementAddressKeys(mergedAddresses, supportedChains, warn);
|
|
73
|
+
const routes = resolveRouteHints(config.routes, selfAnnounce.routes);
|
|
74
|
+
const info = {
|
|
75
|
+
ilpAddress,
|
|
76
|
+
...(ilpAddresses.length > 1 ? { ilpAddresses } : {}),
|
|
77
|
+
btpEndpoint: selfAnnounce.btpEndpoint ?? '',
|
|
78
|
+
assetCode: selfAnnounce.assetCode ?? DEFAULT_ASSET_CODE,
|
|
79
|
+
assetScale: selfAnnounce.assetScale ?? DEFAULT_ASSET_SCALE,
|
|
80
|
+
...(selfAnnounce.httpEndpoint ? { httpEndpoint: selfAnnounce.httpEndpoint } : {}),
|
|
81
|
+
...(selfAnnounce.relayUrl ? { relayUrl: selfAnnounce.relayUrl } : {}),
|
|
82
|
+
...(supportedChains.length > 0 ? { supportedChains } : {}),
|
|
83
|
+
...(Object.keys(settlementAddresses).length > 0 ? { settlementAddresses } : {}),
|
|
84
|
+
routes,
|
|
85
|
+
};
|
|
86
|
+
return info;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=self-announce-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-announce-builder.js","sourceRoot":"","sources":["../../src/discovery/self-announce-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NostrEvent } from 'nostr-tools';
|
|
2
|
+
export declare const DEFAULT_ANNOUNCE_PRICE = "1000";
|
|
3
|
+
export type AnnouncePublishMode = 'local-free' | 'remote-paid';
|
|
4
|
+
export interface AnnouncePublishPlan {
|
|
5
|
+
destination: string;
|
|
6
|
+
amount: bigint;
|
|
7
|
+
mode: AnnouncePublishMode;
|
|
8
|
+
data: Buffer;
|
|
9
|
+
}
|
|
10
|
+
export declare function encodeWriteEnvelope(event: NostrEvent): Buffer;
|
|
11
|
+
export declare function planAnnouncePublish(args: {
|
|
12
|
+
announceTo: string;
|
|
13
|
+
event: NostrEvent;
|
|
14
|
+
isLocallyTerminated: boolean;
|
|
15
|
+
remotePriceAtomic?: string;
|
|
16
|
+
}): AnnouncePublishPlan;
|
|
17
|
+
//# sourceMappingURL=self-announce-publish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-announce-publish.d.ts","sourceRoot":"","sources":["../../src/discovery/self-announce-publish.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,aAAa,CAAC;AAG/D,MAAM,WAAW,mBAAmB;IAElC,WAAW,EAAE,MAAM,CAAC;IAMpB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,mBAAmB,CAAC;IAE1B,IAAI,EAAE,MAAM,CAAC;CACd;AAQD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAa7D;AAaD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,mBAAmB,CAYtB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_ANNOUNCE_PRICE = void 0;
|
|
4
|
+
exports.encodeWriteEnvelope = encodeWriteEnvelope;
|
|
5
|
+
exports.planAnnouncePublish = planAnnouncePublish;
|
|
6
|
+
const http_proxy_handler_1 = require("../core/handlers/http-proxy-handler");
|
|
7
|
+
exports.DEFAULT_ANNOUNCE_PRICE = '1000';
|
|
8
|
+
function encodeWriteEnvelope(event) {
|
|
9
|
+
const body = Buffer.from(JSON.stringify({ event }), 'utf8');
|
|
10
|
+
return (0, http_proxy_handler_1.encodeHttpRequest)({
|
|
11
|
+
method: 'POST',
|
|
12
|
+
target: '/write',
|
|
13
|
+
httpVersion: 'HTTP/1.1',
|
|
14
|
+
headers: [
|
|
15
|
+
['Host', 'relay'],
|
|
16
|
+
['Content-Type', 'application/json'],
|
|
17
|
+
['Content-Length', String(body.length)],
|
|
18
|
+
],
|
|
19
|
+
body,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function planAnnouncePublish(args) {
|
|
23
|
+
const data = encodeWriteEnvelope(args.event);
|
|
24
|
+
if (args.isLocallyTerminated) {
|
|
25
|
+
return { destination: args.announceTo, amount: 0n, mode: 'local-free', data };
|
|
26
|
+
}
|
|
27
|
+
const price = args.remotePriceAtomic ?? exports.DEFAULT_ANNOUNCE_PRICE;
|
|
28
|
+
return {
|
|
29
|
+
destination: args.announceTo,
|
|
30
|
+
amount: BigInt(price),
|
|
31
|
+
mode: 'remote-paid',
|
|
32
|
+
data,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=self-announce-publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-announce-publish.js","sourceRoot":"","sources":["../../src/discovery/self-announce-publish.ts"],"names":[],"mappings":";;;AA8DA,kDAaC;AAaD,kDAiBC;AAzED,4EAAwE;AAG3D,QAAA,sBAAsB,GAAG,MAAM,CAAC;AA2B7C,SAAgB,mBAAmB,CAAC,KAAiB;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,IAAA,sCAAiB,EAAC;QACvB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE;YACP,CAAC,MAAM,EAAE,OAAO,CAAC;YACjB,CAAC,cAAc,EAAE,kBAAkB,CAAC;YACpC,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACxC;QACD,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAaD,SAAgB,mBAAmB,CAAC,IAKnC;IACC,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,8BAAsB,CAAC;IAC/D,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,IAAI,EAAE,aAAa;QACnB,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import type { NostrEvent } from 'nostr-tools';
|
|
3
|
+
import type { ConnectorConfig, SelfAnnounceConfig } from '../config/types';
|
|
4
|
+
export declare const DEFAULT_REFRESH_INTERVAL_SECS = 300;
|
|
5
|
+
export interface PublishOutcome {
|
|
6
|
+
mode: 'local-free' | 'remote-paid';
|
|
7
|
+
ok: boolean;
|
|
8
|
+
detail?: string;
|
|
9
|
+
}
|
|
10
|
+
export type PublishFn = (event: NostrEvent) => Promise<PublishOutcome>;
|
|
11
|
+
export interface SelfAnnounceServiceDeps {
|
|
12
|
+
config: ConnectorConfig;
|
|
13
|
+
selfAnnounce: SelfAnnounceConfig;
|
|
14
|
+
secretKey: Uint8Array;
|
|
15
|
+
publish: PublishFn;
|
|
16
|
+
logger: Logger;
|
|
17
|
+
}
|
|
18
|
+
export declare class SelfAnnounceService {
|
|
19
|
+
private readonly _config;
|
|
20
|
+
private readonly _selfAnnounce;
|
|
21
|
+
private readonly _secretKey;
|
|
22
|
+
private readonly _publish;
|
|
23
|
+
private readonly _logger;
|
|
24
|
+
private readonly _refreshIntervalSecs;
|
|
25
|
+
private readonly _ttlSeconds;
|
|
26
|
+
private _timer;
|
|
27
|
+
private _running;
|
|
28
|
+
constructor(deps: SelfAnnounceServiceDeps);
|
|
29
|
+
get running(): boolean;
|
|
30
|
+
get ttlSeconds(): number;
|
|
31
|
+
buildEvent(): NostrEvent;
|
|
32
|
+
start(): void;
|
|
33
|
+
stop(): void;
|
|
34
|
+
publish(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=self-announce-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-announce-service.d.ts","sourceRoot":"","sources":["../../src/discovery/self-announce-service.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK3E,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAOjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IACnC,EAAE,EAAE,OAAO,CAAC;IAEZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEvE,MAAM,WAAW,uBAAuB;IAEtC,MAAM,EAAE,eAAe,CAAC;IAExB,YAAY,EAAE,kBAAkB,CAAC;IAEjC,SAAS,EAAE,UAAU,CAAC;IAEtB,OAAO,EAAE,SAAS,CAAC;IAEnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,uBAAuB;IAkBzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAGD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAMD,UAAU,IAAI,UAAU;IAWxB,KAAK,IAAI,IAAI;IAoCb,IAAI,IAAI,IAAI;IAiBN,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgD/B"}
|