New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@toruslabs/torus.js

Package Overview
Dependencies
Maintainers
2
Versions
138
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@toruslabs/torus.js - npm Package Compare versions

Comparing version 2.2.10 to 2.2.11

66

dist/torusUtils-node.js

@@ -996,3 +996,3 @@ module.exports =

finalKeyResult,
_yield$keyLookup,
_ref4,
keyResult,

@@ -1019,27 +1019,47 @@ errorResult,

case 4:
_yield$keyLookup = _context5.sent;
keyResult = _yield$keyLookup.keyResult;
errorResult = _yield$keyLookup.errorResult;
_context5.t0 = _context5.sent;
if (_context5.t0) {
_context5.next = 7;
break;
}
_context5.t0 = {};
case 7:
_ref4 = _context5.t0;
keyResult = _ref4.keyResult;
errorResult = _ref4.errorResult;
if (!(errorResult && JSON.stringify(errorResult).includes('Verifier + VerifierID has not yet been assigned'))) {
_context5.next = 16;
_context5.next = 22;
break;
}
_context5.next = 10;
_context5.next = 13;
return utils_keyAssign(endpoints, torusNodePubs, undefined, undefined, verifier, verifierId);
case 10:
_context5.next = 12;
case 13:
_context5.next = 15;
return waitKeyLookup(endpoints, verifier, verifierId, 1000);
case 12:
assignResult = _context5.sent;
case 15:
_context5.t1 = _context5.sent;
if (_context5.t1) {
_context5.next = 18;
break;
}
_context5.t1 = {};
case 18:
assignResult = _context5.t1;
finalKeyResult = assignResult.keyResult;
_context5.next = 21;
_context5.next = 27;
break;
case 16:
case 22:
if (!keyResult) {
_context5.next = 20;
_context5.next = 26;
break;

@@ -1049,11 +1069,11 @@ }

finalKeyResult = keyResult;
_context5.next = 21;
_context5.next = 27;
break;
case 20:
case 26:
throw new Error('node results do not match at first lookup', keyResult, errorResult);
case 21:
case 27:
if (!finalKeyResult) {
_context5.next = 33;
_context5.next = 39;
break;

@@ -1063,3 +1083,3 @@ }

_finalKeyResult$keys$ = finalKeyResult.keys[0], X = _finalKeyResult$keys$.pub_key_X, Y = _finalKeyResult$keys$.pub_key_Y;
_context5.next = 25;
_context5.next = 31;
return this.getMetadata({

@@ -1070,3 +1090,3 @@ pub_key_X: X,

case 25:
case 31:
nonce = _context5.sent;

@@ -1082,3 +1102,3 @@ modifiedPubKey = this.ec.keyFromPublic({

if (isExtended) {
_context5.next = 32;
_context5.next = 38;
break;

@@ -1089,3 +1109,3 @@ }

case 32:
case 38:
return _context5.abrupt("return", {

@@ -1097,6 +1117,6 @@ address: address,

case 33:
case 39:
throw new Error('node results do not match at final lookup', keyResult, errorResult);
case 34:
case 40:
case "end":

@@ -1103,0 +1123,0 @@ return _context5.stop();

@@ -1,1 +0,1 @@

module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=15)}([function(e,t){e.exports=require("bn.js")},function(e,t){e.exports=require("@babel/runtime/regenerator")},function(e,t){e.exports=require("@toruslabs/http-helpers")},function(e,t){e.exports=require("web3-utils")},function(e,t){e.exports=require("@babel/runtime/helpers/asyncToGenerator")},function(e,t){e.exports=require("json-stable-stringify")},function(e,t){e.exports=require("@toruslabs/eccrypto")},function(e,t){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,t){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,t){e.exports=require("@babel/runtime/helpers/typeof")},function(e,t){e.exports=require("@babel/runtime/helpers/classCallCheck")},function(e,t){e.exports=require("@babel/runtime/helpers/createClass")},function(e,t){e.exports=require("elliptic")},function(e,t){e.exports=require("memory-cache")},function(e,t){e.exports=require("loglevel")},function(e,t,r){"use strict";r.r(t);var n=r(1),a=r.n(n),o=r(7),u=r.n(o),i=r(9),c=r.n(i),s=r(4),l=r.n(s),f=r(10),p=r.n(f),h=r(11),b=r.n(h),d=r(6),g=r(2),m=r(0),v=r.n(m),y=r(12),k=r(5),x=r.n(k),O=r(13),w=r.n(O),P=r(3),j=r(14),S=r.n(j).a.getLogger("torus.js"),_=function(e,t){return new Promise((function(r,n){var a,o=0,u={resolved:!1},i=new Array(e.length).fill(void 0),c=new Array(e.length).fill(void 0);e.forEach((function(s,l){s.then((function(e){c[l]=e})).catch((function(e){i[l]=e})).finally((function(){u.resolved||t(c.slice(0),u).then((function(e){u.resolved=!0,r(e)})).catch((function(e){a=e})).finally((function(t){(o+=1)===e.length&&n(new Error("Unable to resolve enough promises, errors: ".concat(JSON.stringify(i),", responses: ").concat(JSON.stringify(c),", predicate: ").concat(a.message||a)))}))}))}))}))},q=r(8),A=r.n(q);function K(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function C(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?K(Object(r),!0).forEach((function(t){u()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):K(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var M=function e(t,r){var n=t;if("number"==typeof n&&(n=Array.from({length:n},(function(e,t){return t}))),r>n.length||r<=0)return[];if(r===n.length)return[n];if(1===r)return n.reduce((function(e,t){return[].concat(A()(e),[[t]])}),[]);for(var a=[],o=[],u=0;u<=n.length-r+1;u+=1){o=e(n.slice(u+1),r-1);for(var i=0;i<o.length;i+=1)a.push([n[u]].concat(A()(o[i])))}return a},E=function(e,t){for(var r={},n=0;n<e.length;n+=1){var a=x()(e[n]);if(r[a]=r[a]?r[a]+1:1,r[a]===t)return e[n]}},I=function(e,t,r){var n=e.map((function(e){return Object(g.post)(e,Object(g.generateJsonRPCObject)("VerifierLookupRequest",{verifier:t,verifier_id:r.toString()})).catch((function(e){return S.error("lookup request failed",e)}))}));return _(n,(function(t){var r=t.filter((function(e){return e})),n=E(r.map((function(e){return e&&e.error})),1+~~(e.length/2)),a=E(r.map((function(e){return e&&e.result})),1+~~(e.length/2));return a||n?Promise.resolve({keyResult:a,errorResult:n}):Promise.reject(new Error("invalid results ".concat(JSON.stringify(t))))})).catch((function(e){return S.error("Some for keylookup failed",e)}))},R=function(e,t,r,n){return new Promise((function(a,o){setTimeout((function(){I(e,t,r).then(a).catch(o)}),n)}))},X=function e(t,r,n,a,o,u){var i,c;if(void 0===n?(i=Math.floor(Math.random()*t.length),c=i):i=n%t.length,i===a)throw new Error("Looped through all");void 0!==a&&(c=a);var s=Object(g.generateJsonRPCObject)("KeyAssign",{verifier:o,verifier_id:u.toString()});return Object(g.post)("https://signer.tor.us/api/sign",s,{headers:{pubKeyX:r[i].X,pubKeyY:r[i].Y}},{useAPIKey:!0}).then((function(n){return Object(g.post)(t[i],C(C({},s),n),{headers:{"Content-Type":"application/json; charset=utf-8"}}).catch((function(n){return e(t,r,i+1,c,o,u)}))}))};function Y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(r),!0).forEach((function(t){u()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var D=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.enableLogging,n=void 0!==r&&r,a=t.metadataHost,o=void 0===a?"https://metadata.tor.us":a,u=t.allowHost,i=void 0===u?"https://signer.tor.us/api/allow":u;p()(this,e),this.ec=new y.ec("secp256k1"),this.metadataHost=o,this.allowHost=i,this.metadataCache=w.a,n||S.disableAll(),this.metadataLock={}}var t,r,n,o;return b()(e,[{key:"retrieveShares",value:(o=l()(a.a.mark((function e(t,r,n,o,u){var i,s,f,p,h,b,m,y,k,x=this,O=arguments;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=O.length>5&&void 0!==O[5]?O[5]:{},s=[],e.next=4,Object(g.get)(this.allowHost,{},{useAPIKey:!0});case 4:for(f=Object(d.generatePrivate)(),p=Object(d.getPublic)(f).toString("hex"),h=p.slice(2,66),b=p.slice(66),m=Object(P.keccak256)(u),y=0;y<t.length;y+=1)k=Object(g.post)(t[y],Object(g.generateJsonRPCObject)("CommitmentRequest",{messageprefix:"mug00",tokencommitment:m.slice(2),temppubx:h,temppuby:b,verifieridentifier:n})).catch((function(e){return S.error("commitment",e)})),s.push(k);return e.abrupt("return",_(s,(function(e){return e.filter((function(e){return!(!e||"object"!==c()(e)||e.error)})).length>=3*~~(t.length/4)+1?Promise.resolve(e):Promise.reject(new Error("invalid ".concat(JSON.stringify(e))))})).then((function(e){for(var c=[],s=[],p=0;p<e.length;p+=1)e[p]&&s.push(e[p].result);for(var h=0;h<t.length;h+=1){var b=Object(g.post)(t[h],Object(g.generateJsonRPCObject)("ShareRequest",{encrypted:"yes",item:[B(B({},o),{},{idtoken:u,nodesignatures:s,verifieridentifier:n},i)]})).catch((function(e){return S.error("share req",e)}));c.push(b)}return _(c,function(){var e=l()(a.a.mark((function e(n,o){var u,i,c,s,l,p,h,b,g,m,y,k,O,w;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u=n.filter((function(e){return e})),i=E(n.map((function(e){return e&&e.result&&e.result.keys[0].PublicKey})),1+~~(t.length/2)),!(u.length>=1+~~(t.length/2)&&i)){e.next=32;break}for(c=[],s=[],l=0;l<n.length;l+=1)n[l]&&n[l].result&&n[l].result.keys&&n[l].result.keys.length>0?(n[l].result.keys.sort((function(e,t){return new v.a(e.Index,16).cmp(new v.a(t.Index,16))})),n[l].result.keys[0].Metadata?(p={ephemPublicKey:Buffer.from(n[l].result.keys[0].Metadata.ephemPublicKey,"hex"),iv:Buffer.from(n[l].result.keys[0].Metadata.iv,"hex"),mac:Buffer.from(n[l].result.keys[0].Metadata.mac,"hex"),mode:Buffer.from(n[l].result.keys[0].Metadata.mode,"hex")},c.push(Object(d.decrypt)(f,B(B({},p),{},{ciphertext:Buffer.from(atob(n[l].result.keys[0].Share).padStart(64,"0"),"hex")})).catch((function(e){return S.debug("share decryption",e)})))):c.push(Promise.resolve(Buffer.from(n[l].result.keys[0].Share.padStart(64,"0"),"hex")))):c.push(Promise.resolve(void 0)),s.push(new v.a(r[l],16));return e.next=8,Promise.all(c);case 8:if(h=e.sent,!o.resolved){e.next=11;break}return e.abrupt("return",void 0);case 11:b=h.reduce((function(e,t,r){return t&&e.push({index:s[r],value:new v.a(t)}),e}),[]),g=M(b.length,1+~~(t.length/2)),y=function(e){var t=g[e],r=b.filter((function(e,r){return t.includes(r)})),n=r.map((function(e){return e.value})),a=r.map((function(e){return e.index})),o=x.lagrangeInterpolation(n,a),u=Object(d.getPublic)(Buffer.from(o.toString(16,64),"hex")).toString("hex"),c=u.slice(2,66),s=u.slice(66);if(0===new v.a(c,16).cmp(new v.a(i.X,16))&&0===new v.a(s,16).cmp(new v.a(i.Y,16)))return m=o,"break"},k=0;case 15:if(!(k<g.length)){e.next=22;break}if("break"!==y(k)){e.next=19;break}return e.abrupt("break",22);case 19:k+=1,e.next=15;break;case 22:if(void 0!==m){e.next=24;break}throw new Error("could not derive private key");case 24:return e.next=26,x.getMetadata({pub_key_X:i.X,pub_key_Y:i.Y});case 26:if(O=e.sent,!o.resolved){e.next=29;break}return e.abrupt("return",void 0);case 29:return m=m.add(O).umod(x.ec.curve.n),w=x.generateAddressFromPrivKey(m),e.abrupt("return",{ethAddress:w,privKey:m.toString("hex",64)});case 32:throw new Error("invalid");case 33:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}())})));case 11:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n,a){return o.apply(this,arguments)})},{key:"getMetadata",value:(n=l()(a.a.mark((function e(t,r){var n,o,u,i,c=this;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,o=x()(t),null===this.metadataLock[o]){e.next=7;break}return e.next=5,this.metadataLock[o];case 5:e.next=8;break;case 7:this.metadataLock[o]=new Promise((function(e){n=function(){c.metadataLock[o]=null,e()}}));case 8:if(null===(u=this.metadataCache.get(o))){e.next=12;break}return n&&n(),e.abrupt("return",u);case 12:return e.next=14,Object(g.post)("".concat(this.metadataHost,"/get"),t,r,{useAPIKey:!0});case 14:if((i=e.sent)&&i.message){e.next=19;break}return this.metadataCache.put(o,new v.a(0),6e4),n&&n(),e.abrupt("return",new v.a(0));case 19:return this.metadataCache.put(o,new v.a(i.message,16),6e4),e.abrupt("return",new v.a(i.message,16));case 23:return e.prev=23,e.t0=e.catch(0),S.error("get metadata error",e.t0),n&&n(),e.abrupt("return",new v.a(0));case 28:case"end":return e.stop()}}),e,this,[[0,23]])}))),function(e,t){return n.apply(this,arguments)})},{key:"generateMetadataParams",value:function(e,t){var r=this.ec.keyFromPrivate(t.toString("hex",64)),n={data:e,timestamp:new v.a(~~(Date.now()/1e3)).toString(16)},a=r.sign(Object(P.keccak256)(x()(n)).slice(2));return{pub_key_X:r.getPublic().getX().toString("hex"),pub_key_Y:r.getPublic().getY().toString("hex"),set_data:n,signature:Buffer.from(a.r.toString(16,64)+a.s.toString(16,64)+new v.a(a.v).toString(16,2),"hex").toString("base64")}}},{key:"setMetadata",value:(r=l()(a.a.mark((function e(t,r){var n;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Object(g.post)("".concat(this.metadataHost,"/set"),t,r,{useAPIKey:!0});case 3:return n=e.sent,e.abrupt("return",n.message);case 7:return e.prev=7,e.t0=e.catch(0),S.error("set metadata error",e.t0),e.abrupt("return","");case 11:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(e,t){return r.apply(this,arguments)})},{key:"lagrangeInterpolation",value:function(e,t){if(e.length!==t.length)return null;for(var r=new v.a(0),n=0;n<e.length;n+=1){for(var a=new v.a(1),o=new v.a(1),u=0;u<e.length;u+=1)if(n!==u){a=(a=a.mul(t[u].neg())).umod(this.ec.curve.n);var i=t[n].sub(t[u]);i=i.umod(this.ec.curve.n),o=o.mul(i).umod(this.ec.curve.n)}var c=a.mul(o.invm(this.ec.curve.n)).umod(this.ec.curve.n);c=c.mul(e[n]).umod(this.ec.curve.n),r=r.add(c)}return r.umod(this.ec.curve.n)}},{key:"generateAddressFromPrivKey",value:function(e){var t=this.ec.keyFromPrivate(e.toString("hex",64),"hex").getPublic().encode("hex").slice(2),r="0x".concat(Object(P.keccak256)(Buffer.from(t,"hex")).slice(26));return Object(P.toChecksumAddress)(r)}},{key:"generateAddressFromPubKey",value:function(e,t){var r=this.ec.keyFromPublic({x:e.toString("hex",64),y:t.toString("hex",64)}).getPublic().encode("hex").slice(2),n="0x".concat(Object(P.keccak256)(Buffer.from(r,"hex")).slice(26));return Object(P.toChecksumAddress)(n)}},{key:"getPublicAddress",value:(t=l()(a.a.mark((function e(t,r,n){var o,u,i,c,s,l,f,p,h,b,d,g,m,v,y=arguments;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.verifier,u=n.verifierId,i=y.length>3&&void 0!==y[3]&&y[3],e.next=4,I(t,o,u);case 4:if(s=e.sent,l=s.keyResult,!(f=s.errorResult)||!JSON.stringify(f).includes("Verifier + VerifierID has not yet been assigned")){e.next=16;break}return e.next=10,X(t,r,void 0,void 0,o,u);case 10:return e.next=12,R(t,o,u,1e3);case 12:p=e.sent,c=p.keyResult,e.next=21;break;case 16:if(!l){e.next=20;break}c=l,e.next=21;break;case 20:throw new Error("node results do not match at first lookup",l,f);case 21:if(!c){e.next=33;break}return h=c.keys[0],b=h.pub_key_X,d=h.pub_key_Y,e.next=25,this.getMetadata({pub_key_X:b,pub_key_Y:d});case 25:if(g=e.sent,m=this.ec.keyFromPublic({x:b.toString(16),y:d.toString(16)}).getPublic().add(this.ec.keyFromPrivate(g.toString(16)).getPublic()),b=m.getX().toString(16),d=m.getY().toString(16),v=this.generateAddressFromPubKey(m.getX(),m.getY()),i){e.next=32;break}return e.abrupt("return",v);case 32:return e.abrupt("return",{address:v,X:b,Y:d});case 33:throw new Error("node results do not match at final lookup",l,f);case 34:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}],[{key:"setAPIKey",value:function(e){Object(g.setAPIKey)(e)}},{key:"setEmbedHost",value:function(e){Object(g.setEmbedHost)(e)}}]),e}();t.default=D}]).default;
module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=15)}([function(e,t){e.exports=require("bn.js")},function(e,t){e.exports=require("@babel/runtime/regenerator")},function(e,t){e.exports=require("@toruslabs/http-helpers")},function(e,t){e.exports=require("web3-utils")},function(e,t){e.exports=require("@babel/runtime/helpers/asyncToGenerator")},function(e,t){e.exports=require("json-stable-stringify")},function(e,t){e.exports=require("@toruslabs/eccrypto")},function(e,t){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,t){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,t){e.exports=require("@babel/runtime/helpers/typeof")},function(e,t){e.exports=require("@babel/runtime/helpers/classCallCheck")},function(e,t){e.exports=require("@babel/runtime/helpers/createClass")},function(e,t){e.exports=require("elliptic")},function(e,t){e.exports=require("memory-cache")},function(e,t){e.exports=require("loglevel")},function(e,t,r){"use strict";r.r(t);var n=r(1),a=r.n(n),o=r(7),u=r.n(o),i=r(9),c=r.n(i),s=r(4),f=r.n(s),l=r(10),p=r.n(l),h=r(11),b=r.n(h),d=r(6),g=r(2),m=r(0),v=r.n(m),y=r(12),k=r(5),x=r.n(k),O=r(13),w=r.n(O),P=r(3),j=r(14),S=r.n(j).a.getLogger("torus.js"),_=function(e,t){return new Promise((function(r,n){var a,o=0,u={resolved:!1},i=new Array(e.length).fill(void 0),c=new Array(e.length).fill(void 0);e.forEach((function(s,f){s.then((function(e){c[f]=e})).catch((function(e){i[f]=e})).finally((function(){u.resolved||t(c.slice(0),u).then((function(e){u.resolved=!0,r(e)})).catch((function(e){a=e})).finally((function(t){(o+=1)===e.length&&n(new Error("Unable to resolve enough promises, errors: ".concat(JSON.stringify(i),", responses: ").concat(JSON.stringify(c),", predicate: ").concat(a.message||a)))}))}))}))}))},q=r(8),A=r.n(q);function K(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function C(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?K(Object(r),!0).forEach((function(t){u()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):K(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var M=function e(t,r){var n=t;if("number"==typeof n&&(n=Array.from({length:n},(function(e,t){return t}))),r>n.length||r<=0)return[];if(r===n.length)return[n];if(1===r)return n.reduce((function(e,t){return[].concat(A()(e),[[t]])}),[]);for(var a=[],o=[],u=0;u<=n.length-r+1;u+=1){o=e(n.slice(u+1),r-1);for(var i=0;i<o.length;i+=1)a.push([n[u]].concat(A()(o[i])))}return a},E=function(e,t){for(var r={},n=0;n<e.length;n+=1){var a=x()(e[n]);if(r[a]=r[a]?r[a]+1:1,r[a]===t)return e[n]}},I=function(e,t,r){var n=e.map((function(e){return Object(g.post)(e,Object(g.generateJsonRPCObject)("VerifierLookupRequest",{verifier:t,verifier_id:r.toString()})).catch((function(e){return S.error("lookup request failed",e)}))}));return _(n,(function(t){var r=t.filter((function(e){return e})),n=E(r.map((function(e){return e&&e.error})),1+~~(e.length/2)),a=E(r.map((function(e){return e&&e.result})),1+~~(e.length/2));return a||n?Promise.resolve({keyResult:a,errorResult:n}):Promise.reject(new Error("invalid results ".concat(JSON.stringify(t))))})).catch((function(e){return S.error("Some for keylookup failed",e)}))},R=function(e,t,r,n){return new Promise((function(a,o){setTimeout((function(){I(e,t,r).then(a).catch(o)}),n)}))},X=function e(t,r,n,a,o,u){var i,c;if(void 0===n?(i=Math.floor(Math.random()*t.length),c=i):i=n%t.length,i===a)throw new Error("Looped through all");void 0!==a&&(c=a);var s=Object(g.generateJsonRPCObject)("KeyAssign",{verifier:o,verifier_id:u.toString()});return Object(g.post)("https://signer.tor.us/api/sign",s,{headers:{pubKeyX:r[i].X,pubKeyY:r[i].Y}},{useAPIKey:!0}).then((function(n){return Object(g.post)(t[i],C(C({},s),n),{headers:{"Content-Type":"application/json; charset=utf-8"}}).catch((function(n){return e(t,r,i+1,c,o,u)}))}))};function Y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(r),!0).forEach((function(t){u()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var D=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.enableLogging,n=void 0!==r&&r,a=t.metadataHost,o=void 0===a?"https://metadata.tor.us":a,u=t.allowHost,i=void 0===u?"https://signer.tor.us/api/allow":u;p()(this,e),this.ec=new y.ec("secp256k1"),this.metadataHost=o,this.allowHost=i,this.metadataCache=w.a,n||S.disableAll(),this.metadataLock={}}var t,r,n,o;return b()(e,[{key:"retrieveShares",value:(o=f()(a.a.mark((function e(t,r,n,o,u){var i,s,l,p,h,b,m,y,k,x=this,O=arguments;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=O.length>5&&void 0!==O[5]?O[5]:{},s=[],e.next=4,Object(g.get)(this.allowHost,{},{useAPIKey:!0});case 4:for(l=Object(d.generatePrivate)(),p=Object(d.getPublic)(l).toString("hex"),h=p.slice(2,66),b=p.slice(66),m=Object(P.keccak256)(u),y=0;y<t.length;y+=1)k=Object(g.post)(t[y],Object(g.generateJsonRPCObject)("CommitmentRequest",{messageprefix:"mug00",tokencommitment:m.slice(2),temppubx:h,temppuby:b,verifieridentifier:n})).catch((function(e){return S.error("commitment",e)})),s.push(k);return e.abrupt("return",_(s,(function(e){return e.filter((function(e){return!(!e||"object"!==c()(e)||e.error)})).length>=3*~~(t.length/4)+1?Promise.resolve(e):Promise.reject(new Error("invalid ".concat(JSON.stringify(e))))})).then((function(e){for(var c=[],s=[],p=0;p<e.length;p+=1)e[p]&&s.push(e[p].result);for(var h=0;h<t.length;h+=1){var b=Object(g.post)(t[h],Object(g.generateJsonRPCObject)("ShareRequest",{encrypted:"yes",item:[B(B({},o),{},{idtoken:u,nodesignatures:s,verifieridentifier:n},i)]})).catch((function(e){return S.error("share req",e)}));c.push(b)}return _(c,function(){var e=f()(a.a.mark((function e(n,o){var u,i,c,s,f,p,h,b,g,m,y,k,O,w;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u=n.filter((function(e){return e})),i=E(n.map((function(e){return e&&e.result&&e.result.keys[0].PublicKey})),1+~~(t.length/2)),!(u.length>=1+~~(t.length/2)&&i)){e.next=32;break}for(c=[],s=[],f=0;f<n.length;f+=1)n[f]&&n[f].result&&n[f].result.keys&&n[f].result.keys.length>0?(n[f].result.keys.sort((function(e,t){return new v.a(e.Index,16).cmp(new v.a(t.Index,16))})),n[f].result.keys[0].Metadata?(p={ephemPublicKey:Buffer.from(n[f].result.keys[0].Metadata.ephemPublicKey,"hex"),iv:Buffer.from(n[f].result.keys[0].Metadata.iv,"hex"),mac:Buffer.from(n[f].result.keys[0].Metadata.mac,"hex"),mode:Buffer.from(n[f].result.keys[0].Metadata.mode,"hex")},c.push(Object(d.decrypt)(l,B(B({},p),{},{ciphertext:Buffer.from(atob(n[f].result.keys[0].Share).padStart(64,"0"),"hex")})).catch((function(e){return S.debug("share decryption",e)})))):c.push(Promise.resolve(Buffer.from(n[f].result.keys[0].Share.padStart(64,"0"),"hex")))):c.push(Promise.resolve(void 0)),s.push(new v.a(r[f],16));return e.next=8,Promise.all(c);case 8:if(h=e.sent,!o.resolved){e.next=11;break}return e.abrupt("return",void 0);case 11:b=h.reduce((function(e,t,r){return t&&e.push({index:s[r],value:new v.a(t)}),e}),[]),g=M(b.length,1+~~(t.length/2)),y=function(e){var t=g[e],r=b.filter((function(e,r){return t.includes(r)})),n=r.map((function(e){return e.value})),a=r.map((function(e){return e.index})),o=x.lagrangeInterpolation(n,a),u=Object(d.getPublic)(Buffer.from(o.toString(16,64),"hex")).toString("hex"),c=u.slice(2,66),s=u.slice(66);if(0===new v.a(c,16).cmp(new v.a(i.X,16))&&0===new v.a(s,16).cmp(new v.a(i.Y,16)))return m=o,"break"},k=0;case 15:if(!(k<g.length)){e.next=22;break}if("break"!==y(k)){e.next=19;break}return e.abrupt("break",22);case 19:k+=1,e.next=15;break;case 22:if(void 0!==m){e.next=24;break}throw new Error("could not derive private key");case 24:return e.next=26,x.getMetadata({pub_key_X:i.X,pub_key_Y:i.Y});case 26:if(O=e.sent,!o.resolved){e.next=29;break}return e.abrupt("return",void 0);case 29:return m=m.add(O).umod(x.ec.curve.n),w=x.generateAddressFromPrivKey(m),e.abrupt("return",{ethAddress:w,privKey:m.toString("hex",64)});case 32:throw new Error("invalid");case 33:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}())})));case 11:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n,a){return o.apply(this,arguments)})},{key:"getMetadata",value:(n=f()(a.a.mark((function e(t,r){var n,o,u,i,c=this;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,o=x()(t),null===this.metadataLock[o]){e.next=7;break}return e.next=5,this.metadataLock[o];case 5:e.next=8;break;case 7:this.metadataLock[o]=new Promise((function(e){n=function(){c.metadataLock[o]=null,e()}}));case 8:if(null===(u=this.metadataCache.get(o))){e.next=12;break}return n&&n(),e.abrupt("return",u);case 12:return e.next=14,Object(g.post)("".concat(this.metadataHost,"/get"),t,r,{useAPIKey:!0});case 14:if((i=e.sent)&&i.message){e.next=19;break}return this.metadataCache.put(o,new v.a(0),6e4),n&&n(),e.abrupt("return",new v.a(0));case 19:return this.metadataCache.put(o,new v.a(i.message,16),6e4),e.abrupt("return",new v.a(i.message,16));case 23:return e.prev=23,e.t0=e.catch(0),S.error("get metadata error",e.t0),n&&n(),e.abrupt("return",new v.a(0));case 28:case"end":return e.stop()}}),e,this,[[0,23]])}))),function(e,t){return n.apply(this,arguments)})},{key:"generateMetadataParams",value:function(e,t){var r=this.ec.keyFromPrivate(t.toString("hex",64)),n={data:e,timestamp:new v.a(~~(Date.now()/1e3)).toString(16)},a=r.sign(Object(P.keccak256)(x()(n)).slice(2));return{pub_key_X:r.getPublic().getX().toString("hex"),pub_key_Y:r.getPublic().getY().toString("hex"),set_data:n,signature:Buffer.from(a.r.toString(16,64)+a.s.toString(16,64)+new v.a(a.v).toString(16,2),"hex").toString("base64")}}},{key:"setMetadata",value:(r=f()(a.a.mark((function e(t,r){var n;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Object(g.post)("".concat(this.metadataHost,"/set"),t,r,{useAPIKey:!0});case 3:return n=e.sent,e.abrupt("return",n.message);case 7:return e.prev=7,e.t0=e.catch(0),S.error("set metadata error",e.t0),e.abrupt("return","");case 11:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(e,t){return r.apply(this,arguments)})},{key:"lagrangeInterpolation",value:function(e,t){if(e.length!==t.length)return null;for(var r=new v.a(0),n=0;n<e.length;n+=1){for(var a=new v.a(1),o=new v.a(1),u=0;u<e.length;u+=1)if(n!==u){a=(a=a.mul(t[u].neg())).umod(this.ec.curve.n);var i=t[n].sub(t[u]);i=i.umod(this.ec.curve.n),o=o.mul(i).umod(this.ec.curve.n)}var c=a.mul(o.invm(this.ec.curve.n)).umod(this.ec.curve.n);c=c.mul(e[n]).umod(this.ec.curve.n),r=r.add(c)}return r.umod(this.ec.curve.n)}},{key:"generateAddressFromPrivKey",value:function(e){var t=this.ec.keyFromPrivate(e.toString("hex",64),"hex").getPublic().encode("hex").slice(2),r="0x".concat(Object(P.keccak256)(Buffer.from(t,"hex")).slice(26));return Object(P.toChecksumAddress)(r)}},{key:"generateAddressFromPubKey",value:function(e,t){var r=this.ec.keyFromPublic({x:e.toString("hex",64),y:t.toString("hex",64)}).getPublic().encode("hex").slice(2),n="0x".concat(Object(P.keccak256)(Buffer.from(r,"hex")).slice(26));return Object(P.toChecksumAddress)(n)}},{key:"getPublicAddress",value:(t=f()(a.a.mark((function e(t,r,n){var o,u,i,c,s,f,l,p,h,b,d,g,m,v,y=arguments;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.verifier,u=n.verifierId,i=y.length>3&&void 0!==y[3]&&y[3],e.next=4,I(t,o,u);case 4:if(e.t0=e.sent,e.t0){e.next=7;break}e.t0={};case 7:if(s=e.t0,f=s.keyResult,!(l=s.errorResult)||!JSON.stringify(l).includes("Verifier + VerifierID has not yet been assigned")){e.next=22;break}return e.next=13,X(t,r,void 0,void 0,o,u);case 13:return e.next=15,R(t,o,u,1e3);case 15:if(e.t1=e.sent,e.t1){e.next=18;break}e.t1={};case 18:p=e.t1,c=p.keyResult,e.next=27;break;case 22:if(!f){e.next=26;break}c=f,e.next=27;break;case 26:throw new Error("node results do not match at first lookup",f,l);case 27:if(!c){e.next=39;break}return h=c.keys[0],b=h.pub_key_X,d=h.pub_key_Y,e.next=31,this.getMetadata({pub_key_X:b,pub_key_Y:d});case 31:if(g=e.sent,m=this.ec.keyFromPublic({x:b.toString(16),y:d.toString(16)}).getPublic().add(this.ec.keyFromPrivate(g.toString(16)).getPublic()),b=m.getX().toString(16),d=m.getY().toString(16),v=this.generateAddressFromPubKey(m.getX(),m.getY()),i){e.next=38;break}return e.abrupt("return",v);case 38:return e.abrupt("return",{address:v,X:b,Y:d});case 39:throw new Error("node results do not match at final lookup",f,l);case 40:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}],[{key:"setAPIKey",value:function(e){Object(g.setAPIKey)(e)}},{key:"setEmbedHost",value:function(e){Object(g.setEmbedHost)(e)}}]),e}();t.default=D}]).default;
{
"name": "@toruslabs/torus.js",
"version": "2.2.10",
"version": "2.2.11",
"description": "Handle communication with torus nodes",

@@ -5,0 +5,0 @@ "main": "dist/torusUtils.cjs.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc