diff --git a/index.html b/index.html
index 1f6c739..f6260e8 100644
--- a/index.html
+++ b/index.html
@@ -359,7 +359,7 @@
},
async shareContact(contact) {
- await this.connection.sendCommandShareContact(contact.publicKey);
+ await this.connection.shareContact(contact.publicKey);
},
async exportContact(contact) {
try {
diff --git a/src/connection/connection.js b/src/connection/connection.js
index 0342037..46aaabf 100644
--- a/src/connection/connection.js
+++ b/src/connection/connection.js
@@ -788,6 +788,37 @@ class Connection extends EventEmitter {
});
}
+ shareContact(pubKey) {
+ return new Promise(async (resolve, reject) => {
+ try {
+
+ // resolve promise when we receive ok
+ const onOk = (response) => {
+ this.off(Constants.ResponseCodes.Ok, onOk);
+ this.off(Constants.ResponseCodes.Err, onErr);
+ resolve(response);
+ }
+
+ // reject promise when we receive err
+ const onErr = () => {
+ this.off(Constants.ResponseCodes.Ok, onOk);
+ this.off(Constants.ResponseCodes.Err, onErr);
+ reject();
+ }
+
+ // listen for events
+ this.once(Constants.ResponseCodes.Ok, onOk);
+ this.once(Constants.ResponseCodes.Err, onErr);
+
+ // share contact
+ await this.sendCommandShareContact(pubKey);
+
+ } catch(e) {
+ reject(e);
+ }
+ });
+ }
+
removeContact(pubKey) {
return new Promise(async (resolve, reject) => {
try {