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 = {