From 381a1b9d177a756dfd6704dbbce8c044daca02eb Mon Sep 17 00:00:00 2001 From: liamcottle Date: Sat, 15 Feb 2025 21:39:29 +1300 Subject: [PATCH] implement import contact command --- index.html | 9 +++++++++ src/connection/connection.js | 7 +++++++ src/constants.js | 1 + 3 files changed, 17 insertions(+) diff --git a/index.html b/index.html index fb6e40b..a117bc2 100644 --- a/index.html +++ b/index.html @@ -92,6 +92,9 @@ + @@ -348,6 +351,9 @@ async exportContact(contact) { await this.connection.sendCommandExportContact(contact?.publicKey); }, + async importContact() { + await this.connection.sendCommandImportContact(this.hexToBytes("120070b78b64782bffb918da2d6432204a149bd232dd66373415b5f7ba24733ba2efe843b0674dc86210127e259f417a24150af38953dd2eb597a6a75a5c0a86adea7e81dbfc7023e4cc12bfe1b628aeaf76303f456545e555ae6554344b8391c2f07e9b010381506f636b6574204e6f64652031")); + }, async setPath(contact) { const newOutPath = [ @@ -371,6 +377,9 @@ bytesToHex(uint8Array) { return Array.from(uint8Array).map(byte => byte.toString(16).padStart(2, '0')).join(''); }, + hexToBytes(hex) { + return Uint8Array.from(hex.match(/.{1,2}/g).map((byte) => parseInt(byte, 16))); + }, }, }).mount('#app'); diff --git a/src/connection/connection.js b/src/connection/connection.js index 3e8eb39..a11fccc 100644 --- a/src/connection/connection.js +++ b/src/connection/connection.js @@ -165,6 +165,13 @@ class Connection extends EventEmitter { await this.sendToRadioFrame(data.toBytes()); } + async sendCommandImportContact(advertPacketBytes) { + const data = new BufferWriter(); + data.writeByte(Constants.CommandCodes.ImportContact); + data.writeBytes(advertPacketBytes); // raw advert packet bytes + await this.sendToRadioFrame(data.toBytes()); + } + onFrameReceived(frame) { // emit received frame diff --git a/src/constants.js b/src/constants.js index 482dc0b..783c657 100644 --- a/src/constants.js +++ b/src/constants.js @@ -29,6 +29,7 @@ class Constants { RemoveContact: 15, ShareContact: 16, ExportContact: 17, + ImportContact: 18, } static ResponseCodes = {