@toon-protocol/connector 1.7.1
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/LICENSE +21 -0
- package/README.md +421 -0
- package/dist/btp/btp-claim-types.d.ts +30 -0
- package/dist/btp/btp-claim-types.d.ts.map +1 -0
- package/dist/btp/btp-claim-types.js +103 -0
- package/dist/btp/btp-claim-types.js.map +1 -0
- package/dist/btp/btp-client-manager.d.ts +27 -0
- package/dist/btp/btp-client-manager.d.ts.map +1 -0
- package/dist/btp/btp-client-manager.js +138 -0
- package/dist/btp/btp-client-manager.js.map +1 -0
- package/dist/btp/btp-client.d.ts +55 -0
- package/dist/btp/btp-client.d.ts.map +1 -0
- package/dist/btp/btp-client.js +474 -0
- package/dist/btp/btp-client.js.map +1 -0
- package/dist/btp/btp-message-parser.d.ts +4 -0
- package/dist/btp/btp-message-parser.d.ts.map +1 -0
- package/dist/btp/btp-message-parser.js +211 -0
- package/dist/btp/btp-message-parser.js.map +1 -0
- package/dist/btp/btp-server.d.ts +30 -0
- package/dist/btp/btp-server.d.ts.map +1 -0
- package/dist/btp/btp-server.js +458 -0
- package/dist/btp/btp-server.js.map +1 -0
- package/dist/btp/btp-types.d.ts +43 -0
- package/dist/btp/btp-types.d.ts.map +1 -0
- package/dist/btp/btp-types.js +44 -0
- package/dist/btp/btp-types.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +175 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/onboarding-wizard.d.ts +7 -0
- package/dist/cli/onboarding-wizard.d.ts.map +1 -0
- package/dist/cli/onboarding-wizard.js +257 -0
- package/dist/cli/onboarding-wizard.js.map +1 -0
- package/dist/cli/types.d.ts +38 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +3 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/config/aptos-env-validator.d.ts +8 -0
- package/dist/config/aptos-env-validator.d.ts.map +1 -0
- package/dist/config/aptos-env-validator.js +25 -0
- package/dist/config/aptos-env-validator.js.map +1 -0
- package/dist/config/config-loader.d.ts +20 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +269 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/environment-validator.d.ts +4 -0
- package/dist/config/environment-validator.d.ts.map +1 -0
- package/dist/config/environment-validator.js +239 -0
- package/dist/config/environment-validator.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/key-manager-config.d.ts +7 -0
- package/dist/config/key-manager-config.d.ts.map +1 -0
- package/dist/config/key-manager-config.js +209 -0
- package/dist/config/key-manager-config.js.map +1 -0
- package/dist/config/topology-validator.d.ts +14 -0
- package/dist/config/topology-validator.d.ts.map +1 -0
- package/dist/config/topology-validator.js +142 -0
- package/dist/config/topology-validator.js.map +1 -0
- package/dist/config/types.d.ts +210 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +10 -0
- package/dist/config/types.js.map +1 -0
- package/dist/core/connector-node.d.ts +79 -0
- package/dist/core/connector-node.d.ts.map +1 -0
- package/dist/core/connector-node.js +1036 -0
- package/dist/core/connector-node.js.map +1 -0
- package/dist/core/local-delivery-client.d.ts +16 -0
- package/dist/core/local-delivery-client.d.ts.map +1 -0
- package/dist/core/local-delivery-client.js +176 -0
- package/dist/core/local-delivery-client.js.map +1 -0
- package/dist/core/packet-handler.d.ts +45 -0
- package/dist/core/packet-handler.d.ts.map +1 -0
- package/dist/core/packet-handler.js +606 -0
- package/dist/core/packet-handler.js.map +1 -0
- package/dist/core/payment-handler.d.ts +27 -0
- package/dist/core/payment-handler.d.ts.map +1 -0
- package/dist/core/payment-handler.js +115 -0
- package/dist/core/payment-handler.js.map +1 -0
- package/dist/discovery/index.d.ts +3 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +6 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/peer-discovery-service.d.ts +29 -0
- package/dist/discovery/peer-discovery-service.d.ts.map +1 -0
- package/dist/discovery/peer-discovery-service.js +230 -0
- package/dist/discovery/peer-discovery-service.js.map +1 -0
- package/dist/discovery/types.d.ts +38 -0
- package/dist/discovery/types.d.ts.map +1 -0
- package/dist/discovery/types.js +3 -0
- package/dist/discovery/types.js.map +1 -0
- package/dist/encoding/oer-parser.d.ts +39 -0
- package/dist/encoding/oer-parser.d.ts.map +1 -0
- package/dist/encoding/oer-parser.js +154 -0
- package/dist/encoding/oer-parser.js.map +1 -0
- package/dist/explorer-ui/assets/EventDetailPanel-CnSaMk3V.js +6 -0
- package/dist/explorer-ui/assets/FilterBar-BEmAzBku.js +26 -0
- package/dist/explorer-ui/assets/chevron-right-BUT9VhYe.js +11 -0
- package/dist/explorer-ui/assets/index-BZ2INVgy.js +360 -0
- package/dist/explorer-ui/assets/index-Cemh6svI.css +1 -0
- package/dist/explorer-ui/index.html +14 -0
- package/dist/explorer-ui/vite.svg +1 -0
- package/dist/facilitator/index.d.ts +2 -0
- package/dist/facilitator/index.d.ts.map +1 -0
- package/dist/facilitator/index.js +7 -0
- package/dist/facilitator/index.js.map +1 -0
- package/dist/facilitator/spsp-client.d.ts +18 -0
- package/dist/facilitator/spsp-client.d.ts.map +1 -0
- package/dist/facilitator/spsp-client.js +95 -0
- package/dist/facilitator/spsp-client.js.map +1 -0
- package/dist/http/admin-api.d.ts +123 -0
- package/dist/http/admin-api.d.ts.map +1 -0
- package/dist/http/admin-api.js +1057 -0
- package/dist/http/admin-api.js.map +1 -0
- package/dist/http/admin-server.d.ts +41 -0
- package/dist/http/admin-server.d.ts.map +1 -0
- package/dist/http/admin-server.js +156 -0
- package/dist/http/admin-server.js.map +1 -0
- package/dist/http/health-server.d.ts +22 -0
- package/dist/http/health-server.d.ts.map +1 -0
- package/dist/http/health-server.js +192 -0
- package/dist/http/health-server.js.map +1 -0
- package/dist/http/ilp-send-handler.d.ts +19 -0
- package/dist/http/ilp-send-handler.d.ts.map +1 -0
- package/dist/http/ilp-send-handler.js +162 -0
- package/dist/http/ilp-send-handler.js.map +1 -0
- package/dist/http/types.d.ts +39 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/http/types.js +3 -0
- package/dist/http/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib.d.ts +22 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +41 -0
- package/dist/lib.js.map +1 -0
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +79 -0
- package/dist/main.js.map +1 -0
- package/dist/routing/packet-processor.d.ts +36 -0
- package/dist/routing/packet-processor.d.ts.map +1 -0
- package/dist/routing/packet-processor.js +112 -0
- package/dist/routing/packet-processor.js.map +1 -0
- package/dist/routing/packet-worker.d.ts +10 -0
- package/dist/routing/packet-worker.d.ts.map +1 -0
- package/dist/routing/packet-worker.js +34 -0
- package/dist/routing/packet-worker.js.map +1 -0
- package/dist/routing/routing-table.d.ts +15 -0
- package/dist/routing/routing-table.d.ts.map +1 -0
- package/dist/routing/routing-table.js +63 -0
- package/dist/routing/routing-table.js.map +1 -0
- package/dist/routing/worker-pool.d.ts +43 -0
- package/dist/routing/worker-pool.d.ts.map +1 -0
- package/dist/routing/worker-pool.js +228 -0
- package/dist/routing/worker-pool.js.map +1 -0
- package/dist/security/alert-notifier.d.ts +34 -0
- package/dist/security/alert-notifier.d.ts.map +1 -0
- package/dist/security/alert-notifier.js +136 -0
- package/dist/security/alert-notifier.js.map +1 -0
- package/dist/security/audit-logger.d.ts +34 -0
- package/dist/security/audit-logger.d.ts.map +1 -0
- package/dist/security/audit-logger.js +132 -0
- package/dist/security/audit-logger.js.map +1 -0
- package/dist/security/backends/aws-kms-backend.d.ts +18 -0
- package/dist/security/backends/aws-kms-backend.d.ts.map +1 -0
- package/dist/security/backends/aws-kms-backend.js +130 -0
- package/dist/security/backends/aws-kms-backend.js.map +1 -0
- package/dist/security/backends/azure-kv-backend.d.ts +17 -0
- package/dist/security/backends/azure-kv-backend.d.ts.map +1 -0
- package/dist/security/backends/azure-kv-backend.js +121 -0
- package/dist/security/backends/azure-kv-backend.js.map +1 -0
- package/dist/security/backends/environment-backend.d.ts +15 -0
- package/dist/security/backends/environment-backend.d.ts.map +1 -0
- package/dist/security/backends/environment-backend.js +56 -0
- package/dist/security/backends/environment-backend.js.map +1 -0
- package/dist/security/backends/gcp-kms-backend.d.ts +17 -0
- package/dist/security/backends/gcp-kms-backend.d.ts.map +1 -0
- package/dist/security/backends/gcp-kms-backend.js +110 -0
- package/dist/security/backends/gcp-kms-backend.js.map +1 -0
- package/dist/security/backends/hsm-backend.d.ts +18 -0
- package/dist/security/backends/hsm-backend.d.ts.map +1 -0
- package/dist/security/backends/hsm-backend.js +187 -0
- package/dist/security/backends/hsm-backend.js.map +1 -0
- package/dist/security/fraud-detector.d.ts +79 -0
- package/dist/security/fraud-detector.d.ts.map +1 -0
- package/dist/security/fraud-detector.js +147 -0
- package/dist/security/fraud-detector.js.map +1 -0
- package/dist/security/key-manager-signer.d.ts +15 -0
- package/dist/security/key-manager-signer.d.ts.map +1 -0
- package/dist/security/key-manager-signer.js +91 -0
- package/dist/security/key-manager-signer.js.map +1 -0
- package/dist/security/key-manager.d.ts +69 -0
- package/dist/security/key-manager.d.ts.map +1 -0
- package/dist/security/key-manager.js +79 -0
- package/dist/security/key-manager.js.map +1 -0
- package/dist/security/key-rotation-manager.d.ts +27 -0
- package/dist/security/key-rotation-manager.d.ts.map +1 -0
- package/dist/security/key-rotation-manager.js +142 -0
- package/dist/security/key-rotation-manager.js.map +1 -0
- package/dist/security/rate-limit-config.d.ts +7 -0
- package/dist/security/rate-limit-config.d.ts.map +1 -0
- package/dist/security/rate-limit-config.js +57 -0
- package/dist/security/rate-limit-config.js.map +1 -0
- package/dist/security/rate-limiter.d.ts +46 -0
- package/dist/security/rate-limiter.d.ts.map +1 -0
- package/dist/security/rate-limiter.js +170 -0
- package/dist/security/rate-limiter.js.map +1 -0
- package/dist/security/reputation-tracker.d.ts +30 -0
- package/dist/security/reputation-tracker.d.ts.map +1 -0
- package/dist/security/reputation-tracker.js +111 -0
- package/dist/security/reputation-tracker.js.map +1 -0
- package/dist/security/rules/balance-manipulation-rule.d.ts +23 -0
- package/dist/security/rules/balance-manipulation-rule.d.ts.map +1 -0
- package/dist/security/rules/balance-manipulation-rule.js +70 -0
- package/dist/security/rules/balance-manipulation-rule.js.map +1 -0
- package/dist/security/rules/double-spend-detection-rule.d.ts +23 -0
- package/dist/security/rules/double-spend-detection-rule.d.ts.map +1 -0
- package/dist/security/rules/double-spend-detection-rule.js +61 -0
- package/dist/security/rules/double-spend-detection-rule.js.map +1 -0
- package/dist/security/rules/rapid-channel-closure-rule.d.ts +16 -0
- package/dist/security/rules/rapid-channel-closure-rule.d.ts.map +1 -0
- package/dist/security/rules/rapid-channel-closure-rule.js +57 -0
- package/dist/security/rules/rapid-channel-closure-rule.js.map +1 -0
- package/dist/security/rules/sudden-traffic-spike-rule.d.ts +18 -0
- package/dist/security/rules/sudden-traffic-spike-rule.d.ts.map +1 -0
- package/dist/security/rules/sudden-traffic-spike-rule.js +92 -0
- package/dist/security/rules/sudden-traffic-spike-rule.js.map +1 -0
- package/dist/security/rules/unusual-settlement-amount-rule.d.ts +12 -0
- package/dist/security/rules/unusual-settlement-amount-rule.d.ts.map +1 -0
- package/dist/security/rules/unusual-settlement-amount-rule.js +33 -0
- package/dist/security/rules/unusual-settlement-amount-rule.js.map +1 -0
- package/dist/security/token-bucket.d.ts +16 -0
- package/dist/security/token-bucket.d.ts.map +1 -0
- package/dist/security/token-bucket.js +49 -0
- package/dist/security/token-bucket.js.map +1 -0
- package/dist/security/violation-counter.d.ts +11 -0
- package/dist/security/violation-counter.d.ts.map +1 -0
- package/dist/security/violation-counter.js +61 -0
- package/dist/security/violation-counter.js.map +1 -0
- package/dist/settlement/account-id-generator.d.ts +4 -0
- package/dist/settlement/account-id-generator.d.ts.map +1 -0
- package/dist/settlement/account-id-generator.js +38 -0
- package/dist/settlement/account-id-generator.js.map +1 -0
- package/dist/settlement/account-manager.d.ts +47 -0
- package/dist/settlement/account-manager.d.ts.map +1 -0
- package/dist/settlement/account-manager.js +447 -0
- package/dist/settlement/account-manager.js.map +1 -0
- package/dist/settlement/account-metadata.d.ts +11 -0
- package/dist/settlement/account-metadata.d.ts.map +1 -0
- package/dist/settlement/account-metadata.js +40 -0
- package/dist/settlement/account-metadata.js.map +1 -0
- package/dist/settlement/aptos-channel-sdk.d.ts +66 -0
- package/dist/settlement/aptos-channel-sdk.d.ts.map +1 -0
- package/dist/settlement/aptos-channel-sdk.js +274 -0
- package/dist/settlement/aptos-channel-sdk.js.map +1 -0
- package/dist/settlement/aptos-claim-signer.d.ts +57 -0
- package/dist/settlement/aptos-claim-signer.d.ts.map +1 -0
- package/dist/settlement/aptos-claim-signer.js +200 -0
- package/dist/settlement/aptos-claim-signer.js.map +1 -0
- package/dist/settlement/aptos-client.d.ts +99 -0
- package/dist/settlement/aptos-client.d.ts.map +1 -0
- package/dist/settlement/aptos-client.js +474 -0
- package/dist/settlement/aptos-client.js.map +1 -0
- package/dist/settlement/channel-manager.d.ts +66 -0
- package/dist/settlement/channel-manager.d.ts.map +1 -0
- package/dist/settlement/channel-manager.js +214 -0
- package/dist/settlement/channel-manager.js.map +1 -0
- package/dist/settlement/claim-receiver-db-schema.d.ts +4 -0
- package/dist/settlement/claim-receiver-db-schema.d.ts.map +1 -0
- package/dist/settlement/claim-receiver-db-schema.js +25 -0
- package/dist/settlement/claim-receiver-db-schema.js.map +1 -0
- package/dist/settlement/claim-receiver.d.ts +31 -0
- package/dist/settlement/claim-receiver.d.ts.map +1 -0
- package/dist/settlement/claim-receiver.js +228 -0
- package/dist/settlement/claim-receiver.js.map +1 -0
- package/dist/settlement/claim-redemption-service.d.ts +39 -0
- package/dist/settlement/claim-redemption-service.d.ts.map +1 -0
- package/dist/settlement/claim-redemption-service.js +189 -0
- package/dist/settlement/claim-redemption-service.js.map +1 -0
- package/dist/settlement/claim-sender-db-schema.d.ts +3 -0
- package/dist/settlement/claim-sender-db-schema.d.ts.map +1 -0
- package/dist/settlement/claim-sender-db-schema.js +18 -0
- package/dist/settlement/claim-sender-db-schema.js.map +1 -0
- package/dist/settlement/claim-sender.d.ts +22 -0
- package/dist/settlement/claim-sender.d.ts.map +1 -0
- package/dist/settlement/claim-sender.js +108 -0
- package/dist/settlement/claim-sender.js.map +1 -0
- package/dist/settlement/eip712-helper.d.ts +13 -0
- package/dist/settlement/eip712-helper.d.ts.map +1 -0
- package/dist/settlement/eip712-helper.js +24 -0
- package/dist/settlement/eip712-helper.js.map +1 -0
- package/dist/settlement/in-memory-ledger-client.d.ts +40 -0
- package/dist/settlement/in-memory-ledger-client.d.ts.map +1 -0
- package/dist/settlement/in-memory-ledger-client.js +177 -0
- package/dist/settlement/in-memory-ledger-client.js.map +1 -0
- package/dist/settlement/ledger-client.d.ts +22 -0
- package/dist/settlement/ledger-client.d.ts.map +1 -0
- package/dist/settlement/ledger-client.js +3 -0
- package/dist/settlement/ledger-client.js.map +1 -0
- package/dist/settlement/metrics-collector.d.ts +29 -0
- package/dist/settlement/metrics-collector.d.ts.map +1 -0
- package/dist/settlement/metrics-collector.js +81 -0
- package/dist/settlement/metrics-collector.js.map +1 -0
- package/dist/settlement/payment-channel-sdk.d.ts +59 -0
- package/dist/settlement/payment-channel-sdk.d.ts.map +1 -0
- package/dist/settlement/payment-channel-sdk.js +677 -0
- package/dist/settlement/payment-channel-sdk.js.map +1 -0
- package/dist/settlement/per-packet-claim-service.d.ts +33 -0
- package/dist/settlement/per-packet-claim-service.d.ts.map +1 -0
- package/dist/settlement/per-packet-claim-service.js +177 -0
- package/dist/settlement/per-packet-claim-service.js.map +1 -0
- package/dist/settlement/settlement-api.d.ts +37 -0
- package/dist/settlement/settlement-api.d.ts.map +1 -0
- package/dist/settlement/settlement-api.js +172 -0
- package/dist/settlement/settlement-api.js.map +1 -0
- package/dist/settlement/settlement-coordinator.d.ts +47 -0
- package/dist/settlement/settlement-coordinator.d.ts.map +1 -0
- package/dist/settlement/settlement-coordinator.js +166 -0
- package/dist/settlement/settlement-coordinator.js.map +1 -0
- package/dist/settlement/settlement-executor.d.ts +44 -0
- package/dist/settlement/settlement-executor.d.ts.map +1 -0
- package/dist/settlement/settlement-executor.js +247 -0
- package/dist/settlement/settlement-executor.js.map +1 -0
- package/dist/settlement/settlement-monitor.d.ts +29 -0
- package/dist/settlement/settlement-monitor.d.ts.map +1 -0
- package/dist/settlement/settlement-monitor.js +172 -0
- package/dist/settlement/settlement-monitor.js.map +1 -0
- package/dist/settlement/tigerbeetle-batch-writer.d.ts +58 -0
- package/dist/settlement/tigerbeetle-batch-writer.d.ts.map +1 -0
- package/dist/settlement/tigerbeetle-batch-writer.js +162 -0
- package/dist/settlement/tigerbeetle-batch-writer.js.map +1 -0
- package/dist/settlement/tigerbeetle-client.d.ts +40 -0
- package/dist/settlement/tigerbeetle-client.d.ts.map +1 -0
- package/dist/settlement/tigerbeetle-client.js +279 -0
- package/dist/settlement/tigerbeetle-client.js.map +1 -0
- package/dist/settlement/tigerbeetle-errors.d.ts +23 -0
- package/dist/settlement/tigerbeetle-errors.d.ts.map +1 -0
- package/dist/settlement/tigerbeetle-errors.js +58 -0
- package/dist/settlement/tigerbeetle-errors.js.map +1 -0
- package/dist/settlement/types.d.ts +64 -0
- package/dist/settlement/types.d.ts.map +1 -0
- package/dist/settlement/types.js +42 -0
- package/dist/settlement/types.js.map +1 -0
- package/dist/settlement/unified-settlement-executor.d.ts +34 -0
- package/dist/settlement/unified-settlement-executor.d.ts.map +1 -0
- package/dist/settlement/unified-settlement-executor.js +145 -0
- package/dist/settlement/unified-settlement-executor.js.map +1 -0
- package/dist/settlement/xrp-channel-lifecycle.d.ts +41 -0
- package/dist/settlement/xrp-channel-lifecycle.d.ts.map +1 -0
- package/dist/settlement/xrp-channel-lifecycle.js +142 -0
- package/dist/settlement/xrp-channel-lifecycle.js.map +1 -0
- package/dist/settlement/xrp-channel-manager.d.ts +59 -0
- package/dist/settlement/xrp-channel-manager.d.ts.map +1 -0
- package/dist/settlement/xrp-channel-manager.js +160 -0
- package/dist/settlement/xrp-channel-manager.js.map +1 -0
- package/dist/settlement/xrp-channel-sdk.d.ts +30 -0
- package/dist/settlement/xrp-channel-sdk.d.ts.map +1 -0
- package/dist/settlement/xrp-channel-sdk.js +164 -0
- package/dist/settlement/xrp-channel-sdk.js.map +1 -0
- package/dist/settlement/xrp-claim-signer.d.ts +22 -0
- package/dist/settlement/xrp-claim-signer.d.ts.map +1 -0
- package/dist/settlement/xrp-claim-signer.js +122 -0
- package/dist/settlement/xrp-claim-signer.js.map +1 -0
- package/dist/settlement/xrpl-client.d.ts +104 -0
- package/dist/settlement/xrpl-client.d.ts.map +1 -0
- package/dist/settlement/xrpl-client.js +304 -0
- package/dist/settlement/xrpl-client.js.map +1 -0
- package/dist/test/testnet-config.d.ts +58 -0
- package/dist/test/testnet-config.d.ts.map +1 -0
- package/dist/test/testnet-config.js +89 -0
- package/dist/test/testnet-config.js.map +1 -0
- package/dist/test-utils/index.d.ts +3 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +15 -0
- package/dist/test-utils/index.js.map +1 -0
- package/dist/test-utils/isolated-test-env.d.ts +31 -0
- package/dist/test-utils/isolated-test-env.d.ts.map +1 -0
- package/dist/test-utils/isolated-test-env.js +127 -0
- package/dist/test-utils/isolated-test-env.js.map +1 -0
- package/dist/test-utils/mock-factories-patch.d.ts +2 -0
- package/dist/test-utils/mock-factories-patch.d.ts.map +1 -0
- package/dist/test-utils/mock-factories-patch.js +3 -0
- package/dist/test-utils/mock-factories-patch.js.map +1 -0
- package/dist/test-utils/mock-factories.d.ts +22 -0
- package/dist/test-utils/mock-factories.d.ts.map +1 -0
- package/dist/test-utils/mock-factories.js +56 -0
- package/dist/test-utils/mock-factories.js.map +1 -0
- package/dist/utils/connection-pool.d.ts +42 -0
- package/dist/utils/connection-pool.d.ts.map +1 -0
- package/dist/utils/connection-pool.js +209 -0
- package/dist/utils/connection-pool.js.map +1 -0
- package/dist/utils/evm-rpc-connection-pool.d.ts +8 -0
- package/dist/utils/evm-rpc-connection-pool.d.ts.map +1 -0
- package/dist/utils/evm-rpc-connection-pool.js +40 -0
- package/dist/utils/evm-rpc-connection-pool.js.map +1 -0
- package/dist/utils/logger.d.ts +6 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +58 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/optional-require.d.ts +2 -0
- package/dist/utils/optional-require.d.ts.map +1 -0
- package/dist/utils/optional-require.js +54 -0
- package/dist/utils/optional-require.js.map +1 -0
- package/dist/utils/xrp-wss-connection-pool.d.ts +8 -0
- package/dist/utils/xrp-wss-connection-pool.d.ts.map +1 -0
- package/dist/utils/xrp-wss-connection-pool.js +42 -0
- package/dist/utils/xrp-wss-connection-pool.js.map +1 -0
- package/dist/wallet/audit-logger.d.ts +22 -0
- package/dist/wallet/audit-logger.d.ts.map +1 -0
- package/dist/wallet/audit-logger.js +120 -0
- package/dist/wallet/audit-logger.js.map +1 -0
- package/dist/wallet/fraud-detector-interface.d.ts +14 -0
- package/dist/wallet/fraud-detector-interface.d.ts.map +1 -0
- package/dist/wallet/fraud-detector-interface.js +3 -0
- package/dist/wallet/fraud-detector-interface.js.map +1 -0
- package/dist/wallet/key-manager.d.ts +6 -0
- package/dist/wallet/key-manager.d.ts.map +1 -0
- package/dist/wallet/key-manager.js +3 -0
- package/dist/wallet/key-manager.js.map +1 -0
- package/dist/wallet/placeholder-fraud-detector.d.ts +10 -0
- package/dist/wallet/placeholder-fraud-detector.d.ts.map +1 -0
- package/dist/wallet/placeholder-fraud-detector.js +10 -0
- package/dist/wallet/placeholder-fraud-detector.js.map +1 -0
- package/dist/wallet/rate-limiter.d.ts +26 -0
- package/dist/wallet/rate-limiter.d.ts.map +1 -0
- package/dist/wallet/rate-limiter.js +114 -0
- package/dist/wallet/rate-limiter.js.map +1 -0
- package/dist/wallet/suspicious-activity-detector.d.ts +25 -0
- package/dist/wallet/suspicious-activity-detector.d.ts.map +1 -0
- package/dist/wallet/suspicious-activity-detector.js +97 -0
- package/dist/wallet/suspicious-activity-detector.js.map +1 -0
- package/dist/wallet/treasury-wallet.d.ts +20 -0
- package/dist/wallet/treasury-wallet.d.ts.map +1 -0
- package/dist/wallet/treasury-wallet.js +151 -0
- package/dist/wallet/treasury-wallet.js.map +1 -0
- package/dist/wallet/wallet-authentication.d.ts +31 -0
- package/dist/wallet/wallet-authentication.d.ts.map +1 -0
- package/dist/wallet/wallet-authentication.js +102 -0
- package/dist/wallet/wallet-authentication.js.map +1 -0
- package/dist/wallet/wallet-db-schema.d.ts +11 -0
- package/dist/wallet/wallet-db-schema.d.ts.map +1 -0
- package/dist/wallet/wallet-db-schema.js +79 -0
- package/dist/wallet/wallet-db-schema.js.map +1 -0
- package/dist/wallet/wallet-security.d.ts +58 -0
- package/dist/wallet/wallet-security.d.ts.map +1 -0
- package/dist/wallet/wallet-security.js +148 -0
- package/dist/wallet/wallet-security.js.map +1 -0
- package/dist/wallet/wallet-seed-manager.d.ts +65 -0
- package/dist/wallet/wallet-seed-manager.d.ts.map +1 -0
- package/dist/wallet/wallet-seed-manager.js +418 -0
- package/dist/wallet/wallet-seed-manager.js.map +1 -0
- package/package.json +134 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 M2M Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
# @toon-protocol/connector
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@toon-protocol/connector)
|
|
4
|
+
[](../../LICENSE)
|
|
5
|
+
|
|
6
|
+
> ILP connector node for AI agent payment networks. Routes packets, tracks balances, settles on-chain.
|
|
7
|
+
|
|
8
|
+
See the [root README](../../README.md) for conceptual overview, network architecture, and Docker deployment.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install @toon-protocol/connector
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ConnectorNode, createLogger } from '@toon-protocol/connector';
|
|
20
|
+
|
|
21
|
+
const node = new ConnectorNode('config.yaml', createLogger('my-agent', 'info'));
|
|
22
|
+
|
|
23
|
+
node.setPacketHandler(async (request) => {
|
|
24
|
+
console.log(`Received ${request.amount} tokens`);
|
|
25
|
+
return { accept: true };
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
await node.start();
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Deployment Modes
|
|
32
|
+
|
|
33
|
+
The connector supports two deployment modes via `deploymentMode` in config:
|
|
34
|
+
|
|
35
|
+
| Mode | Value | How packets arrive | How packets are sent |
|
|
36
|
+
| -------------- | -------------- | ----------------------------- | ------------------------------ |
|
|
37
|
+
| **Embedded** | `'embedded'` | `setPacketHandler()` callback | `node.sendPacket()` |
|
|
38
|
+
| **Standalone** | `'standalone'` | HTTP POST to BLS `handlerUrl` | HTTP POST to `/admin/ilp/send` |
|
|
39
|
+
|
|
40
|
+
When `deploymentMode` is omitted, it is inferred from `localDelivery` and `adminApi` flags.
|
|
41
|
+
|
|
42
|
+
### Embedded Mode (Recommended for Libraries)
|
|
43
|
+
|
|
44
|
+
Pass a `ConnectorConfig` object directly for programmatic usage:
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
import { ConnectorNode } from '@toon-protocol/connector';
|
|
48
|
+
import type { ConnectorConfig } from '@toon-protocol/connector';
|
|
49
|
+
import pino from 'pino';
|
|
50
|
+
|
|
51
|
+
const config: ConnectorConfig = {
|
|
52
|
+
nodeId: 'connector-a',
|
|
53
|
+
btpServerPort: 4000,
|
|
54
|
+
healthCheckPort: 8080,
|
|
55
|
+
deploymentMode: 'embedded',
|
|
56
|
+
adminApi: { enabled: false },
|
|
57
|
+
localDelivery: { enabled: false },
|
|
58
|
+
peers: [],
|
|
59
|
+
routes: [],
|
|
60
|
+
environment: 'production',
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const node = new ConnectorNode(config, pino({ name: 'connector-a' }));
|
|
64
|
+
|
|
65
|
+
node.setPacketHandler(async (request) => {
|
|
66
|
+
if (request.isTransit) {
|
|
67
|
+
// Transit notification (fire-and-forget at intermediate hops)
|
|
68
|
+
console.log(`Transit: ${request.amount} tokens → ${request.destination}`);
|
|
69
|
+
return { accept: true };
|
|
70
|
+
}
|
|
71
|
+
// Final-hop delivery
|
|
72
|
+
console.log(`Delivery: ${request.amount} tokens from ${request.sourcePeer}`);
|
|
73
|
+
return { accept: true };
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
await node.start();
|
|
77
|
+
|
|
78
|
+
// Register peers dynamically at runtime
|
|
79
|
+
await node.registerPeer({
|
|
80
|
+
id: 'connector-b',
|
|
81
|
+
url: 'ws://localhost:4001',
|
|
82
|
+
authToken: '',
|
|
83
|
+
routes: [{ prefix: 'g.connector-b' }],
|
|
84
|
+
evmAddress: '0xConnectorBAddress...', // peer's EVM settlement address
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// Send a packet
|
|
88
|
+
await node.sendPacket({
|
|
89
|
+
destination: 'g.connector-b.agent',
|
|
90
|
+
amount: 1000n,
|
|
91
|
+
executionCondition: Buffer.alloc(32),
|
|
92
|
+
expiresAt: new Date(Date.now() + 30000),
|
|
93
|
+
data: Buffer.from('Hello'),
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Standalone Mode
|
|
98
|
+
|
|
99
|
+
For separate-process deployments, configure `localDelivery` and `adminApi`:
|
|
100
|
+
|
|
101
|
+
```yaml
|
|
102
|
+
nodeId: my-connector
|
|
103
|
+
btpServerPort: 3000
|
|
104
|
+
healthCheckPort: 8080
|
|
105
|
+
deploymentMode: standalone
|
|
106
|
+
environment: production
|
|
107
|
+
|
|
108
|
+
localDelivery:
|
|
109
|
+
enabled: true
|
|
110
|
+
handlerUrl: http://my-bls:3100
|
|
111
|
+
timeout: 5000
|
|
112
|
+
|
|
113
|
+
adminApi:
|
|
114
|
+
enabled: true
|
|
115
|
+
port: 8081
|
|
116
|
+
apiKey: ${ADMIN_API_KEY}
|
|
117
|
+
|
|
118
|
+
peers:
|
|
119
|
+
- id: peer-b
|
|
120
|
+
url: ws://peer-b:3001
|
|
121
|
+
authToken: ''
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## ConnectorConfig Reference
|
|
125
|
+
|
|
126
|
+
The constructor accepts either a YAML file path or a `ConnectorConfig` object:
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
const node = new ConnectorNode(config: ConnectorConfig | string, logger: Logger);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Required Fields
|
|
133
|
+
|
|
134
|
+
| Field | Type | Description |
|
|
135
|
+
| --------------- | --------------- | ------------------------------------------------ |
|
|
136
|
+
| `nodeId` | `string` | Unique identifier for this connector |
|
|
137
|
+
| `btpServerPort` | `number` | Port for BTP WebSocket server |
|
|
138
|
+
| `peers` | `PeerConfig[]` | Peer connector definitions |
|
|
139
|
+
| `routes` | `RouteConfig[]` | Routing table entries |
|
|
140
|
+
| `environment` | `Environment` | `'development'` \| `'staging'` \| `'production'` |
|
|
141
|
+
|
|
142
|
+
### Optional Fields
|
|
143
|
+
|
|
144
|
+
| Field | Type | Default | Description |
|
|
145
|
+
| ----------------- | ----------------------- | ------------- | ---------------------------------------------- |
|
|
146
|
+
| `deploymentMode` | `DeploymentMode` | inferred | `'embedded'` \| `'standalone'` |
|
|
147
|
+
| `healthCheckPort` | `number` | `8080` | HTTP health endpoint port |
|
|
148
|
+
| `logLevel` | `string` | `'info'` | `'debug'` \| `'info'` \| `'warn'` \| `'error'` |
|
|
149
|
+
| `adminApi` | `AdminApiConfig` | disabled | Admin REST API settings |
|
|
150
|
+
| `localDelivery` | `LocalDeliveryConfig` | disabled | HTTP forwarding to BLS |
|
|
151
|
+
| `settlement` | `SettlementConfig` | — | TigerBeetle accounting config |
|
|
152
|
+
| `settlementInfra` | `SettlementInfraConfig` | — | EVM settlement infrastructure |
|
|
153
|
+
| `blockchain` | `BlockchainConfig` | — | Multi-chain EVM config (Base, Arbitrum) |
|
|
154
|
+
| `security` | `SecurityConfig` | — | Key management backend |
|
|
155
|
+
| `performance` | `PerformanceConfig` | — | Batching, pooling, parallelization |
|
|
156
|
+
| `explorer` | `ExplorerConfig` | enabled:3001 | Explorer UI settings |
|
|
157
|
+
| `mode` | `string` | `'connector'` | `'connector'` \| `'gateway'` |
|
|
158
|
+
|
|
159
|
+
### PeerConfig
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
interface PeerConfig {
|
|
163
|
+
id: string; // Unique peer identifier (referenced by routes)
|
|
164
|
+
url: string; // WebSocket URL: ws://host:port or wss://host:port
|
|
165
|
+
authToken: string; // Shared secret (empty string for permissionless)
|
|
166
|
+
evmAddress?: string; // Peer's EVM address for settlement
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### RouteConfig
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
interface RouteConfig {
|
|
174
|
+
prefix: string; // ILP address prefix (e.g., 'g.connector-b')
|
|
175
|
+
nextHop: string; // Peer ID to forward to
|
|
176
|
+
priority?: number; // Higher wins (default: 0)
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## ConnectorNode Public API
|
|
181
|
+
|
|
182
|
+
### Lifecycle
|
|
183
|
+
|
|
184
|
+
| Method | Returns | Description |
|
|
185
|
+
| --------- | --------------- | --------------------------------------------------- |
|
|
186
|
+
| `start()` | `Promise<void>` | Start BTP server, connect to peers, init settlement |
|
|
187
|
+
| `stop()` | `Promise<void>` | Graceful shutdown of all connections and servers |
|
|
188
|
+
|
|
189
|
+
### Packet Handling
|
|
190
|
+
|
|
191
|
+
| Method | Returns | Description |
|
|
192
|
+
| ---------------------------------- | ---------------------------------------------- | -------------------------------------- |
|
|
193
|
+
| `setPacketHandler(handler)` | `void` | Register callback for incoming packets |
|
|
194
|
+
| `setLocalDeliveryHandler(handler)` | `void` | Register callback for local delivery |
|
|
195
|
+
| `sendPacket(params)` | `Promise<ILPFulfillPacket \| ILPRejectPacket>` | Send ILP Prepare packet |
|
|
196
|
+
|
|
197
|
+
### Peer Management
|
|
198
|
+
|
|
199
|
+
| Method | Returns | Description |
|
|
200
|
+
| ----------------------------------- | --------------------------- | ------------------------ |
|
|
201
|
+
| `registerPeer(config)` | `Promise<PeerInfo>` | Add peer at runtime |
|
|
202
|
+
| `removePeer(peerId, removeRoutes?)` | `Promise<RemovePeerResult>` | Remove peer |
|
|
203
|
+
| `listPeers()` | `PeerInfo[]` | List all connected peers |
|
|
204
|
+
|
|
205
|
+
### Routing
|
|
206
|
+
|
|
207
|
+
| Method | Returns | Description |
|
|
208
|
+
| -------------------------------------- | ------------- | ------------------ |
|
|
209
|
+
| `listRoutes()` | `RouteInfo[]` | List routing table |
|
|
210
|
+
| `addRoute(prefix, nextHop, priority?)` | — | Add a route |
|
|
211
|
+
| `removeRoute(prefix)` | — | Remove a route |
|
|
212
|
+
|
|
213
|
+
### Balance & Settlement
|
|
214
|
+
|
|
215
|
+
| Method | Returns | Description |
|
|
216
|
+
| ----------------------------- | ----------------------------- | ------------------------- |
|
|
217
|
+
| `getBalance(peerId)` | `Promise<PeerAccountBalance>` | Query peer balances |
|
|
218
|
+
| `openChannel(peerId, amount)` | `Promise<void>` | Open EVM payment channel |
|
|
219
|
+
| `getChannelState(peerId)` | `Promise<...>` | Get payment channel state |
|
|
220
|
+
|
|
221
|
+
### Mode Inspection
|
|
222
|
+
|
|
223
|
+
| Method | Returns | Description |
|
|
224
|
+
| --------------------- | ---------------- | -------------------------------------- |
|
|
225
|
+
| `getDeploymentMode()` | `DeploymentMode` | Returns `'embedded'` or `'standalone'` |
|
|
226
|
+
| `isEmbedded()` | `boolean` | Check if embedded mode |
|
|
227
|
+
| `isStandalone()` | `boolean` | Check if standalone mode |
|
|
228
|
+
|
|
229
|
+
## BTP Authentication
|
|
230
|
+
|
|
231
|
+
### Permissionless Networks (Default)
|
|
232
|
+
|
|
233
|
+
Default mode for open networks where security is at the ILP layer:
|
|
234
|
+
|
|
235
|
+
```yaml
|
|
236
|
+
peers:
|
|
237
|
+
- id: peer-b
|
|
238
|
+
url: ws://peer-b:3001
|
|
239
|
+
authToken: '' # Empty = permissionless
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Private Networks
|
|
243
|
+
|
|
244
|
+
Disable permissionless mode and use shared secrets:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
BTP_ALLOW_NOAUTH=false
|
|
248
|
+
BTP_PEER_PEER_B_SECRET=secret-token
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
```yaml
|
|
252
|
+
peers:
|
|
253
|
+
- id: peer-b
|
|
254
|
+
url: ws://peer-b:3001
|
|
255
|
+
authToken: secret-token
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Per-Hop Notification
|
|
259
|
+
|
|
260
|
+
Intermediate connectors can fire non-blocking notifications to a BLS for transit packets:
|
|
261
|
+
|
|
262
|
+
```yaml
|
|
263
|
+
localDelivery:
|
|
264
|
+
enabled: true
|
|
265
|
+
handlerUrl: http://my-bls:3100
|
|
266
|
+
perHopNotification: true
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
| | Transit (`isTransit: true`) | Final-Hop (`isTransit` omitted) |
|
|
270
|
+
| ---------------- | --------------------------- | ---------------------------------- |
|
|
271
|
+
| **When** | Packet passing through | Packet addressed to this connector |
|
|
272
|
+
| **BLS response** | Ignored (fire-and-forget) | Drives ILP fulfill/reject |
|
|
273
|
+
| **Blocking** | No | Yes |
|
|
274
|
+
| **Use case** | Logging, analytics | Payment acceptance, business logic |
|
|
275
|
+
|
|
276
|
+
## Accounting Backend
|
|
277
|
+
|
|
278
|
+
### Default: In-Memory Ledger
|
|
279
|
+
|
|
280
|
+
Zero dependencies. Persists to JSON snapshots on disk.
|
|
281
|
+
|
|
282
|
+
| Variable | Default | Description |
|
|
283
|
+
| ---------------------------- | ----------------------------- | ------------------------- |
|
|
284
|
+
| `LEDGER_SNAPSHOT_PATH` | `./data/ledger-snapshot.json` | Snapshot file path |
|
|
285
|
+
| `LEDGER_PERSIST_INTERVAL_MS` | `30000` | Persistence interval (ms) |
|
|
286
|
+
|
|
287
|
+
### Optional: TigerBeetle
|
|
288
|
+
|
|
289
|
+
High-performance double-entry accounting. Falls back to in-memory if connection fails.
|
|
290
|
+
|
|
291
|
+
| Variable | Required | Description |
|
|
292
|
+
| ------------------------ | -------- | --------------------------------- |
|
|
293
|
+
| `TIGERBEETLE_CLUSTER_ID` | Yes | TigerBeetle cluster identifier |
|
|
294
|
+
| `TIGERBEETLE_REPLICAS` | Yes | Comma-separated replica addresses |
|
|
295
|
+
|
|
296
|
+
## Settlement Infrastructure
|
|
297
|
+
|
|
298
|
+
EVM payment channels on Base L2 (and optionally Arbitrum):
|
|
299
|
+
|
|
300
|
+
| Variable | Description |
|
|
301
|
+
| ----------------------------- | ------------------------------------------------------------- |
|
|
302
|
+
| `SETTLEMENT_ENABLED` | Enable automatic settlement (default: `true`) |
|
|
303
|
+
| `SETTLEMENT_THRESHOLD` | Balance threshold to trigger settlement |
|
|
304
|
+
| `SETTLEMENT_POLLING_INTERVAL` | Polling frequency in ms (default: `30000`) |
|
|
305
|
+
| `BASE_L2_RPC_URL` | Base L2 RPC endpoint |
|
|
306
|
+
| `EVM_PRIVATE_KEY` | Private key (dev only — use KMS in production) |
|
|
307
|
+
| `M2M_TOKEN_ADDRESS` | ERC-20 token contract |
|
|
308
|
+
| `TOKEN_NETWORK_REGISTRY` | Payment channel registry contract |
|
|
309
|
+
| `KEY_BACKEND` | Key management: `env` \| `aws-kms` \| `gcp-kms` \| `azure-kv` |
|
|
310
|
+
| `NETWORK_MODE` | Auto-configure chain settings: `testnet` \| `mainnet` |
|
|
311
|
+
|
|
312
|
+
### Multi-Chain Support
|
|
313
|
+
|
|
314
|
+
Configure per-chain settings via `blockchain` config:
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
const config: ConnectorConfig = {
|
|
318
|
+
// ...
|
|
319
|
+
blockchain: {
|
|
320
|
+
base: {
|
|
321
|
+
enabled: true,
|
|
322
|
+
rpcUrl: 'https://mainnet.base.org',
|
|
323
|
+
chainId: 8453,
|
|
324
|
+
},
|
|
325
|
+
arbitrum: {
|
|
326
|
+
enabled: true,
|
|
327
|
+
rpcUrl: 'https://arb1.arbitrum.io/rpc',
|
|
328
|
+
chainId: 42161,
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
};
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
## Explorer UI
|
|
335
|
+
|
|
336
|
+
Built-in real-time dashboard for packet flow, balances, and settlement monitoring.
|
|
337
|
+
|
|
338
|
+
| Variable | Default | Description |
|
|
339
|
+
| ------------------------- | --------- | ------------------------ |
|
|
340
|
+
| `EXPLORER_ENABLED` | `true` | Enable/disable explorer |
|
|
341
|
+
| `EXPLORER_PORT` | `3001` | HTTP/WebSocket port |
|
|
342
|
+
| `EXPLORER_RETENTION_DAYS` | `7` | Event retention period |
|
|
343
|
+
| `EXPLORER_MAX_EVENTS` | `1000000` | Maximum events to retain |
|
|
344
|
+
|
|
345
|
+
**Endpoints:**
|
|
346
|
+
|
|
347
|
+
| Endpoint | Description |
|
|
348
|
+
| ----------------- | -------------------------------------------- |
|
|
349
|
+
| `GET /api/events` | Query historical events (supports filtering) |
|
|
350
|
+
| `GET /api/health` | Explorer health status |
|
|
351
|
+
| `WS /ws` | Real-time event streaming |
|
|
352
|
+
|
|
353
|
+
## Admin API
|
|
354
|
+
|
|
355
|
+
REST endpoints for runtime peer/route management and ILP packet sending.
|
|
356
|
+
|
|
357
|
+
| Endpoint | Description |
|
|
358
|
+
| ------------------------------ | --------------------- |
|
|
359
|
+
| `GET /admin/peers` | List all peers |
|
|
360
|
+
| `POST /admin/peers` | Add a new peer |
|
|
361
|
+
| `DELETE /admin/peers/:peerId` | Remove a peer |
|
|
362
|
+
| `GET /admin/routes` | List routing table |
|
|
363
|
+
| `POST /admin/routes` | Add a route |
|
|
364
|
+
| `DELETE /admin/routes/:prefix` | Remove a route |
|
|
365
|
+
| `POST /admin/ilp/send` | Send ILP packet |
|
|
366
|
+
| `GET /admin/balances/:peerId` | Query peer balances |
|
|
367
|
+
| `GET /admin/channels` | List payment channels |
|
|
368
|
+
| `POST /admin/channels` | Open payment channel |
|
|
369
|
+
|
|
370
|
+
### Security
|
|
371
|
+
|
|
372
|
+
| Variable | Description |
|
|
373
|
+
| ----------------------- | -------------------------------------------------------- |
|
|
374
|
+
| `ADMIN_API_KEY` | API key (required in production unless IP allowlist set) |
|
|
375
|
+
| `ADMIN_API_ALLOWED_IPS` | Comma-separated IPs/CIDRs |
|
|
376
|
+
| `ADMIN_API_TRUST_PROXY` | Trust `X-Forwarded-For` (default: `false`) |
|
|
377
|
+
|
|
378
|
+
## CLI Commands
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
npx connector setup # Interactive onboarding wizard
|
|
382
|
+
npx connector start -c config.yaml # Start connector
|
|
383
|
+
npx connector health -u http://localhost:8080 # Check health
|
|
384
|
+
npx connector validate config.yaml # Validate config file
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
## Exported API
|
|
388
|
+
|
|
389
|
+
**Classes:** `ConnectorNode`, `ConfigLoader`, `ConfigurationError`, `ConnectorNotStartedError`, `RoutingTable`, `PacketHandler`, `BTPServer`, `BTPClient`, `BTPClientManager`, `AdminServer`, `AccountManager`, `SettlementMonitor`, `UnifiedSettlementExecutor`, `IlpSendHandler`
|
|
390
|
+
|
|
391
|
+
**Types:** `ConnectorConfig`, `PeerConfig`, `RouteConfig`, `SettlementConfig`, `SettlementInfraConfig`, `LocalDeliveryConfig`, `LocalDeliveryHandler`, `LocalDeliveryRequest`, `LocalDeliveryResponse`, `SendPacketParams`, `PeerRegistrationRequest`, `PeerInfo`, `PeerAccountBalance`, `RouteInfo`, `RemovePeerResult`, `IlpSendRequest`, `IlpSendResponse`, `AdminSettlementConfig`, `ChannelOpenOptions`, `ChannelMetadata`, `PaymentRequest`, `PaymentResponse`, `PaymentHandler`, `PacketSenderFn`, `IsReadyFn`, `ILPPreparePacket`, `ILPFulfillPacket`, `ILPRejectPacket`
|
|
392
|
+
|
|
393
|
+
**Utilities:** `createLogger`, `createPaymentHandlerAdapter`, `computeFulfillmentFromData`, `computeConditionFromData`, `validateIlpSendRequest`, `generatePaymentId`, `mapRejectCode`, `validateResponseData`, `REJECT_CODE_MAP`
|
|
394
|
+
|
|
395
|
+
## Package Structure
|
|
396
|
+
|
|
397
|
+
```
|
|
398
|
+
src/
|
|
399
|
+
├── core/ # ConnectorNode, PacketHandler, payment handler, local delivery
|
|
400
|
+
├── btp/ # BTP server and client (WebSocket peers)
|
|
401
|
+
├── routing/ # Routing table and prefix matching
|
|
402
|
+
├── settlement/ # EVM settlement, payment channels, account manager
|
|
403
|
+
├── http/ # Admin API, health endpoints, ILP send handler
|
|
404
|
+
├── explorer/ # Embedded telemetry UI server and event store
|
|
405
|
+
├── wallet/ # HD wallet derivation for EVM keys
|
|
406
|
+
├── security/ # KMS integration (AWS, Azure, GCP)
|
|
407
|
+
├── config/ # Configuration schema, loader, and validation
|
|
408
|
+
├── cli/ # CLI commands (setup, start, health, validate)
|
|
409
|
+
└── utils/ # Logger, OER encoding
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
## Testing
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
npm test # Unit tests
|
|
416
|
+
npm run test:acceptance # Acceptance tests
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
## License
|
|
420
|
+
|
|
421
|
+
MIT — see [LICENSE](../../LICENSE).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type BlockchainType = 'evm';
|
|
2
|
+
export interface BaseClaimMessage {
|
|
3
|
+
version: '1.0';
|
|
4
|
+
blockchain: BlockchainType;
|
|
5
|
+
messageId: string;
|
|
6
|
+
timestamp: string;
|
|
7
|
+
senderId: string;
|
|
8
|
+
}
|
|
9
|
+
export interface EVMClaimMessage extends BaseClaimMessage {
|
|
10
|
+
blockchain: 'evm';
|
|
11
|
+
channelId: string;
|
|
12
|
+
nonce: number;
|
|
13
|
+
transferredAmount: string;
|
|
14
|
+
lockedAmount: string;
|
|
15
|
+
locksRoot: string;
|
|
16
|
+
signature: string;
|
|
17
|
+
signerAddress: string;
|
|
18
|
+
chainId?: number;
|
|
19
|
+
tokenNetworkAddress?: string;
|
|
20
|
+
tokenAddress?: string;
|
|
21
|
+
}
|
|
22
|
+
export type BTPClaimMessage = EVMClaimMessage;
|
|
23
|
+
export declare const BTP_CLAIM_PROTOCOL: {
|
|
24
|
+
readonly NAME: "payment-channel-claim";
|
|
25
|
+
readonly CONTENT_TYPE: 1;
|
|
26
|
+
readonly VERSION: "1.0";
|
|
27
|
+
};
|
|
28
|
+
export declare function isEVMClaim(msg: BTPClaimMessage): msg is EVMClaimMessage;
|
|
29
|
+
export declare function validateClaimMessage(msg: unknown): asserts msg is BTPClaimMessage;
|
|
30
|
+
//# sourceMappingURL=btp-claim-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btp-claim-types.d.ts","sourceRoot":"","sources":["../../src/btp/btp-claim-types.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC;AAYnC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;IACf,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0CD,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,UAAU,EAAE,KAAK,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAU9C,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAaX,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,IAAI,eAAe,CAEvE;AAwGD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,eAAe,CAwCjF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BTP_CLAIM_PROTOCOL = void 0;
|
|
4
|
+
exports.isEVMClaim = isEVMClaim;
|
|
5
|
+
exports.validateClaimMessage = validateClaimMessage;
|
|
6
|
+
exports.BTP_CLAIM_PROTOCOL = {
|
|
7
|
+
NAME: 'payment-channel-claim',
|
|
8
|
+
CONTENT_TYPE: 1,
|
|
9
|
+
VERSION: '1.0',
|
|
10
|
+
};
|
|
11
|
+
function isEVMClaim(msg) {
|
|
12
|
+
return msg.blockchain === 'evm';
|
|
13
|
+
}
|
|
14
|
+
function validateEVMClaim(claim) {
|
|
15
|
+
if (!claim.channelId || typeof claim.channelId !== 'string') {
|
|
16
|
+
throw new Error('Missing or invalid channelId (expected non-empty string)');
|
|
17
|
+
}
|
|
18
|
+
if (claim.nonce === undefined || typeof claim.nonce !== 'number' || claim.nonce < 0) {
|
|
19
|
+
throw new Error('Missing or invalid nonce (expected non-negative number)');
|
|
20
|
+
}
|
|
21
|
+
if (!claim.transferredAmount || typeof claim.transferredAmount !== 'string') {
|
|
22
|
+
throw new Error('Missing or invalid transferredAmount (expected non-empty string)');
|
|
23
|
+
}
|
|
24
|
+
if (!claim.lockedAmount || typeof claim.lockedAmount !== 'string') {
|
|
25
|
+
throw new Error('Missing or invalid lockedAmount (expected non-empty string)');
|
|
26
|
+
}
|
|
27
|
+
if (!claim.locksRoot || typeof claim.locksRoot !== 'string') {
|
|
28
|
+
throw new Error('Missing or invalid locksRoot (expected non-empty string)');
|
|
29
|
+
}
|
|
30
|
+
if (!claim.signature || typeof claim.signature !== 'string') {
|
|
31
|
+
throw new Error('Missing or invalid signature (expected non-empty string)');
|
|
32
|
+
}
|
|
33
|
+
if (!claim.signerAddress || typeof claim.signerAddress !== 'string') {
|
|
34
|
+
throw new Error('Missing or invalid signerAddress (expected non-empty string)');
|
|
35
|
+
}
|
|
36
|
+
if (!/^0x[0-9a-fA-F]{64}$/.test(claim.channelId)) {
|
|
37
|
+
throw new Error('Invalid channelId format (expected 0x-prefixed 64-char hex)');
|
|
38
|
+
}
|
|
39
|
+
if (!/^0x[0-9a-fA-F]{40}$/.test(claim.signerAddress)) {
|
|
40
|
+
throw new Error('Invalid signerAddress format (expected 0x-prefixed 40-char hex)');
|
|
41
|
+
}
|
|
42
|
+
if (!/^0x[0-9a-fA-F]{64}$/.test(claim.locksRoot)) {
|
|
43
|
+
throw new Error('Invalid locksRoot format (expected 0x-prefixed 64-char hex)');
|
|
44
|
+
}
|
|
45
|
+
if (!/^\d+$/.test(claim.transferredAmount)) {
|
|
46
|
+
throw new Error('Invalid transferredAmount (expected non-negative integer string)');
|
|
47
|
+
}
|
|
48
|
+
if (!/^\d+$/.test(claim.lockedAmount)) {
|
|
49
|
+
throw new Error('Invalid lockedAmount (expected non-negative integer string)');
|
|
50
|
+
}
|
|
51
|
+
if (claim.chainId !== undefined) {
|
|
52
|
+
if (typeof claim.chainId !== 'number' ||
|
|
53
|
+
!Number.isInteger(claim.chainId) ||
|
|
54
|
+
claim.chainId <= 0) {
|
|
55
|
+
throw new Error('Invalid chainId (expected positive integer)');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (claim.tokenNetworkAddress !== undefined) {
|
|
59
|
+
if (typeof claim.tokenNetworkAddress !== 'string') {
|
|
60
|
+
throw new Error('Invalid tokenNetworkAddress (expected string)');
|
|
61
|
+
}
|
|
62
|
+
if (!/^0x[0-9a-fA-F]{40}$/.test(claim.tokenNetworkAddress)) {
|
|
63
|
+
throw new Error('Invalid tokenNetworkAddress format (expected 0x-prefixed 40-char hex)');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (claim.tokenAddress !== undefined) {
|
|
67
|
+
if (typeof claim.tokenAddress !== 'string') {
|
|
68
|
+
throw new Error('Invalid tokenAddress (expected string)');
|
|
69
|
+
}
|
|
70
|
+
if (!/^0x[0-9a-fA-F]{40}$/.test(claim.tokenAddress)) {
|
|
71
|
+
throw new Error('Invalid tokenAddress format (expected 0x-prefixed 40-char hex)');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function validateClaimMessage(msg) {
|
|
76
|
+
if (typeof msg !== 'object' || msg === null) {
|
|
77
|
+
throw new Error('Claim message must be an object');
|
|
78
|
+
}
|
|
79
|
+
const claim = msg;
|
|
80
|
+
if (claim.version !== '1.0') {
|
|
81
|
+
throw new Error(`Invalid version (expected '1.0', got '${claim.version}')`);
|
|
82
|
+
}
|
|
83
|
+
if (!claim.blockchain) {
|
|
84
|
+
throw new Error('Missing blockchain field');
|
|
85
|
+
}
|
|
86
|
+
if (claim.blockchain !== 'evm') {
|
|
87
|
+
throw new Error(`Unsupported blockchain type: ${claim.blockchain}`);
|
|
88
|
+
}
|
|
89
|
+
if (!claim.messageId || typeof claim.messageId !== 'string') {
|
|
90
|
+
throw new Error('Missing or invalid messageId (expected non-empty string)');
|
|
91
|
+
}
|
|
92
|
+
if (!claim.timestamp || typeof claim.timestamp !== 'string') {
|
|
93
|
+
throw new Error('Missing or invalid timestamp (expected ISO 8601 string)');
|
|
94
|
+
}
|
|
95
|
+
if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$/.test(claim.timestamp)) {
|
|
96
|
+
throw new Error('Invalid timestamp format (expected ISO 8601 with Z timezone)');
|
|
97
|
+
}
|
|
98
|
+
if (!claim.senderId || typeof claim.senderId !== 'string') {
|
|
99
|
+
throw new Error('Missing or invalid senderId (expected non-empty string)');
|
|
100
|
+
}
|
|
101
|
+
validateEVMClaim(claim);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=btp-claim-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btp-claim-types.js","sourceRoot":"","sources":["../../src/btp/btp-claim-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Logger } from '../utils/logger';
|
|
2
|
+
import { BTPClient, Peer } from './btp-client';
|
|
3
|
+
import { ILPPreparePacket, ILPFulfillPacket, ILPRejectPacket } from '@toon-protocol/shared';
|
|
4
|
+
import type { PacketHandler } from '../core/packet-handler';
|
|
5
|
+
export declare class BTPClientManager {
|
|
6
|
+
private readonly _clients;
|
|
7
|
+
private readonly _logger;
|
|
8
|
+
private readonly _nodeId;
|
|
9
|
+
private _packetHandler;
|
|
10
|
+
constructor(nodeId: string, logger: Logger);
|
|
11
|
+
setPacketHandler(packetHandler: PacketHandler): void;
|
|
12
|
+
addPeer(peer: Peer): Promise<void>;
|
|
13
|
+
removePeer(peerId: string): Promise<void>;
|
|
14
|
+
sendToPeer(peerId: string, packet: ILPPreparePacket, protocolData?: Array<{
|
|
15
|
+
protocolName: string;
|
|
16
|
+
contentType: number;
|
|
17
|
+
data: Buffer;
|
|
18
|
+
}>): Promise<ILPFulfillPacket | ILPRejectPacket>;
|
|
19
|
+
getPeerStatus(): Map<string, boolean>;
|
|
20
|
+
getPeerIds(): string[];
|
|
21
|
+
getClientForPeer(peerId: string): BTPClient | undefined;
|
|
22
|
+
isConnected(peerId: string): boolean;
|
|
23
|
+
getConnectedPeerCount(): number;
|
|
24
|
+
getTotalPeerCount(): number;
|
|
25
|
+
getConnectionHealth(): number;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=btp-client-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btp-client-manager.d.ts","sourceRoot":"","sources":["../../src/btp/btp-client-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAsB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM5D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,cAAc,CAA8B;gBAOxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAS1C,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAa9C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAwElC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCzC,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAChF,OAAO,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAiE9C,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAYrC,UAAU,IAAI,MAAM,EAAE;IAUtB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAUvD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUpC,qBAAqB,IAAI,MAAM;IAU/B,iBAAiB,IAAI,MAAM;IAS3B,mBAAmB,IAAI,MAAM;CAQ9B"}
|