From a78a07155c558a7e1728bd22b461a8355a70b1ae Mon Sep 17 00:00:00 2001 From: Antoni Spaanderman <56turtle56@gmail.com> Date: Sun, 9 Oct 2022 20:50:54 +0200 Subject: [PATCH] use AMP payments --- .github/workflows/integration_test.yml | 127 +++++++++++------- .gitignore | 3 - dist/src/grpc/interfaces.js.map | 2 +- dist/src/grpc/lightning.js | 103 +++++++++----- dist/src/grpc/lightning.js.map | 2 +- dist/src/grpc/subscribe.js | 6 +- dist/src/grpc/subscribe.js.map | 2 +- dist/src/network/receive.js | 19 +-- dist/src/network/receive.js.map | 2 +- dist/src/tests/controllers/ampPayment.test.js | 100 ++++++++++++++ .../tests/controllers/ampPayment.test.js.map | 1 + .../tests/controllers/messageLength.test.js | 2 +- dist/src/tests/utils/get/getCheckMsgs.js | 2 +- dist/src/tests/utils/get/getCheckMsgs.js.map | 2 +- package.json | 2 +- src/grpc/interfaces.ts | 6 +- src/grpc/lightning.ts | 113 ++++++++++++---- src/grpc/subscribe.ts | 10 +- src/network/receive.ts | 15 ++- src/tests/configs/.gitignore | 1 + src/tests/configs/nodes.json | 35 ----- src/tests/controllers/ampPayment.test.ts | 115 ++++++++++++++++ src/tests/controllers/messageLength.test.ts | 2 +- src/tests/utils/get/getCheckMsgs.ts | 6 +- 24 files changed, 496 insertions(+), 182 deletions(-) create mode 100644 dist/src/tests/controllers/ampPayment.test.js create mode 100644 dist/src/tests/controllers/ampPayment.test.js.map create mode 100644 src/tests/configs/.gitignore delete mode 100644 src/tests/configs/nodes.json create mode 100644 src/tests/controllers/ampPayment.test.ts diff --git a/.github/workflows/integration_test.yml b/.github/workflows/integration_test.yml index 8b4429b79..0bcbbecbd 100644 --- a/.github/workflows/integration_test.yml +++ b/.github/workflows/integration_test.yml @@ -1,59 +1,84 @@ -name: Integration Test -on: +name: Integration Tests +on: pull_request: branches: - master - + jobs: - build: - runs-on: ubuntu-18.04 + integration-test: + runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: - test-name: ['boostPayment', 'botCreation', 'chatPayment', 'cleanup', 'clearAllChats', 'clearAllContacts', 'contacts', 'images', 'latestTest', 'lsats', 'paidMeet', 'paidTribeImages', 'queryRoutes', 'self', 'sphinxPeople', 'streamPayment', 'tribe', 'tribe3Escrow', 'tribe3Messages', 'tribe3Private', 'tribe3Profile', 'tribeEdit', 'tribeImages', 'messageLength', 'transportToken', 'pinnedMsg', 'hmac', 'socketIO', 'tribeMember'] + test-name: + [ + 'boostPayment', + 'botCreation', + 'chatPayment', + 'cleanup', + 'clearAllChats', + 'clearAllContacts', + 'contacts', + 'images', + 'latestTest', + 'lsats', + 'paidMeet', + 'paidTribeImages', + 'queryRoutes', + 'self', + 'sphinxPeople', + 'streamPayment', + 'tribe', + 'tribe3Escrow', + 'tribe3Messages', + 'tribe3Private', + 'tribe3Profile', + 'tribeEdit', + 'tribeImages', + 'messageLength', + 'transportToken', + 'pinnedMsg', + 'hmac', + 'socketIO', + 'tribeMember', + 'ampPayment', + ] steps: - - name: Enable docker.host.internal for Ubuntu - run: | - pwd && sudo bash -c 'echo "172.17.0.1 host.docker.internal" >> /etc/hosts' - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.sha }} - path: relay - - uses: actions/setup-node@v3 - with: - node-version: 16 - - name: Build Relay - working-directory: ./relay - run: | - npm install && npm run build && docker build -t sphinxlightning/sphinx-relay . - - name: Checkout stack - run: | - git clone https://github.com/stakwork/sphinx-stack.git stack - - name: give permissions - working-directory: ./stack - run: | - chmod 777 ./bitcoind; - chmod 777 -R ./relay; - chmod 777 -R ./lnd; - chmod 777 -R ./proxy; - - name: Turn on Stack - working-directory: ./stack - run: | - GITACTION_ENV=gitactionenv docker-compose -f alts/proxy.yml --project-dir . up -d - - name: Check for NODES.json - working-directory: ./stack - run: | - sleep 240; - docker-compose ps - docker logs meme.sphinx - docker logs dave.sphinx - docker wait stack_relaysetup_1; - - name: copy file - uses: canastro/copy-file-action@master - with: - source: "stack/relay/NODES.json" - target: "relay/src/tests/configs/nodes.json" - - name: Run tests - working-directory: ./relay - run: | - npx ava src/tests/controllers/${{matrix.test-name}}.test.ts --verbose --serial --timeout=2m + - name: Enable docker.host.internal for Ubuntu + run: pwd && sudo bash -c 'echo "172.17.0.1 host.docker.internal" >> /etc/hosts' + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + path: relay + - uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Build Relay + working-directory: ./relay + run: npm install && npm run build && docker build -t sphinxlightning/sphinx-relay . + - name: Checkout stack + uses: actions/checkout@v3 + with: + repository: antonilol/sphinx-stack + ref: amp + path: stack + - name: Give permissions + working-directory: ./stack + run: chmod 777 -R bitcoind relay lnd proxy + - name: Turn on Stack + working-directory: ./stack + run: GITACTION_ENV=gitactionenv docker-compose -f alts/proxy.yml --project-dir . up -d + - name: Check for NODES.json + working-directory: ./stack + run: | + docker-compose ps + docker logs meme.sphinx + docker logs dave.sphinx + docker logs -f stack_lndsetup_1 + docker logs -f stack_relaysetup_1 + sleep 1m + - name: Copy nodes.json + run: cp stack/relay/NODES.json relay/src/tests/configs/nodes.json + - name: Run tests + working-directory: ./relay + run: npx ava src/tests/controllers/${{matrix.test-name}}.test.ts --verbose --serial --timeout=2m diff --git a/.gitignore b/.gitignore index a3dde2780..9884a8985 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,3 @@ creds/* !creds/.gitkeep !creds/scheduler_creds hsm_secret - -src/tests/configs/* -src/tests/configs/nodes.json \ No newline at end of file diff --git a/dist/src/grpc/interfaces.js.map b/dist/src/grpc/interfaces.js.map index 82cf72c2d..5081cf549 100644 --- a/dist/src/grpc/interfaces.js.map +++ b/dist/src/grpc/interfaces.js.map @@ -1 +1 @@ -{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/grpc/interfaces.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/grpc/interfaces.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/grpc/lightning.js b/dist/src/grpc/lightning.js index 4055bc1cb..2a2ac14e2 100644 --- a/dist/src/grpc/lightning.js +++ b/dist/src/grpc/lightning.js @@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.getChanInfo = exports.channelBalance = exports.complexBalances = exports.openChannel = exports.connectPeer = exports.pendingChannels = exports.listChannels = exports.listPeers = exports.addInvoice = exports.getInfo = exports.verifyAscii = exports.verifyMessage = exports.verifyBytes = exports.signBuffer = exports.signMessage = exports.listAllPaymentsFull = exports.listPaymentsPaginated = exports.listAllPayments = exports.listAllInvoices = exports.listInvoices = exports.signAscii = exports.keysendMessage = exports.loadRouter = exports.keysend = exports.sendPayment = exports.newAddress = exports.UNUSED_NESTED_PUBKEY_HASH = exports.UNUSED_WITNESS_PUBKEY_HASH = exports.NESTED_PUBKEY_HASH = exports.WITNESS_PUBKEY_HASH = exports.queryRoute = exports.setLock = exports.getLock = exports.getHeaders = exports.unlockWallet = exports.loadWalletUnlocker = exports.loadLightning = exports.loadCredentials = exports.SPHINX_CUSTOM_RECORD_KEY = exports.LND_KEYSEND_KEY = void 0; +exports.getChanInfo = exports.channelBalance = exports.complexBalances = exports.openChannel = exports.connectPeer = exports.pendingChannels = exports.listChannels = exports.listPeers = exports.addInvoice = exports.getInfo = exports.verifyAscii = exports.verifyMessage = exports.verifyBytes = exports.signBuffer = exports.signMessage = exports.listAllPaymentsFull = exports.listPaymentsPaginated = exports.listAllPayments = exports.listAllInvoices = exports.listInvoices = exports.signAscii = exports.keysendMessage = exports.loadRouter = exports.keysend = exports.sendPayment = exports.newAddress = exports.UNUSED_NESTED_PUBKEY_HASH = exports.UNUSED_WITNESS_PUBKEY_HASH = exports.NESTED_PUBKEY_HASH = exports.WITNESS_PUBKEY_HASH = exports.queryRoute = exports.setLock = exports.getLock = exports.getHeaders = exports.unlockWallet = exports.loadWalletUnlocker = exports.loadLightning = exports.loadCredentials = exports.SPHINX_CUSTOM_RECORD_KEY = exports.LND_KEYSEND_KEY = exports.IS_GREENLIGHT = void 0; const ByteBuffer = require("bytebuffer"); const fs = require("fs"); const grpc = require("grpc"); @@ -30,7 +30,7 @@ const greenlight_1 = require("./greenlight"); const config = (0, config_1.loadConfig)(); const LND_IP = config.lnd_ip || 'localhost'; // const IS_LND = config.lightning_provider === "LND"; -const IS_GREENLIGHT = config.lightning_provider === 'GREENLIGHT'; +exports.IS_GREENLIGHT = config.lightning_provider === 'GREENLIGHT'; exports.LND_KEYSEND_KEY = 5482373484; exports.SPHINX_CUSTOM_RECORD_KEY = 133773310; const FEE_LIMIT_SAT = 10000; @@ -71,7 +71,7 @@ function loadLightning(tryProxy, ownerPubkey, noCache) { if (lightningClient && !noCache) { return lightningClient; } - if (IS_GREENLIGHT) { + if (exports.IS_GREENLIGHT) { const credentials = loadGreenlightCredentials(); const descriptor = grpc.load('proto/greenlight.proto'); const greenlight = descriptor.greenlight; @@ -153,7 +153,7 @@ exports.setLock = setLock; function queryRoute(pub_key, amt, route_hint, ownerPubkey) { return __awaiter(this, void 0, void 0, function* () { logger_1.sphinxLogger.info('queryRoute', logger_1.logging.Lightning); - if (IS_GREENLIGHT) { + if (exports.IS_GREENLIGHT) { // shim for now return { success_prob: 1, @@ -233,7 +233,7 @@ function sendPayment(payment_request, ownerPubkey) { }); } else { - if (IS_GREENLIGHT) { + if (exports.IS_GREENLIGHT) { lightning.pay({ bolt11: payment_request, timeout: 12, @@ -271,25 +271,32 @@ function keysend(opts, ownerPubkey) { return new Promise(function (resolve, reject) { return __awaiter(this, void 0, void 0, function* () { try { - const preimage = ByteBuffer.wrap(crypto.randomBytes(32)); + const preimage = crypto.randomBytes(32); + const payment_hash = sha.sha256.arrayBuffer(preimage); const dest_custom_records = { - [`${exports.LND_KEYSEND_KEY}`]: preimage, + [exports.LND_KEYSEND_KEY]: preimage, }; if (opts.extra_tlv) { Object.entries(opts.extra_tlv).forEach(([k, v]) => { - dest_custom_records[k] = ByteBuffer.fromUTF8(v); + dest_custom_records[k] = Buffer.from(v, 'utf8'); }); } + // feature bits: + // 9: tlv-onion + // 15: payment-addr + // 30: amp (required) + const keysend_features = [9]; + const amp_features = [9, 15, 30]; const options = { amt: Math.max(opts.amt, constants_1.default.min_sat_amount || 3), final_cltv_delta: 10, dest: ByteBuffer.fromHex(opts.dest), dest_custom_records, - payment_hash: sha.sha256.arrayBuffer(preimage.toBuffer()), - dest_features: [9], + payment_hash, + dest_features: keysend_features, }; if (opts.data) { - options.dest_custom_records[`${exports.SPHINX_CUSTOM_RECORD_KEY}`] = + options.dest_custom_records[exports.SPHINX_CUSTOM_RECORD_KEY] = ByteBuffer.fromUTF8(opts.data); } // add in route hints @@ -323,7 +330,7 @@ function keysend(opts, ownerPubkey) { }); } else { - if (IS_GREENLIGHT) { + if (exports.IS_GREENLIGHT) { const lightning = yield loadLightning(false, ownerPubkey); const req = interfaces.keysendRequest(options); // console.log("KEYSEND REQ", JSON.stringify(req)) @@ -337,31 +344,54 @@ function keysend(opts, ownerPubkey) { }); } else { - // console.log("SEND sendPaymentV2", options) - // new sendPayment (with optional route hints) + delete options.payment_hash; + delete dest_custom_records[exports.LND_KEYSEND_KEY]; + options.dest_features = amp_features; + options.amp = true; options.fee_limit_sat = FEE_LIMIT_SAT; options.timeout_seconds = 16; const router = yield loadRouter(); const call = router.sendPaymentV2(options); call.on('data', function (payment) { - const state = payment.status || payment.state; - if (payment.payment_error) { - reject(payment.payment_error); - } - else { - if (state === 'IN_FLIGHT') { - // do nothing - } - else if (state === 'FAILED_NO_ROUTE') { - reject(payment.failure_reason || payment); + return __awaiter(this, void 0, void 0, function* () { + const ampState = payment.status || payment.state; + if (payment.payment_error) { + reject(payment.payment_error); } - else if (state === 'FAILED') { - reject(payment.failure_reason || payment); + else { + if (ampState === 'SUCCEEDED') { + resolve(payment); + } + else if (ampState !== 'IN_FLIGHT') { + logger_1.sphinxLogger.debug(`AMP ${ampState}, trying keysend`, logger_1.logging.Lightning); + yield new Promise((resolve, reject) => router.resetMissionControl({}, (err) => err ? reject(err) : resolve())); + // restore options + options.payment_hash = payment_hash; + options.dest_custom_records[exports.LND_KEYSEND_KEY] = preimage; + options.dest_features = keysend_features; + delete options.amp; + const call = router.sendPaymentV2(options); + call.on('data', function (payment) { + const keysendState = payment.status || payment.state; + if (payment.payment_error) { + reject(payment.payment_error); + } + else { + if (keysendState === 'SUCCEEDED') { + resolve(payment); + } + else if (keysendState !== 'IN_FLIGHT') { + logger_1.sphinxLogger.debug(`AMP ${ampState} and keysend ${keysendState}`, logger_1.logging.Lightning); + reject(payment.failure_reason || payment); + } + } + }); + call.on('error', function (err) { + reject(err); + }); + } } - else if (state === 'SUCCEEDED') { - resolve(payment); - } - } + }); }); call.on('error', function (err) { reject(err); @@ -571,7 +601,7 @@ function signBuffer(msg, ownerPubkey) { logger_1.sphinxLogger.info('signBuffer', logger_1.logging.Lightning); return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { - if (IS_GREENLIGHT) { + if (exports.IS_GREENLIGHT) { const pld = interfaces.greenlightSignMessagePayload(msg); const sig = libhsmd_1.default.Handle(1024, 0, null, pld); const sigBuf = Buffer.from(sig, 'hex'); @@ -615,7 +645,7 @@ function verifyMessage(msg, sig, ownerPubkey) { logger_1.sphinxLogger.info('verifyMessage', logger_1.logging.Lightning); return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { - if (IS_GREENLIGHT) { + if (exports.IS_GREENLIGHT) { const fullBytes = zbase32.decode(sig); const sigBytes = fullBytes.slice(1); const recidBytes = fullBytes.slice(0, 1); @@ -747,7 +777,7 @@ exports.listChannels = listChannels; function pendingChannels(ownerPubkey) { return __awaiter(this, void 0, void 0, function* () { logger_1.sphinxLogger.info('pendingChannels', logger_1.logging.Lightning); - if (IS_GREENLIGHT) + if (exports.IS_GREENLIGHT) return []; return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { const lightning = yield loadLightning(true, ownerPubkey); // try proxy @@ -807,7 +837,7 @@ function complexBalances(ownerPubkey) { logger_1.sphinxLogger.info('complexBalances', logger_1.logging.Lightning); const channelList = yield listChannels({}, ownerPubkey); const { channels } = channelList; - if (IS_GREENLIGHT) { + if (exports.IS_GREENLIGHT) { const local_balance = channels.reduce((a, chan) => a + parseInt(chan.local_balance), 0); return { reserve: 0, @@ -818,7 +848,8 @@ function complexBalances(ownerPubkey) { } else { const reserve = channels.reduce((a, chan) => a + parseInt(chan.local_chan_reserve_sat), 0); - const spendableBalance = channels.reduce((a, chan) => a + Math.max(0, parseInt(chan.local_balance) - parseInt(chan.local_chan_reserve_sat)), 0); + const spendableBalance = channels.reduce((a, chan) => a + + Math.max(0, parseInt(chan.local_balance) - parseInt(chan.local_chan_reserve_sat)), 0); const response = yield channelBalance(ownerPubkey); return { reserve, @@ -850,7 +881,7 @@ exports.channelBalance = channelBalance; function getChanInfo(chan_id, tryProxy) { return __awaiter(this, void 0, void 0, function* () { // log('getChanInfo') - if (IS_GREENLIGHT) + if (exports.IS_GREENLIGHT) return {}; // skip for now return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { if (!chan_id) { diff --git a/dist/src/grpc/lightning.js.map b/dist/src/grpc/lightning.js.map index b9a5f16db..9695d2462 100644 --- a/dist/src/grpc/lightning.js.map +++ b/dist/src/grpc/lightning.js.map @@ -1 +1 @@ -{"version":3,"file":"lightning.js","sourceRoot":"","sources":["../../../src/grpc/lightning.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lightning.js","sourceRoot":"","sources":["../../../src/grpc/lightning.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/grpc/subscribe.js b/dist/src/grpc/subscribe.js index e3ba16e1a..d1f19280f 100644 --- a/dist/src/grpc/subscribe.js +++ b/dist/src/grpc/subscribe.js @@ -39,7 +39,11 @@ function subscribeInvoices(parseKeysendInvoice) { return; } // console.log("IS KEYSEND", inv.is_keysend) - if (inv.is_keysend) { + if ((inv.htlcs && + inv.htlcs[0] && + inv.htlcs[0].custom_records && + lightning_1.SPHINX_CUSTOM_RECORD_KEY in inv.htlcs[0].custom_records) || + inv.is_keysend) { parseKeysendInvoice(inv); } else { diff --git a/dist/src/grpc/subscribe.js.map b/dist/src/grpc/subscribe.js.map index d898e7495..d97b89138 100644 --- a/dist/src/grpc/subscribe.js.map +++ b/dist/src/grpc/subscribe.js.map @@ -1 +1 @@ -{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../src/grpc/subscribe.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../src/grpc/subscribe.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/network/receive.js b/dist/src/network/receive.js index 63007301f..b5c6bedd6 100644 --- a/dist/src/network/receive.js +++ b/dist/src/network/receive.js @@ -30,6 +30,7 @@ const proxy_1 = require("../utils/proxy"); const bolt11 = require("@boltz/bolt11"); const config_1 = require("../utils/config"); const logger_1 = require("../utils/logger"); +const sha = require("js-sha256"); const config = (0, config_1.loadConfig)(); /* delete type: @@ -502,14 +503,16 @@ function saveAnonymousKeysend(inv, memo, sender_pubkey, tenant) { const hashCache = {}; function parseKeysendInvoice(i) { return __awaiter(this, void 0, void 0, function* () { - try { - const hash = i.r_hash.toString('base64'); - if (hashCache[hash]) - return; - hashCache[hash] = true; - } - catch (e) { - logger_1.sphinxLogger.error('failed hash cache in parseKeysendInvoice'); + if (Lightning.IS_GREENLIGHT) { + try { + const hash = sha.sha256.hex(JSON.stringify(i)); + if (hashCache[hash]) + return; + hashCache[hash] = true; + } + catch (e) { + logger_1.sphinxLogger.error('failed hash cache in parseKeysendInvoice'); + } } const recs = i.htlcs && i.htlcs[0] && i.htlcs[0].custom_records; let dest = ''; diff --git a/dist/src/network/receive.js.map b/dist/src/network/receive.js.map index c473d0351..9a85426da 100644 --- a/dist/src/network/receive.js.map +++ b/dist/src/network/receive.js.map @@ -1 +1 @@ -{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../../src/network/receive.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../../src/network/receive.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/tests/controllers/ampPayment.test.js b/dist/src/tests/controllers/ampPayment.test.js new file mode 100644 index 000000000..c626b37fa --- /dev/null +++ b/dist/src/tests/controllers/ampPayment.test.js @@ -0,0 +1,100 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ava_1 = require("ava"); +const msg_1 = require("../utils/msg"); +const nodes_1 = require("../nodes"); +const save_1 = require("../utils/save"); +ava_1.default.serial('ampMessage: send more sats than one channel can handle to test AMP', (t) => __awaiter(void 0, void 0, void 0, function* () { + t.true(Array.isArray(nodes_1.default)); + yield ampMessage(t, nodes_1.default); +})); +function ampMessage(t, nodes) { + return __awaiter(this, void 0, void 0, function* () { + // node accept-keysend accept-amp + // alice true true + // bob false true + // carol true false + // the 3 nodes have 3 2M channels in total with 1M sats local_balance + // + // A + // 1M / \ 1M + // / \ + // / \ + // 1M / \ 1M + // B---------C + // 1M 1M + // + // Test that alice can send a payment of 1.5M sats to bob + // With only keysend this would not work because she has 2x 1M local_balance + // The payment should be split in 2 shards of 750k sats each + // --- shard of 750k sats ---> C --- forward ---> + // A B + // --------- second shard of 750k sats ---------> + { + const node1 = nodes[0]; + const node2 = nodes[1]; + console.log(`amp payment from ${node1.alias} to ${node2.alias}`); + console.log('adding contact'); + const added = yield (0, save_1.addContact)(t, node1, node2); + t.true(added, 'n1 should add n2 as contact'); + console.log('contact added'); + console.log(`sending payment ${node1.alias} -> ${node2.alias}`); + //NODE1 SENDS PAYMENT TO NODE2 + const amount = 1500000; + const paymentText = 'AMP test 1'; + const payment = yield (0, msg_1.sendPayment)(t, node1, node2, amount, paymentText); + console.log(payment); + t.true(payment, 'payment should be sent'); + console.log(`payment sent ${node1.alias} -> ${node2.alias}`); + } + // Nodes will try to send AMP, but carol doesn't `accept-amp` + // Test a payment of 100k sats from bob to carol + { + const node1 = nodes[1]; + const node2 = nodes[2]; + console.log(`amp payment from ${node1.alias} to ${node2.alias}`); + console.log('adding contact'); + const added = yield (0, save_1.addContact)(t, node1, node2); + t.true(added, 'n1 should add n2 as contact'); + console.log('contact added'); + console.log(`sending payment ${node1.alias} -> ${node2.alias}`); + //NODE1 SENDS PAYMENT TO NODE2 + const amount = 100000; + const paymentText = 'AMP test 2'; + const payment = yield (0, msg_1.sendPayment)(t, node1, node2, amount, paymentText); + console.log(payment); + t.true(payment, 'payment should be sent'); + console.log(`payment sent ${node1.alias} -> ${node2.alias}`); + } + // Carol doesn't `accept-amp`, but that doesn't mean he can't send it + // Test a payment of 1.8M sats from carol to alice + { + const node1 = nodes[2]; + const node2 = nodes[0]; + console.log(`amp payment from ${node1.alias} to ${node2.alias}`); + console.log('adding contact'); + const added = yield (0, save_1.addContact)(t, node1, node2); + t.true(added, 'n1 should add n2 as contact'); + console.log('contact added'); + console.log(`sending payment ${node1.alias} -> ${node2.alias}`); + //NODE1 SENDS PAYMENT TO NODE2 + const amount = 1800000; + const paymentText = 'AMP test 3'; + const payment = yield (0, msg_1.sendPayment)(t, node1, node2, amount, paymentText); + console.log(payment); + t.true(payment, 'payment should be sent'); + console.log(`payment sent ${node1.alias} -> ${node2.alias}`); + } + }); +} +module.exports = ampMessage; +//# sourceMappingURL=ampPayment.test.js.map \ No newline at end of file diff --git a/dist/src/tests/controllers/ampPayment.test.js.map b/dist/src/tests/controllers/ampPayment.test.js.map new file mode 100644 index 000000000..60ea5406a --- /dev/null +++ b/dist/src/tests/controllers/ampPayment.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ampPayment.test.js","sourceRoot":"","sources":["../../../../src/tests/controllers/ampPayment.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/tests/controllers/messageLength.test.js b/dist/src/tests/controllers/messageLength.test.js index fb9b636bd..61bc88a47 100644 --- a/dist/src/tests/controllers/messageLength.test.js +++ b/dist/src/tests/controllers/messageLength.test.js @@ -83,7 +83,7 @@ function longMessage(t, node1, node2) { const longText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Risus feugiat in ante metus dictum at tempor. Ut enim blandit volutpat maecenas volutpat. Velit dignissim sodales ut eu. Eget nunc scelerisque viverra mauris in aliquam sem. Dictum varius duis at consectetur lorem. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Id velit ut tortor pretium viverra suspendisse potenti. Placerat vestibulum lectus mauris ultrices eros in cursus turpis. Integer vitae justo eget magna. Duis tristique sollicitudin nibh sit amet commodo nulla facilisi nullam. Vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Vitae sapien pellentesque habitant morbi tristique. Varius vel pharetra vel turpis nunc eget lorem dolor. Pellentesque massa placerat duis ultricies lacus sed turpis. Augue neque gravida in fermentum et sollicitudin. Adipiscing elit pellentesque habitant morbi tristique."; console.log("sending long message to", node2.alias); yield (0, msg_1.sendMessage)(t, node1, node2, longText); - yield (0, helpers_1.sleep)(1000); + yield (0, helpers_1.sleep)(2000); //Checking for the new long message const onlyMessage = yield (0, get_1.getCheckAllMessages)(t, node2, limit, offset, 'desc'); t.true(decrypt(onlyMessage.new_messages[0], node2) == longText, 'reciever should get long message'); diff --git a/dist/src/tests/utils/get/getCheckMsgs.js b/dist/src/tests/utils/get/getCheckMsgs.js index a551ac4ff..d962efb1f 100644 --- a/dist/src/tests/utils/get/getCheckMsgs.js +++ b/dist/src/tests/utils/get/getCheckMsgs.js @@ -22,7 +22,7 @@ function getCheckMsgs(_t, node, date, limit, offset, order = 'asc') { exports.getCheckMsgs = getCheckMsgs; function timeout(i, node, date, limit, offset, order, resolve, reject) { return __awaiter(this, void 0, void 0, function* () { - const msgRes = yield http.get(`${node.external_ip}/msgs?date=${date}&limit=${limit}&offset=${offset}&order=${order}`, (0, helpers_1.makeArgs)(node)); + const msgRes = yield http.get(`${node.external_ip}/msgs?date=${date.toISOString().replace(/T/, ' ').replace(/\..+/, '')}&limit=${limit}&offset=${offset}&order=${order}`, (0, helpers_1.makeArgs)(node)); if (msgRes.response.new_messages && msgRes.response.new_messages.length) { // console.log('===>', msgRes.response.new_messages ) return resolve(msgRes.response); diff --git a/dist/src/tests/utils/get/getCheckMsgs.js.map b/dist/src/tests/utils/get/getCheckMsgs.js.map index cea3b1243..48dec1f7f 100644 --- a/dist/src/tests/utils/get/getCheckMsgs.js.map +++ b/dist/src/tests/utils/get/getCheckMsgs.js.map @@ -1 +1 @@ -{"version":3,"file":"getCheckMsgs.js","sourceRoot":"","sources":["../../../../../src/tests/utils/get/getCheckMsgs.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAgC;AAChC,wCAAqC;AAIrC,SAAgB,YAAY,CAC1B,EAAc,EACd,IAAgB,EAChB,IAAS,EACT,KAAa,EACb,MAAc,EACd,QAAgB,KAAK;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,UAAU,CAAC,GAAS,EAAE;YACpB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC/D,CAAC,CAAA,EAAE,IAAI,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;AACJ,CAAC;AAbD,oCAaC;AAED,SAAe,OAAO,CACpB,CAAS,EACT,IAAgB,EAChB,IAAS,EACT,KAAa,EACb,MAAc,EACd,KAAa,EACb,OAAO,EACP,MAAM;;QAEN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,GAAG,IAAI,CAAC,WAAW,cAAc,IAAI,UAAU,KAAK,WAAW,MAAM,UAAU,KAAK,EAAE,EACtF,IAAA,kBAAQ,EAAC,IAAI,CAAC,CACf,CAAA;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE;YACvE,qDAAqD;YACrD,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SAChC;QACD,IAAI,CAAC,GAAG,EAAE,EAAE;YACV,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAA;SACxC;QACD,UAAU,CAAC,GAAS,EAAE;YACpB,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACnE,CAAC,CAAA,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;CAAA"} \ No newline at end of file +{"version":3,"file":"getCheckMsgs.js","sourceRoot":"","sources":["../../../../../src/tests/utils/get/getCheckMsgs.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAgC;AAChC,wCAAqC;AAIrC,SAAgB,YAAY,CAC1B,EAAc,EACd,IAAgB,EAChB,IAAU,EACV,KAAa,EACb,MAAc,EACd,QAAgB,KAAK;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,UAAU,CAAC,GAAS,EAAE;YACpB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC/D,CAAC,CAAA,EAAE,IAAI,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;AACJ,CAAC;AAbD,oCAaC;AAED,SAAe,OAAO,CACpB,CAAS,EACT,IAAgB,EAChB,IAAU,EACV,KAAa,EACb,MAAc,EACd,KAAa,EACb,OAAO,EACP,MAAM;;QAEN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,GAAG,IAAI,CAAC,WAAW,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,KAAK,WAAW,MAAM,UAAU,KAAK,EAAE,EAC1I,IAAA,kBAAQ,EAAC,IAAI,CAAC,CACf,CAAA;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE;YACvE,qDAAqD;YACrD,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SAChC;QACD,IAAI,CAAC,GAAG,EAAE,EAAE;YACV,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAA;SACxC;QACD,UAAU,CAAC,GAAS,EAAE;YACpB,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACnE,CAAC,CAAA,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;CAAA"} \ No newline at end of file diff --git a/package.json b/package.json index 3184238aa..11bf0de26 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "dev": "rm -rf dist/ && tsc && cp -r public dist/public && node --inspect ./dist/app.js", "build-binaries": "rm -rf dist/ && tsc && cp config/app.json dist/config/app.json && cp config/config.json dist/config/config.json && pkg . --target node12-alpine-x64,node12-macos-x64 --out-path binaries", "start-ecs": "cp config/app.json dist/config/app.json && cp config/config.json dist/config/config.json && export NODE_ENV=production && node --max-old-space-size=128 dist/app.js", - "lint": "eslint ./src/*.ts ./src/**/*.ts --fix --max-warnings 466" + "lint": "eslint ./src/*.ts ./src/**/*.ts --fix --max-warnings 465" }, "keywords": [], "author": "", diff --git a/src/grpc/interfaces.ts b/src/grpc/interfaces.ts index 6368dc94b..38a3a15b7 100644 --- a/src/grpc/interfaces.ts +++ b/src/grpc/interfaces.ts @@ -351,18 +351,19 @@ export function listPeersResponse( } export type Buf = Buffer | ByteBuffer | ArrayBuffer -type DestCustomRecords = { [k: string]: Buf } +export type DestCustomRecords = { [k: number]: Buf } export interface KeysendRequest { amt: number final_cltv_delta: number dest: Buf dest_custom_records: DestCustomRecords - payment_hash: Buf + payment_hash?: Buf dest_features: number[] route_hints?: RouteHint[] fee_limit?: { [k: string]: number } fee_limit_sat?: number timeout_seconds?: number + amp?: boolean } interface GreenlightHop { node_id: Buf @@ -530,6 +531,7 @@ export interface Invoice { htlcs: InvoiceHTLC[] features: { [k: string]: any } is_keysend: boolean + is_amp: boolean } // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface Payment { diff --git a/src/grpc/lightning.ts b/src/grpc/lightning.ts index 29607d0a0..11b912f08 100644 --- a/src/grpc/lightning.ts +++ b/src/grpc/lightning.ts @@ -20,7 +20,7 @@ import { Req } from '../types' const config = loadConfig() const LND_IP = config.lnd_ip || 'localhost' // const IS_LND = config.lightning_provider === "LND"; -const IS_GREENLIGHT = config.lightning_provider === 'GREENLIGHT' +export const IS_GREENLIGHT = config.lightning_provider === 'GREENLIGHT' export const LND_KEYSEND_KEY = 5482373484 export const SPHINX_CUSTOM_RECORD_KEY = 133773310 @@ -289,25 +289,32 @@ export function keysend( sphinxLogger.info('keysend', logging.Lightning) return new Promise(async function (resolve, reject) { try { - const preimage = ByteBuffer.wrap(crypto.randomBytes(32)) - const dest_custom_records = { - [`${LND_KEYSEND_KEY}`]: preimage, + const preimage = crypto.randomBytes(32) + const payment_hash = sha.sha256.arrayBuffer(preimage) + const dest_custom_records: interfaces.DestCustomRecords = { + [LND_KEYSEND_KEY]: preimage, } if (opts.extra_tlv) { Object.entries(opts.extra_tlv).forEach(([k, v]) => { - dest_custom_records[k] = ByteBuffer.fromUTF8(v) + dest_custom_records[k] = Buffer.from(v, 'utf8') }) } + // feature bits: + // 9: tlv-onion + // 15: payment-addr + // 30: amp (required) + const keysend_features = [9] + const amp_features = [9, 15, 30] const options: interfaces.KeysendRequest = { amt: Math.max(opts.amt, constants.min_sat_amount || 3), final_cltv_delta: 10, dest: ByteBuffer.fromHex(opts.dest), dest_custom_records, - payment_hash: sha.sha256.arrayBuffer(preimage.toBuffer()), - dest_features: [9], + payment_hash, + dest_features: keysend_features, } if (opts.data) { - options.dest_custom_records[`${SPHINX_CUSTOM_RECORD_KEY}`] = + options.dest_custom_records[SPHINX_CUSTOM_RECORD_KEY] = ByteBuffer.fromUTF8(opts.data) } // add in route hints @@ -350,25 +357,57 @@ export function keysend( } }) } else { - // console.log("SEND sendPaymentV2", options) - // new sendPayment (with optional route hints) + delete options.payment_hash + delete dest_custom_records[LND_KEYSEND_KEY] + options.dest_features = amp_features + options.amp = true + options.fee_limit_sat = FEE_LIMIT_SAT options.timeout_seconds = 16 const router = await loadRouter() const call = router.sendPaymentV2(options) - call.on('data', function (payment) { - const state = payment.status || payment.state + call.on('data', async function (payment) { + const ampState: string = payment.status || payment.state if (payment.payment_error) { reject(payment.payment_error) } else { - if (state === 'IN_FLIGHT') { - // do nothing - } else if (state === 'FAILED_NO_ROUTE') { - reject(payment.failure_reason || payment) - } else if (state === 'FAILED') { - reject(payment.failure_reason || payment) - } else if (state === 'SUCCEEDED') { + if (ampState === 'SUCCEEDED') { resolve(payment) + } else if (ampState !== 'IN_FLIGHT') { + sphinxLogger.debug( + `AMP ${ampState}, trying keysend`, + logging.Lightning + ) + await new Promise((resolve, reject) => + router.resetMissionControl({}, (err) => + err ? reject(err) : resolve() + ) + ) + // restore options + options.payment_hash = payment_hash + options.dest_custom_records[LND_KEYSEND_KEY] = preimage + options.dest_features = keysend_features + delete options.amp + const call = router.sendPaymentV2(options) + call.on('data', function (payment) { + const keysendState: string = payment.status || payment.state + if (payment.payment_error) { + reject(payment.payment_error) + } else { + if (keysendState === 'SUCCEEDED') { + resolve(payment) + } else if (keysendState !== 'IN_FLIGHT') { + sphinxLogger.debug( + `AMP ${ampState} and keysend ${keysendState}`, + logging.Lightning + ) + reject(payment.failure_reason || payment) + } + } + }) + call.on('error', function (err) { + reject(err) + }) } } }) @@ -488,7 +527,10 @@ export async function listAllInvoices(): Promise { return paginateInvoices(40) } -async function paginateInvoices(limit: number, i = 0): Promise { +async function paginateInvoices( + limit: number, + i = 0 +): Promise { try { const r = await listInvoicesPaginated(limit, i) const lastOffset = parseInt(r.first_index_offset) @@ -501,7 +543,10 @@ async function paginateInvoices(limit: number, i = 0): Promise { +function listInvoicesPaginated( + limit: number, + offset: number +): Promise<{ first_index_offset: string; invoices: interfaces.Invoice[] }> { return new Promise(async (resolve, reject) => { const lightning = await loadLightning() lightning.listInvoices( @@ -526,7 +571,10 @@ export async function listAllPayments(): Promise { return pays } -async function paginatePayments(limit: number, i = 0): Promise { +async function paginatePayments( + limit: number, + i = 0 +): Promise { try { const r = await listPaymentsPaginated(limit, i) const lastOffset = parseInt(r.first_index_offset) // this is "first" cuz its in reverse (lowest index) @@ -539,7 +587,10 @@ async function paginatePayments(limit: number, i = 0): Promise { +export function listPaymentsPaginated( + limit: number, + offset: number +): Promise<{ first_index_offset: string; payments: interfaces.Payment[] }> { return new Promise(async (resolve, reject) => { const lightning = await loadLightning() lightning.listPayments( @@ -556,7 +607,9 @@ export function listPaymentsPaginated(limit: number, offset: number): Promise<{ }) } -export function listAllPaymentsFull(): Promise<{ payments: interfaces.Payment[] }> { +export function listAllPaymentsFull(): Promise<{ + payments: interfaces.Payment[] +}> { sphinxLogger.info('=> list all payments') return new Promise(async (resolve, reject) => { const lightning = await loadLightning() @@ -571,7 +624,10 @@ export function listAllPaymentsFull(): Promise<{ payments: interfaces.Payment[] } // msg is hex -export async function signMessage(msg: string, ownerPubkey?: string): Promise { +export async function signMessage( + msg: string, + ownerPubkey?: string +): Promise { return signBuffer(Buffer.from(msg, 'hex'), ownerPubkey) } @@ -859,7 +915,12 @@ export async function complexBalances( 0 ) const spendableBalance = channels.reduce( - (a, chan) => a + Math.max(0, parseInt(chan.local_balance) - parseInt(chan.local_chan_reserve_sat)), + (a, chan) => + a + + Math.max( + 0, + parseInt(chan.local_balance) - parseInt(chan.local_chan_reserve_sat) + ), 0 ) const response = await channelBalance(ownerPubkey) diff --git a/src/grpc/subscribe.ts b/src/grpc/subscribe.ts index 7450b4ec4..e5b82432c 100644 --- a/src/grpc/subscribe.ts +++ b/src/grpc/subscribe.ts @@ -1,4 +1,4 @@ -import { loadLightning } from './lightning' +import { loadLightning, SPHINX_CUSTOM_RECORD_KEY } from './lightning' import * as network from '../network' import { tryToUnlockLND } from '../utils/unlock' import { receiveNonKeysend } from './regular' @@ -31,7 +31,13 @@ export function subscribeInvoices( return } // console.log("IS KEYSEND", inv.is_keysend) - if (inv.is_keysend) { + if ( + (inv.htlcs && + inv.htlcs[0] && + inv.htlcs[0].custom_records && + SPHINX_CUSTOM_RECORD_KEY in inv.htlcs[0].custom_records) || + inv.is_keysend + ) { parseKeysendInvoice(inv) } else { receiveNonKeysend(inv) diff --git a/src/network/receive.ts b/src/network/receive.ts index 7896876c8..6ecb61dbb 100644 --- a/src/network/receive.ts +++ b/src/network/receive.ts @@ -32,6 +32,7 @@ import * as bolt11 from '@boltz/bolt11' import { loadConfig } from '../utils/config' import { sphinxLogger, logging } from '../utils/logger' import { Payload, AdminPayload } from './interfaces' +import * as sha from 'js-sha256' const config = loadConfig() /* @@ -535,12 +536,14 @@ const hashCache: { [k: string]: boolean } = {} export async function parseKeysendInvoice( i: interfaces.Invoice ): Promise { - try { - const hash = i.r_hash.toString('base64') - if (hashCache[hash]) return - hashCache[hash] = true - } catch (e) { - sphinxLogger.error('failed hash cache in parseKeysendInvoice') + if (Lightning.IS_GREENLIGHT) { + try { + const hash = sha.sha256.hex(JSON.stringify(i)) + if (hashCache[hash]) return + hashCache[hash] = true + } catch (e) { + sphinxLogger.error('failed hash cache in parseKeysendInvoice') + } } const recs = i.htlcs && i.htlcs[0] && i.htlcs[0].custom_records diff --git a/src/tests/configs/.gitignore b/src/tests/configs/.gitignore new file mode 100644 index 000000000..6a4e54da1 --- /dev/null +++ b/src/tests/configs/.gitignore @@ -0,0 +1 @@ +nodes.json diff --git a/src/tests/configs/nodes.json b/src/tests/configs/nodes.json deleted file mode 100644 index db3c17c6f..000000000 --- a/src/tests/configs/nodes.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - { - "alias": "alice", - "pubkey": "03a394d0ebf0d003124ab130c6b12b8b990a50a30a464354800a51981ba745bb07", - "ip": "http://alice.sphinx:3001", - "external_ip": "http://localhost:3001", - "authToken": "/3S3tM7OZxsgpgGcWghn", - "contact_key": "MIIBCgKCAQEA4qi6zHioHi3fnLOO5s/9YykchQI/DWGnRut5fmt1TaYyigd+zivgXrSndPoGp+J2rvzcavjIlOfbi+omxNNOMv4I9RY+pstcs+qMZ+l4WgtldxJbFGDlyXEBMQUh2AF1xT5arl13PzERvcCMeFViP17WeCvX31Zv4A9bFiXhREsaCQgdONxg5Cv7i9UNjAQnwiwXJerAH7XTL6xyRG2pu0mdyOf5GruGawn/Ux8Bdct/Y73b0DFPg47fBe2HZ8+OjwhIpRyFLKyUltjRYwqa3LVuX7grWXLTgiqWXRbQqj9UwwBevLWqf07qsXRk+EmoQJAuZCom0262W51CXobdQQIDAQAB", - "privkey": "MIIEogIBAAKCAQEA4qi6zHioHi3fnLOO5s/9YykchQI/DWGnRut5fmt1TaYyigd+zivgXrSndPoGp+J2rvzcavjIlOfbi+omxNNOMv4I9RY+pstcs+qMZ+l4WgtldxJbFGDlyXEBMQUh2AF1xT5arl13PzERvcCMeFViP17WeCvX31Zv4A9bFiXhREsaCQgdONxg5Cv7i9UNjAQnwiwXJerAH7XTL6xyRG2pu0mdyOf5GruGawn/Ux8Bdct/Y73b0DFPg47fBe2HZ8+OjwhIpRyFLKyUltjRYwqa3LVuX7grWXLTgiqWXRbQqj9UwwBevLWqf07qsXRk+EmoQJAuZCom0262W51CXobdQQIDAQABAoIBAH2a/5mcK5490bNnFgP2svamq7VR31stCKQWjgduyVy0g0FWkgDy863H8xyyCcozh43FduiY4Z8TNek9Yyqj5qv/dztKjoGkJMVXb2OOUDGmKx5nP631XKHbS8u8ilrHxFoACgSiqxiLuscq0y1EM+PmTHff5AtSPUEvgUyuxT0wTdhLv75SfSsigqQitzMT9pjZheMy0ZC+JG9OwWdD+7tejk/NcmaGnzy/t1F/nbfY7cEBzZ3qQZRU9I2iBoNEky6bJbsAn3sk+l8p1ncb+Ha6DLmRdCjZ9eYxYuIiJEZvY7YP3CJOiupVcGzTahgUOs7OjPEOfzffBFBrE73R+aECgYEA/1a2pY3pW4m2O9OuR1p/2RIrg0pXjjbie09lxV8+P5Qgc38fKgBe3H/c1rzJ6mnr9HzA+PC9Qm8ligXg6pAR1z7i2PoxmUvlS+IXWzTUgM4SeqG/lQ4k1Ra/9MG29HHz3lpkv4aT2mqjb+LQDKQTD5vcCZFPuEZK2PTl8OYgq4UCgYEA4z8AgQ5rxW/kBctfA7s3AxNrGDOnAsxO2EggGVzdZr7y2VnQsCw+psPkvPwufv4RJ7m5KBD6utubqyzcm+c2cg6Puv2Vg6CTBvtMkPIC2HhEVQ+m3VvFGZWzVu9RqTXbtYch5qvmQWuF8kFMtREwyCGV5/PcIr7VMsuBOWnPYY0CgYBggqMIkkoIylVx6YGvAJrgLkj6F+heHYqfNxRtdKFvoIpffUYHNxqj10Reef8Ltjt0Lo81yLCQYrhaofwwTIIhzGgrwO1sVs51TyCq3Z4QjVNYvLhQG4d6b13gojOH02ZsvdfkuHY8ESBzUtR2YrG9rZiOmTj7mr4BoRckZacljQKBgEF4CCwmPHRQTRBCTChmCm5PbN43G1maBOkYtm64K20LfCmUT6RByvb+nuq3eKnLhqO8RRS+941X8Zw6O4CK90ua2FvV7PpUC6fKRH/JyXoWBBHBhaBmbP12/IkCP7ORObAts12ijp6wXJGzsGbGAhjWXDrMLdKwyfltWdhxnHaNAoGAdACiH6mVQpPFA2eM3x87K/CTYQebZAwzu/IbLgEyqUn/Tc7Th1GhchsG1MdPnqIwIe2rCnbOzABY4eLcWOhxcK976taWjDNExjLFyYWHnVeVpjVKGaTzfI0TGRwLX3n3wmr53yBnCZWDWTVJYkqvRstFIcLpltGDn65vR2DiTBU=", - "exported_keys": "a2V5czo6QXdGTEpjTk5vNXFhSStyU29YY3JkcUtMay9iWEgvdjEzb1dOUUhvcjhjLyt1ZVJvYnppZktKSC9nV0VDL2xub3B5RytCNFBMaU82NHBhNHIzRyt4STk3NnB0a3ZYZWE2SGVFODVQbGV0eGIrb0x0eGdmSGlUTHFma29Wc1BwMnc2QlFwaWliMXdJT2ZTRzVmUmcxdy80Q2xBcmJ5VGdjRjJUd3NhZEZlWXJNRXFDcUFadGFsamVWS1RYVFYrL3cyUm9FZ214VFdtNHpiNjFkTHIxWG5hcXM5VWpqczd5NEJYdlNXT3VIZlVaekFjdTJ0U2d5R25VczlwbEJwU0p6RGFFWUVzeDFjMTdHcG9aeXFwRGVGRFNFNzltcXFRM3JvQU9OUFNaa1YrbkhWZHMxdFpWd1Z0UkFlWW1RWUpjbjFSSXlHTk4xZXUybWt0VkZ0M0IzYmNqZ1NPdHRSbzFNWlZRdFpiYXVSOVY0NWxpTW5vZE1DMEpUNnVWV0Y1TStlVTBVb1lOSDh5aHYzajdqTURCd280dnF0eW5ROURUUTRmT0pINi9wazhRdHVCSHNHT1VPdEFhTEsvQjFIZ2t0S281Mk1ZL1Z1b0tJTHlKVnI3SzlRc1QwbW5CMmRrYlJ2ci85UjJ3cWNEQnlFVWRDVFRQM3BqbVVReEdNb090bEZKVUFRd2NMVmN5U1dFdVE5bjlLUnBlQ2FiOGIxdDlaNWZ4eDgzbDUrUzQzZjFvMUZ4dnhkWlgySmZnMkx4NExMZUd4emp2a2I2T0JnYndwL1FqTnk4YU13RW44N3BBUDJVQ0IzQitReVdBM2ZFZStYMnJKZFN5Mkt4dzhWTFBwWG1QQWovQkxKWmZFT0dYZi9JNmUxOTNtQWxrRGJ5Z2pFNmRsUCs0VExqVTNOS0ZTK0JLRzU3VUhSM095L0dndm1SVkdpMXVDT0NISi91T0FOUFhXbUFCS2c5ZUw1TllUeEgxSmhkVG5ZT2RyeEdYTHArcERwMnc4U0hNTTIzcnY0VlBpWG9CbnNZS25mT2hSS1NPTDFLNU9XVzVMRFlVOWtvUTVqbWNTdnYvWEk5STBqWmlxOUF4WjZHKzU5Y2lZR0VBYU5KS3REL1Z2YStCYUJseExHaTJRb0pjWDJSbnpkbWQrSUZod2hWdFg4dEowUW5ZRFZXc0hFTGxpaUtnKzFsT1krdGVoNzdEbHE5UW4vUUpqQzVGUTJXZU04SjFESTIvb2xkelhaODM2QmhWUlZMZzJSTWZLcTBHTEYxZUV3cVJra1J0ZEFWQzFVdTIwdDJsYi9WdVRETWo0MDJmTmpKT05yd1ZlQXJ1WkJyVFY2OHI5RXdXaUZHd2JDVkM1NFlzY2MrZnAwbFh4V1ZXU1BkY0dzWXh4WHBVQitJTHdMNm9HdWZMRUVjbnJuYmQ0eVRjMWRVY05RSVBZUWRIaXRJbDRUTjhNQkc1SmVCLzJNT1VXS0xXUXVOa21PRXNIMXp6UWJLbmtwc3dVYTUyd1dKNnBzeTlrOGE1eENJZjBqNW1ZdHJWZUNwZTlKdWFQRDdyeUxjc016L29MWkx3TlBtdFlnUXZMM1NscFY2VmNSdmp0bmJNanc3SERWQ1BtY3NkZlllTnkySFRESDVzZGM0RUFJakJOT05LTTJNUFFKSnhTaWRQaHcrVWsyeDhiVmVMYWhjSWtIZU00Yy9nVVlyUnhoS3hIOEN4RTBwYVh6YkpGMDliNmQzU3FtR0JMZGVjOE9STGVGeEZDRjBsc1h2RUJ6d1UwdjVlWFFaRmxMbWc0UmUyKzF5REJoV1VIRUNsSjVxeHNQWWNpUUY2ZGs4ckgrb3AwNW9mbTFHM1FWYko4MGh0cVkyOG9GNnVQNGdqSUU4WEpaRWkyL0ZLb2lXTXFlbEdmNktDbGxhTzF2NVh4SFROSDc3Y1hoSnRURWEvSit3L3AzYVhqTlE0VmQ5TWtJbm16L0VvTjBHZUdCUnhSL2g5TnJ5V0RHNCt0UnhlOEk5RjRsMDZGL3RRWmJtR1NUZFhIWUw5d1o0Rjllb0p2TmpTQ2JRZUVqVkYyemNIcCtQYjNycDY3ZjVTZWVSSGNvdmFnbFVQRzdKTW4wR2hOdDJvMTlSbXVoL1Nnc2c5QlphWjlvUUhGbnIzTC9ZVCtja3dKUDJvM2Y0ZlB0VGlTY00wUmRRbmN5YkNWb2IzU3JZVVV3NzNxajZqVjFqQS9FWDhBdEliUU05cmxhYVVLRG8xQWtvZnNCR1Y1SlNzVktKTWFZN3B0Y0RuZzZadC93V1paV25mVEtaUHQ2cTlDeEU1Q0VGNjRNYk5ZQk9LL2hjV2hZQTFBZGsxc0Y3UG9CMmR1L1pLL3FmUFRNenhCQWVzZDg5NEZtYWI3Uk9hcm0zTEJmaGJvUjJDNlNEcHhCOEdvMUc3alFHNzIrNWFjcnlxVlBuVGI4b2J0ajRTTDJyaEc5d2RaMmpKK291KzVyeHN6dWMrNWp6U3J6S0hvdHJhV2V0SnFXc28xTitPWXRneXI2S2tTMzgwbXdNaDlYQ1l4VTFCejlFcWd0QmhSVEZGZ1Yvei9nNytCaVdYTklUTzdMNDIzbWRnK3pkT1MzN1U5Njg3dFNCa0c3Y0FUVU9Nd05IeVJRZm82aEY0OENrZDNJWGoyeXRGM1hIdFBHbTNSSUw2Z1BPc1VQVXM3ZlY2YnYraE5mZVVONC81SFpLcE14UWNuTWd3TjhmOFpVZWZIQWtKMENoTTZMK1grZnhDdkcvK290NVF2bTdwSnBlZjNSK0Z0UXRML1l6NmZFV1VEUUNEeENZd0d0WmlqMkJTMEJFanNsRFE0OGorUGpUcTdFNDFaYU5KNkNsbEZBSTRpeDZpYmxUbnFQcnN5TzlzaWQvZDQ3aTEzZGVLNVZwaTRaM1R6dk14V1A1NkRZQkNWdk1Ic0xDREZWaFd4bFd5c1FORjk0czQ0MDdZVWhtQjJwQmhocmg2dGt1eGVjY2xMZ3RDTWJhVCt6WjB5K2lYeEh4NFc4bnovTmxHTklKeFhMNTA3L3owVFJvaFFoZmlHS0s1VEVTZGtoTlZnME12c0hVZHJrMm5MdzRHbnpyNXZoQmhIa2RCbjFwendJdXV3eWNIaWxHZCtrczRTcTE2K2JaVmRuNmVyc2k3aWVJVU1PR3BDUTkyYUYwK0RZOEozVTY3ZE5DL3ljcWhkdmg5cldXR2duZHhOT0VmRVMvTlhjeTdOeDYrYnhwMEtlb3dzUFl0ejdiSjZJTXRCekE1L3hQNGR2OUd1Z3ZXbWY1aVErY3EzWjJBUWpIYndxVENKUUhpdXJGcFJRbXB5YnFISEs1bVcyMmxzRUwxRWo0WjZybWwzVEthOUlQTDZLcHZ3RlF4amF6bHA0RHNjM0pTYThaMThLak1zQ0FxM0xRYlpMNWdkeU40NEk2SVFNV0FYRzdWenJkbEtMeHNySU0rRmFtc3M0Z1ZaTkNDd255OGtCekt0S0lQKzVHSTdjbEQzS1FwSG5RN3ZOcjEvTDBta0VFUWN0bFZMaE5mcWFrbmlmc29uMzZweFFubkFlaHJRZmVTalJEL1M0ZnB1L2pvYnhxNWRxT2VxQXRGU1RzM0djcUg3RHVWcFBvY2xFYVBuTTVlQmtVdmZvZDBHQi9FUU5ac24xT3RyMFVUaz0=", - "pin": "111111" - }, - { - "alias": "bob", - "pubkey": "02a38857848aca6b32ebcc3c85d07ee41354988f4f1e0b4e6ccd255eee6ed75b8d", - "ip": "http://bob.sphinx:3002", - "external_ip": "http://localhost:3002", - "authToken": "BbANspHdDk5umWHei/0t", - "contact_key": "MIIBCgKCAQEAoSzSQ6XsQTi0SpO0ljU7F1ZM5LIW2dtYU4rR79KbK/EttDmJ7CPISIznyybwS5ANUocC1BWrJTezhSu7hOd1YoW8wU48J3aNn9I3eGzDV4F2hF1pw3iZ36oIiEvaPv2CYswXGocldRgGEurkTXU/4zcxYUYBqo4/ZCGWXm5M76QASggq2rp8auBMPU7jgoG5DXifsdiXKVQkYjCtD2SBBhvEwvHXVaBs2xJEr1aFBjGRqeoyqMbFfECM7RKe2JeeEz0y686/dAscxIgIQp18OEyd3aS92i+lrBv/MzdJHGoST6VQ1nNDKI8AIDPium2R4tp04TtOS7X3ytZet7RdZQIDAQAB", - "privkey": "MIIEowIBAAKCAQEAoSzSQ6XsQTi0SpO0ljU7F1ZM5LIW2dtYU4rR79KbK/EttDmJ7CPISIznyybwS5ANUocC1BWrJTezhSu7hOd1YoW8wU48J3aNn9I3eGzDV4F2hF1pw3iZ36oIiEvaPv2CYswXGocldRgGEurkTXU/4zcxYUYBqo4/ZCGWXm5M76QASggq2rp8auBMPU7jgoG5DXifsdiXKVQkYjCtD2SBBhvEwvHXVaBs2xJEr1aFBjGRqeoyqMbFfECM7RKe2JeeEz0y686/dAscxIgIQp18OEyd3aS92i+lrBv/MzdJHGoST6VQ1nNDKI8AIDPium2R4tp04TtOS7X3ytZet7RdZQIDAQABAoIBAEnWht2G/h1DJRWlZW4LJO8kEkYTcHSOEID1cAg2q/ANpaqTUaRlIDRcmTRwulVjwTa1s44F/0olopC34Eia4SQpsLe+Z8CMh4VYgSEicrt8DBfH09RBQ/07oH0QgwOokDtC1LLKh1aFkwLHqZ/yvzoQ5wZxVAIW+OOen4zTa1u9RGIigPKEsAos24sNYli8mtYghYdExwTu09oPwcH/AibgVwtkwsUh6DHqLLyFAde656iVfm1xkmHP18oupopL2rAAn/9VfXg+vB7/sKVoOxx1JEA+bm6tsrSPxfmOFlnMPw0SHk4rU4Va9X8PtAFfSYIR3lwHnPNHCy6JdH7lXmECgYEAzefwPrS+o1voTSbeAbG1lmTFYgFAHoODsN5qiwWGRbVqJw8/qH7NBK5Sv6KFzbVbf3DQdgzzVYRfOrSbq5bCuWdFxcMTgMTFIwYv+UW7+N7E033hrpcFk9RiX66iqke5ZzRtwZ3dHnVX9Smo2q813yv3hbwleM7cYPNy7NvgOAMCgYEAyGL9XJZZab77fqUh+52ls5YeKpecPM+ligRkJdfuKHBBOGAJGdBOR5rj9Nxere4pOhjtv5XBS2C0A8JnHm1mEwXo9ycMK/IV2Us82E50gXfQf6LKpHeEGQ3L0Gol2EQx2tfzLqFYq3s50LFU6b+cSVCtCv5KNmR21MxvWyQeHHcCgYEAon00g+eSwcuXqLrRW7jnugVQFqUx+mKCnCMJJSh4663cVXKdI9Tc6aK/vmb8/Hbv+8QFXgOeS5AormU0q9ZPWIx87TGixG2DvL33QdmcGyuBW/ztCiA30I88CpH/4Cy1zRH8w1xW0OB9RwVXMSwvcSx7KthtIcbs9r1npi9l5A0CgYBu94Jed1PkX0JeC4waDl7oaEUkSPjYJBUDrRLYcg8Mjb1QPr5LcTMoK/n4auBzaOOjrJJb+c4ks9R8EHeSPfq8phUwaIsw+spmnmd/UVLrLzJiu/+DvDuGtEEdlOqILJt/GP8t32N+8qo9izX+i4E8iFSLNe5a2J+FkABKdGHIWQKBgHgQ+dVIs9zakLbQCt62tGGYMR+8kgzQf2iZWFhz8ALnXD/LYChHLSiZWW9HcBjmObhCQs+ciCoSt0rWRUN+pjv/93+y+c8WHK9RAfAX1Hjxfo7C9OXtnHmbiabZuuLPQjGeohmkRw0e8ngqsZAbiRGTeN7acBhtf6IytgSG2yk7", - "exported_keys": "a2V5czo6QXdGc0tSVkZVZU1idCtnSENZWXV4Y2IxSTZoOVhiY0F3TlkxaE1qR0p0UmlIRDJXb00vdERyT3pheXJ2WGNyK2R5b2F3aElXcEI1dTZHV2hNRE1uaU1naVpLamlJTDlnSW00ZmFKb0VHbTMrYkNEbWNRbDMzWlplRUgxbEV2WDAzYnNyUkViNFZtYXZ2WUdDL3pRaGVQUWZGWUhRMGVNbzdsWGJuZExVUkUxWENUVDd1cUcrKzd5WDMrRXlDY2d4VHRuS0lwUXRwNHZIempjZXNMNDRRbU01bkc0K09vdlNidFd1RmhNSlR5QlFPemg0R1ZwUC9qUGF0eDlIYmRiUzhnb0dZaEIrQklzVGpjbFZMMCtFUUwxTHUySWdxWFU4bklhS2t4ZVlBQTFrRUEzTktMZ21tK0pNWkFZcFprcFhFelduL1R0ZnJkTVpYL1RNRStIV2dpN0xOa2lHS2VxR1hEQzBtYk1UMXlycHU3UUMrZkdTdzJZTjcybkZnZ25VMW9vdkRnaERyZTQvN0VXclE1NU5BNGFhYUdyT2hCaHFIOFVBTGc1WHFISGpkTzJxUjhidXJqcktCY0xvMS9vQnZjWnJaQ1lWTExXVzRqNjZ2QzdjTkdpb3psLy9EMzJLNmxtMm8xaUkxemo5UU5ZNWxvRmFFb1RsbVVWb290Q1g1RDk0bUFhYlEzMHNlcDlYN292ZCtvMUtyOFozWHBMS3lGWURuSmpCZ0hid1NwY2xkT3U1UG8xSjZmUFlNODFJRjVMY1MweWFNWGRjNFN2dldNeGxFcWNmMThLNkZSNCtrT1JhWlh3VlZWLy9zWUE5WUtTRlZISlJ1bHE0SHNOaGJucW5yUjNpVEJXeVRtQlU4ZjU1L0RWSWxQeDZNSmJkYlFpelQ5SzJuR3R0Y090OXRsdThFUE1aSUZkczBJUW5mQjZNdEwzR3pyQTFyaTF5akJVcHNCcmxUZkZHTHBReVhyeG1jTGNOOWpsaXVhQTgraytFYVVjYTlFUG1IbHNZekluQkFXOTFwRGZySmE4RWdKUG9odjhKQUxBTDliRWtKY3Rob0kvYnpzNGx6R2FTWXBEd3FxUXFhRHpBZk9EWWlvL3pSV3Vta2luNjZSRC9VeXgzU1lTV0IvQUxYNU9ZMHczL1JpQkpyNE04clJUaFJKMXR1dkxqanFrSWxRZVNnTWVoVGVaTkg1UFJCbzVrYmVnT2VOR0lKbDlXa1R5QlRRVHlrSnd5KysvbFJDY3l4czY4NENWQWNTZmZzSFhqQXhCRDdRYUZsRndWc05HSmxzNHpiR3l3VlVLV3gwVTQ4eTN1WUtoVHl1RjJEeDdMNU1ZVlRiekFINVVra09oYVNMdWdoOTIwREdOazlGRFFHUDBMR0dmU0dqZHF3Z1A3OFFZaFBFSjFTNkgyeHNSSTBTbnhwZFVubTB2Zmh2eHNKb051VFhjNUxmc0xkTWpiV21vSktwZ0FhMitvdVpYVmxiVVZValJaQjNmU1VVM1VCNGVGTlNCWm94TjI5TXpJVVNEVVRoOHlGekFrOFVSUzM0cG0vd0ZzSXpyYSthTVR5aHNLNmxyMm5WRlR6M1dnV2lYdEhkdFpYaFNuM0xYV0JySy9ZeXlBSzBpRnFKeCtDNExraWlMWjcyUzBqVWpIdjdHR2ErVmNLaWtQZGkxeVkvZkdwUGk3bXA2Ly9oRVYvQWRQd1g4Y3FzN2JiTGRoZkpzdWt3ZmMwL3o3VDJ3VmRpVHZlT1hQWjdzRld3amVaQnEyUDY0VUNDRG5Mbytla2FGMUVsZ1gvdWNtY0x5eVRheGN6WlNsSFFlUFo4SzNwQ1FvSU1Nek5ZZERWSHU0M09QUXlrRzRaSFJ6SzNLckQyOExBbTNaYWxaNlZXOFVicGJYSTFUZEhidndtR25DdVJsWndQQm52NmF6Ujk0TkI1b3pCNnpuaHhpVUpWdFVjYVNKVUQzUDhnRFFtY2FhbUNmUFpUQTUraW5uYkVCcy9PN1NZamZKdTVXMXNLNG9hcDNZSGpzdm1tcnRNWm5FWE1RYi85VVIveEJhOWlNOTgyRXZsYlQyK21MYkVxNElvZmpKbExON21JWi9TQUZIUHdMZjh5d1JZOHQrZmttQlpIT3cvbEV0cXFYMUQyUFlNc2cycDJHVEd4T0NVbFNBVE90UXVkVjk2T1FiTS9pVU5YVmhuK0JsZjVUYVpMLzZRN2ZUaGJ1b3BwKzFQeENmLzFGUTEwaDAvOEt2aU5SNHl1a3Y5ZGdFcDBzNFlyVlY2UmNYT3pxOVovS2FxR2lvL3hhZ081Nmw2MlNxSGRWOGFuUWZCbFM0NVpPc2M4VTRhczh5Q0JmQmppcG0xZy8wVlVMU3BmaHIxenpEdFYvSDd4WjgxL1pxK2liUmpVZHRVaCtCRUpCMlVVbWV5Y3R6cjVyWjZkdzJ3UFFXNmhsSXhxR0NPbTR3NTJmR0ExemlLZFAxeFZmQkx2b2FTaXNpNDFIcU5VdGU3U05ZWFVjRnRCTW9qbTY4ZHYvb1BzL2pMQXY1VEI2WXlQQ3h3WmVyRTY0V0xDcGYwRUR4ejA4blUxV3pZWWNwMXNVa1ZvMlMzS2x1Mlk2NSswZWV2aGM4aWwrcGFMK1JybkFvWnpEallxbFgvemZsSG8wL1hUY0FRNll1dzRMR2hEZUhma3J6alZnUjI1WFpncmlqZ2I2OVY1STROZkxvMit3RjgxOXlvTTJMTjk2VURLaG5EZitDTll1dWhGbjhmUThwQU9nOENoWWxDOVpEbXd0VjA5T2lZWDJVVU1hSFFBOGVOZ1dRVlpYUXRpbExodERMWSsra2k3alhDaVBnVFNwbnVVWjdUSVRMMWxHRlJBZ3ozN2ZZRUR4dzdnTE9yeU10NlU2aHVPd0lwMml1dnZYYmt1NXl1VTVuUmJDR2hNTlBZMkhrVkp5SW5pcFcvUlVIMENXaEYxcmdNU0NFVCs0MnlRMnEyQTdxdFJIVDBjVDFzeXpTaU1KZDlQMTlSSUtjaWZWcFdpb1ZqLzBuWlpwVWZNdktDWmpDdTVndHB2dk1FSnZSRVlDeHIvMXppSzJ2R3hBaUliNXJES3U0NWV6TGxPcmRkWXdOV2FpNFpJaVBPeHZhcjFGN2tpVm1uelp3WVN6dVorUTdoaFRaQnArMU9rc3hzanI1YS9UQXZ3RGxiRDU0VXl6Zklyc2JtN0VWbTFDczBZNmZuc0ZVcHFBeTcvVEtxcnIvc2h1bUNvWVloejBDQVE3RlF1YlJ4N0lzTS95VEEwUElGaHAyWFhMa25qV3RHbVRyQVNIQ1VsTTBkTUJlR0s5V3pDRzE1WUFESlpPOTlKdEVMWU9wMTJTSzdlMGIyQVkvTHNoWkZMU2VyblRGMU4zRFdZS0ozeXc5NHZMek11d0ZCcUlKY2VQeXpqdEdBVjdHMHpPaUt1RGF2QTk4MFRmOTc4cC9PRndwNVFHcFhVSHRVMUJvbUNPcWdPcDNSTW9RT2lLT2tnYmhnMHZFMVphQ2RMVmVRMG05YVFMOWwwQmNpTk4vRlV6RXRRUXFELzRBK2RKT05BZUlXUFFJeEZOSmZXZE1iQkppTlZsS0FLNGVZOExBcXRpSmEzWklDL2kwSDVUaHZ3VnJ0UzJUZmM1ZXJQOWR4eEg4d3p3b2tBST0=", - "pin": "111111" - }, - { - "alias": "carol", - "pubkey": "0364c05cbcbb9612036cc66297445a88bcfc21941fd816e17a56b54b0b52ff02b9", - "ip": "http://carol.sphinx:3003", - "external_ip": "http://localhost:3003", - "authToken": "zdcZoHGIMddIA5xO6I/Z", - "contact_key": "MIIBCgKCAQEAtAvyMIBFrRc9p14gvgn9znFkI0XeEnvUU7NtW0yOuvvWVpWsjI0bOaPRWL9N4GsNnHr2LJwqxBsdk5TaPd1fDkZiJWXQEYfPe3nQwRgIS10EzbKgF/XP1RSAuyvvP7lotalpDEyMPz9oCLtrtBBKoy4YbQhgtVZkNWo8z26jSlvQZR0QIa63tc+p0NzRq5NV0nKieqJidValahAuk3zb13gEnuoWh97QP71itez0EmQB9RugLTakMklHdbJAj5vrjFa0XJpZPqL+a9sXFC27UGMgJ79X8Gyoc8F1Htg52ma+FuETCKFc3YCVZiPo7uFhbcIosmTqeehpIWgoc1t9UQIDAQAB", - "privkey": "MIIEpAIBAAKCAQEAtAvyMIBFrRc9p14gvgn9znFkI0XeEnvUU7NtW0yOuvvWVpWsjI0bOaPRWL9N4GsNnHr2LJwqxBsdk5TaPd1fDkZiJWXQEYfPe3nQwRgIS10EzbKgF/XP1RSAuyvvP7lotalpDEyMPz9oCLtrtBBKoy4YbQhgtVZkNWo8z26jSlvQZR0QIa63tc+p0NzRq5NV0nKieqJidValahAuk3zb13gEnuoWh97QP71itez0EmQB9RugLTakMklHdbJAj5vrjFa0XJpZPqL+a9sXFC27UGMgJ79X8Gyoc8F1Htg52ma+FuETCKFc3YCVZiPo7uFhbcIosmTqeehpIWgoc1t9UQIDAQABAoIBAEQaBKitzC0Vjl+BLhdTxinRIBRrd/0702s5ghK3mYFGgqNLh/G96d9ahHPyIG3TcFmQ9Q6Yn2B/9Sb+dbJSyoKmwrbslNAcs7E7uWdgRLrk201G1GFbvBoX4D1r99n9soqMIszhI2dE/3/WDH4Wb3TbmaecNKBCpjLCFXBMo/0arKPbsvU/+aFlhLfbp2b2U/cu4oPT7KQXSjkvz61+vHGF1TPo1HvK4Ktpr/jB4Br2WQZpXma9rOw8lBnBQMLZvuXPLzPq+y0K5yRBQyBQ5foNIpXVieD2crdSyEAgshSJn+EiFoPzUj5hQihi14UlTlEoIUrieOnOk1+eYuqNqnUCgYEA5fFxlWBRiu4Nx7DIvjQ/9Q2e2j/Dorq0SyQ9aiT2GdsSNMxAYOfw2UgAIvdwNVapaMN3+QImlCOVFbsZkyHtEh4AuxC7rmrTIeOqX5K9RxPDLye3GLJGVSzRKJ+ddt+LrfbjOplIJzqASXYeP2oXXEr3IGH2hZd35XDovoqR6K8CgYEAyHMGq5UqFnL660Vy1du1X4jei9GsUQrYkSV3y/eoEEC4JzF/NYp0pZONQTS5ewJsiRiqBDb9ZQphx6+oAgmuC+I/Pl0FdIRALYFxRz5P/iVwa2iFakqhwkP1lJTdkTNZLImY8+T8ooThyN5x/r0S73RU7Sn3COsUCwuodWoWef8CgYBQYOcAfWvjsbVVcaGqg188DSfTSOjdMICnp6JkQUlZ3m9tz1xNw6Y4fee2UWKC8qlDetisTakorYuGziFxgjF53M0Klx3UKXlmZkv/Hq9Vcj4PdMWXN3JIgeMXXTxQ+nG8PQpPSJelRtjjVQvbxP0ngPkD89qV9k2uAZsKSCwa9wKBgQC/pMnhzlFY+UFRIyrxsIet+SvcvfBj41y/GPV6OyOhtl7aigY3aFKx42qPxxr2spCWWtBiCzklG1H1GsokeKDAl+UjeMg4aCD74OAu3zKXp6/d4SZ9QzF4jIUFM3bK1i8R19Q2it3HfAhqhdKzXI34Bl8UCKU5D5gwH0tGRtGKfQKBgQDgA//TrE/2rMHfl6VQzImeVkPvxd6wS18m2AyZQJ1XqJJ+R0JrINqiftmRusiFxRSBZ0jL3I5siNx3C8c3XFpWfYhA0jtHF0dRdlOvWxI0sWd4ZfD1MQKd2306c2SRXH9VYshyVt6mhKiYWb4syNIs6zvI/6HURKX2EsLPkkyhXg==", - "exported_keys": "a2V5czo6QXdFd1RObHQ3NXBaVDVhaEFvMU5oVnJVM1IrUW4xTnZTdUdnVEM1c1lHb0NUUlZnYndmdlVoSU9Dbkl6YkRFRzU2bnZXNElaSFB1UTJIVFZCNlNVVldBNFMySDg3NkRtdjFiSzBjbkJKbUdIbnZNaWVlVkVWZkVLQldkR2RLeHltOWErRDNkdjFSWnhmQWlhVE5hOWZ2VlpYTmhDTXFTSDlmRm4xSEdKMEpBVWk1eHhFYllUdnBCb1B5MGVJakhMbU1TcnIyV2NRMzNQcklGV2dZL2NZS3ZWUVRuMEszNlBlbzF4MjhydGl0Zmp5MzJjM1d5YU5MNS9QSUQ5bi9JLy8xV084bjZPVVliRWhkaW1nZmYyS3lQaG5QajZvOFc3a1BqNU9LSlpZbFR0STFKQllQK3ZCOEcxbGJlbGkrV0tWVmVvMnptL0graEZRN3MyZDAvWlBDU21YeXFvcWlLVGR2Z1FYOUJRaE5DUWxEQkF2WnBOWWc0VTlDcjhiV3NrT0pCcWJ6NExXWUtoRHRpeHVxSGpmUTh0bXd4aFBhdXp5V2diV2NNSUJiTEtkbHQrSm9qb0RIWFhXT3FidFptUC9FMFlQUCtlT1I4eG9KZlphN3BIT0U1WTlFYUY0STJmeGtRS01QdURsMWMzTWswQlRCbVdjZDg1c3hkbDVhRThyeHUxL3c5T00wSCtNakYyNVRCOGFzUC9oQW0zSkFKRFBNSk9wdVpKcVZuUDQxeUNQbGVEWjdoaVFXN05icGZoS041YklZVW9aQXIxTjZVZytQbW1PTkJOLzJaUTcwYTdUN2Y1MlJXTWdOcDQ4d0l3dlRtREtsdnJZSUJ3d1l1UnMxWm1CMHdFQWk5YlBHWnNzUUFRNW0reVliZjNqWm8xNlBVcDhNVmVMQ0ErTzNZNlFWVzFTaWM0MHNLcXJIZlpReWFKcWd3V2pWTDVOMUhScDJVdUE5bndRVmlJemtTdWxreEEzTTNBUjJ4NDNXelB0bWRENzh0STNPbHlXcmZmSmdRc29ocmRPZXJ4cDhhcTVvbG9vMUhxeGhHTWFTSEY3ZWYycGd6NGJjRXRzVHVSRFBhZ2Q5S05FdTY4dVQ0V1RIbkNXZC8zcit2VDQzb1lBYWxMaHBuNmRxNGE4aWVGZS9xVm5KSU0zQVozQURCdy9wWUhodFBjVTQ0b0ZLTmVHL2thSTFNU25CRlV6TE9WOFZOTkJnYzB4ZlJSbjVxcVZUb01LTDZyRm1yNGxPakNWYVp2V0cxQmw1YjlKVGtkZDN3NmpnK3VlSzJwdldiMWprRTR5THRmYktBWWdjSkpuUG5SeVBCanJkRW1iTVFXRDJaT2tLSmVaQ3FqYVQ2Y3ZGcnNwTGVERHhzaHI4NjdlcnQ2cVlUd2pxaDkycEYrRzEySVJ0bkxrc01kSGpZYTcreEVHNnlsWTNGSDVrUmpmWW01bXpsUUM3bXJZUDh1ZlpMbW93d2lUamVCd0ZzUlhUSS9mMXgvZzJCNHUrQTc5VzlIeitVV05VTWdVZU52cVlraE44OHdnY1FMSkxzRHdRNGNUSURjQ3dlYkw0bDBrZ1FkNDZnakpTR3BPb2k5QlJobFY4WlVqaVRkRjFObGpuMFR6d1crVFRoakJ2dmljTk10VlF0Uk93RnpEREtPd09KTC9vclMyTm10RkVxR1JyNnR1Z2RSZ2xQVGdvYnFuZldIbnlJaE1uZUhjT2NLemVDdUlhZ1o2NlVLVFhhb1BMUWpFN1pMWk5yWllTRDMxeEQ4UTJZdzdTVk85S3lvRW52Y0NuTFZoSHYzUGRzYnB5VGJRN3N1ai9WZzA2ZTJLWkRjUHFvRjRxTU1KT05RQkN5b21OOStkZ2VXZTFHUmpqZGM2eGhlSFJ3Nm95NndIYlpkOVp5RDlBeERENG1tV1JFY2poeE9ZdWhhbjl0YjcrdkpuUzJRbTUxSjdNSUVwSFpxSkZCeWVMcWVlb0pmOHI1elRTUWkxUVBIZklQV2tNRnRFclZOU29nZjhOUDZDRjZJQzU5d29uYjlkL2xzMmpSU01Vd0dXNnhzdGR3RHNBQlBWTE1ZVTIvc2RDS0htWkVlYlRQTTVxV2lNNEcxdTZsaFQxbDdvS3J6YkYvenc1MXMvZlAwZDlSclkwVUpHQ3B0L0xJYitPcmlXR0dxZ3hwY0l1dzV0NGJUUklNbmlxRkVxWWZ0MGJ5MEtZNjllSERSS1ExQWVBY2hhN25zOTk5MmIzZkVNaUhlUTNveHdqNVhPeHR5MysxWU4wQVlycWFmZnUzTXZsTVVpK1VwdkU5UU1oMmJsNi80dVVYN2VqQ2lJa1lhTktTZzl2Q0k3Uzh4RXJKYVBJTmdPcFNFdFF1eEErOHBQUmxsTWJxQnVVcDlodUFUSGNaeFpsaXVQRk1BcytESFNRR0FoVDN6ZGFZMElIQnNUZmpMb2tic0VLN3orWlU5cUREOHprMDJTOGJmNjRZOGllSHV1N0lISGJTS1NuaG52RTJsY0hYcUFCSFIxdk1VeTJKd0lYYUhUUXJkMmJLdVpQVjN4dDBCTWQ3ajlrMEdHdlhnOUlWS29BMFVweDQ1ZmgxZXk2eGQ2QTVnUlM3Vk90TzhCODgyZTExQ2ZDaUdLamNtVVJva1c3NTY4WnpjWVVqVG5WY1d3TU5MZUJXZVhUd1RTaFRxSThRandqYzNzRzM2SHdTaytER3gydXhhamdsNnZpVkJrYjdsMno2NjlDdFd5dTdOUUcxL1BXcU9lSVIzZ1hES0JyVUpBUDVKbzBSNzZHVXk1eXBoa0NIZ3hVUzdBOHJUUDV0KzRxOTVVaGpuUUp6c2VsSG9zbHN5WGJlZEtWZnBlUUQyTzV2ZWpDSmluU3VhQzYwekdTbjF4WEdjL0dGZVkrTXhNaDVZZExMSHN6UFNFWGs0NUROSGJvaEJhMEs3MU83NWp5U3p0RlFUNWQ0RWZLUW44Z3NDTFY2S1p0Wk90NlVZWXVmdmloSlpBV0hHQXpVVTBDYkFnVUJlSGNySXBnaUd6bitZVHlWYm9HVitDTGpEOFJmOWhkeVNsYjVhNzd2SG9FTkNCbm96dUt1VTBXaWY3US9sWC9iT0pabVRZRXYxd2hoaSs2amZwL3o2Y0UveitmdllEZ2xkRUFqNVdRbCtEbW5hTGZmK0hYdkphOWNWaGVJUzZkQ3VZejRuU3JIY0hZOUJ4bEhRcFhHVkFuTnBiVGw5QjB4VFhrT2tuZkMxeU5WYytYV1h6YzA0dkRzdWZpNC9oRytpTXRMM1BLdzd2aFFBRStBYWw0NWI5NG9PZ29EU3k2MmhmNDVjVU8yRVBFdEEvM256eFJ0WjNOcGQ5bzlzd29oT3ZnemV3akt5MjBJVlV5VTAzNHpVYUhJZ3JHc2JqbS92Mld4b3JWRzlkS3pyL1lSK1FKSTNuN3Vjc3lOYjFGd3MyYmtWM0N1ZXk1YldTV1pxSkIxcmxGek50K0k0eWoxVVhrSk8xSDBmRzRVeFoyN2Y3ekZsMzlSakNLU3ZOY2RMSXpJNjBlYkxHbUdaU3BpajhBSDBRdzdUazBIK3RZOHR3cTl2ZE1iOUJpREJsVTR1K3BzL2dsM0trSHhrZmhQTU1ZS3d2QnBaYjJuTWpad1dLTjFnelZSYlBKVFBJY1VEWkI5QXVpcz0=", - "pin": "111111" - } -] diff --git a/src/tests/controllers/ampPayment.test.ts b/src/tests/controllers/ampPayment.test.ts new file mode 100644 index 000000000..1401c22cc --- /dev/null +++ b/src/tests/controllers/ampPayment.test.ts @@ -0,0 +1,115 @@ +import test, { ExecutionContext } from 'ava' +import { sendPayment } from '../utils/msg' +import nodes from '../nodes' +import { addContact } from '../utils/save' +import { NodeConfig } from '../types' + +/* + npx ava src/tests/controllers/ampPayment.test.ts --verbose --serial --timeout=2m +*/ + +interface Context {} + +test.serial( + 'ampMessage: send more sats than one channel can handle to test AMP', + async (t: ExecutionContext) => { + t.true(Array.isArray(nodes)) + await ampMessage(t, nodes) + } +) + +async function ampMessage(t: ExecutionContext, nodes: NodeConfig[]) { + // node accept-keysend accept-amp + // alice true true + // bob false true + // carol true false + + // the 3 nodes have 3 2M channels in total with 1M sats local_balance + // + // A + // 1M / \ 1M + // / \ + // / \ + // 1M / \ 1M + // B---------C + // 1M 1M + // + + // Test that alice can send a payment of 1.5M sats to bob + // With only keysend this would not work because she has 2x 1M local_balance + // The payment should be split in 2 shards of 750k sats each + // --- shard of 750k sats ---> C --- forward ---> + // A B + // --------- second shard of 750k sats ---------> + + { + const node1 = nodes[0] + const node2 = nodes[1] + + console.log(`amp payment from ${node1.alias} to ${node2.alias}`) + + console.log('adding contact') + const added = await addContact(t, node1, node2) + t.true(added, 'n1 should add n2 as contact') + console.log('contact added') + + console.log(`sending payment ${node1.alias} -> ${node2.alias}`) + //NODE1 SENDS PAYMENT TO NODE2 + const amount = 1500000 + const paymentText = 'AMP test 1' + const payment = await sendPayment(t, node1, node2, amount, paymentText) + console.log(payment) + t.true(payment, 'payment should be sent') + console.log(`payment sent ${node1.alias} -> ${node2.alias}`) + } + + // Nodes will try to send AMP, but carol doesn't `accept-amp` + // Test a payment of 100k sats from bob to carol + + { + const node1 = nodes[1] + const node2 = nodes[2] + + console.log(`amp payment from ${node1.alias} to ${node2.alias}`) + + console.log('adding contact') + const added = await addContact(t, node1, node2) + t.true(added, 'n1 should add n2 as contact') + console.log('contact added') + + console.log(`sending payment ${node1.alias} -> ${node2.alias}`) + //NODE1 SENDS PAYMENT TO NODE2 + const amount = 100000 + const paymentText = 'AMP test 2' + const payment = await sendPayment(t, node1, node2, amount, paymentText) + console.log(payment) + t.true(payment, 'payment should be sent') + console.log(`payment sent ${node1.alias} -> ${node2.alias}`) + } + + // Carol doesn't `accept-amp`, but that doesn't mean he can't send it + // Test a payment of 1.8M sats from carol to alice + + { + const node1 = nodes[2] + const node2 = nodes[0] + + console.log(`amp payment from ${node1.alias} to ${node2.alias}`) + + console.log('adding contact') + const added = await addContact(t, node1, node2) + t.true(added, 'n1 should add n2 as contact') + console.log('contact added') + + console.log(`sending payment ${node1.alias} -> ${node2.alias}`) + //NODE1 SENDS PAYMENT TO NODE2 + const amount = 1800000 + const paymentText = 'AMP test 3' + const payment = await sendPayment(t, node1, node2, amount, paymentText) + console.log(payment) + t.true(payment, 'payment should be sent') + console.log(`payment sent ${node1.alias} -> ${node2.alias}`) + } +} + +module.exports = ampMessage diff --git a/src/tests/controllers/messageLength.test.ts b/src/tests/controllers/messageLength.test.ts index aa9b41dcc..5b60a06df 100644 --- a/src/tests/controllers/messageLength.test.ts +++ b/src/tests/controllers/messageLength.test.ts @@ -120,7 +120,7 @@ export async function longMessage(t, node1, node2) { const longText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Risus feugiat in ante metus dictum at tempor. Ut enim blandit volutpat maecenas volutpat. Velit dignissim sodales ut eu. Eget nunc scelerisque viverra mauris in aliquam sem. Dictum varius duis at consectetur lorem. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Id velit ut tortor pretium viverra suspendisse potenti. Placerat vestibulum lectus mauris ultrices eros in cursus turpis. Integer vitae justo eget magna. Duis tristique sollicitudin nibh sit amet commodo nulla facilisi nullam. Vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Vitae sapien pellentesque habitant morbi tristique. Varius vel pharetra vel turpis nunc eget lorem dolor. Pellentesque massa placerat duis ultricies lacus sed turpis. Augue neque gravida in fermentum et sollicitudin. Adipiscing elit pellentesque habitant morbi tristique." console.log("sending long message to", node2.alias) await sendMessage(t, node1, node2, longText) - await sleep(1000) + await sleep(2000) //Checking for the new long message const onlyMessage = await getCheckAllMessages(t, node2, limit, offset, 'desc') diff --git a/src/tests/utils/get/getCheckMsgs.ts b/src/tests/utils/get/getCheckMsgs.ts index df223d047..167605fd9 100644 --- a/src/tests/utils/get/getCheckMsgs.ts +++ b/src/tests/utils/get/getCheckMsgs.ts @@ -6,7 +6,7 @@ import { Assertions } from 'ava' export function getCheckMsgs( _t: Assertions, node: NodeConfig, - date: any, + date: Date, limit: number, offset: number, order: string = 'asc' @@ -21,7 +21,7 @@ export function getCheckMsgs( async function timeout( i: number, node: NodeConfig, - date: any, + date: Date, limit: number, offset: number, order: string, @@ -29,7 +29,7 @@ async function timeout( reject ) { const msgRes = await http.get( - `${node.external_ip}/msgs?date=${date}&limit=${limit}&offset=${offset}&order=${order}`, + `${node.external_ip}/msgs?date=${date.toISOString().replace(/T/, ' ').replace(/\..+/, '')}&limit=${limit}&offset=${offset}&order=${order}`, makeArgs(node) ) if (msgRes.response.new_messages && msgRes.response.new_messages.length) {