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
4
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 4.2.3 to 4.2.4

2

dist/torusUtils.cjs.js

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

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=18)}([function(e,t){e.exports=require("@babel/runtime/regenerator")},function(e,t){e.exports=require("bn.js")},function(e,t){e.exports=require("@toruslabs/http-helpers")},function(e,t){e.exports=require("@babel/runtime/helpers/asyncToGenerator")},function(e,t){e.exports=require("web3-utils")},function(e,t){e.exports=require("@babel/runtime/helpers/classCallCheck")},function(e,t){e.exports=require("@babel/runtime/helpers/getPrototypeOf")},function(e,t){e.exports=require("@toruslabs/eccrypto")},function(e,t){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,t){e.exports=require("json-stable-stringify")},function(e,t){e.exports=require("@babel/runtime/helpers/inherits")},function(e,t){e.exports=require("@babel/runtime/helpers/possibleConstructorReturn")},function(e,t){e.exports=require("@babel/runtime/helpers/wrapNativeSuper")},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/createClass")},function(e,t){e.exports=require("elliptic")},function(e,t){e.exports=require("loglevel")},function(e,t,r){"use strict";r.r(t),r.d(t,"keyAssign",(function(){return L})),r.d(t,"keyLookup",(function(){return T})),r.d(t,"waitKeyLookup",(function(){return V}));var n=r(8),a=r.n(n),o=r(14),i=r.n(o),u=r(3),s=r.n(u),c=r(5),f=r.n(c),l=r(15),p=r.n(l),h=r(0),b=r.n(h),d=r(7),g=r(2),v=r(1),y=r.n(v),m=r(16),x=r(9),k=r.n(x),O=r(4),w=r(17),P=r.n(w).a.getLogger("torus.js");P.disableAll();var S=P,j=r(10),_=r.n(j),N=r(11),K=r.n(N),A=r(6),R=r.n(A),E=r(12),q=r.n(E);function F(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=R()(e);if(t){var a=R()(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return K()(this,r)}}var M=function(e){_()(r,e);var t=F(r);function r(e){var n,a=e.errors,o=e.responses,i=e.predicate;return f()(this,r),(n=t.call(this,"Unable to resolve enough promises.")).errors=a,n.responses=o,n.predicate=i,n}return r}(q()(Error)),I=function(e,t){return new Promise((function(r,n){var a,o=0,i={resolved:!1},u=new Array(e.length).fill(void 0),s=new Array(e.length).fill(void 0);e.forEach((function(c,f){c.then((function(e){s[f]=e})).catch((function(e){u[f]=e})).finally((function(){i.resolved||t(s.slice(0),i).then((function(e){i.resolved=!0,r(e)})).catch((function(e){a=e})).finally((function(t){if((o+=1)===e.length){var r=Object.values(s.reduce((function(e,t){var r,n,a=t||{},o=a.id,i=a.error;return(null==i||null===(r=i.data)||void 0===r?void 0:r.length)>0&&(i.data.startsWith("Error occurred while verifying params")?e[o]=(n=i.data).charAt(0).toUpperCase()+n.slice(1):e[o]=i.data),e}),{}));if(r.length>0){var i=r.length>1?"\n".concat(r.map((function(e){return"• ".concat(e)})).join("\n")):r[0];n(new Error(i))}else{var c;n(new M({errors:u,responses:s,predicate:(null===(c=a)||void 0===c?void 0:c.message)||a}))}}}))}))}))}))},X=r(13),Y=r.n(X);function J(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?J(Object(r),!0).forEach((function(t){a()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):J(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function C(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=R()(e);if(t){var a=R()(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return K()(this,r)}}var H=function(e){_()(r,e);var t=C(r);function r(){return f()(this,r),t.apply(this,arguments)}return r}(q()(Error)),D=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(Y()(e),[[t]])}),[]);for(var a=[],o=[],i=0;i<=n.length-r+1;i+=1){o=e(n.slice(i+1),r-1);for(var u=0;u<o.length;u+=1)a.push([n[i]].concat(Y()(o[u])))}return a},U=function(e,t){for(var r={},n=0;n<e.length;n+=1){var a=k()(e[n]);if(r[a]=r[a]?r[a]+1:1,r[a]===t)return e[n]}},T=function(){var e=s()(b.a.mark((function e(t,r,n){var a;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.map((function(e){return Object(g.post)(e,Object(g.generateJsonRPCObject)("VerifierLookupRequest",{verifier:r,verifier_id:n.toString()})).catch((function(e){return S.error("lookup request failed",e)}))})),e.abrupt("return",I(a,(function(e){var r=e.filter((function(e){return e})),n=U(r.map((function(e){return e&&e.error})),1+~~(t.length/2)),a=U(r.map((function(e){return e&&e.result})),1+~~(t.length/2));return a||n?Promise.resolve({keyResult:a,errorResult:n}):Promise.reject(new Error("invalid results ".concat(JSON.stringify(e))))})));case 2:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),V=function(e,t,r,n){return new Promise((function(a,o){setTimeout((function(){T(e,t,r).then(a).catch(o)}),n)}))},L=function(){var e=s()(b.a.mark((function e(t,r,n,a,o,i){var u,s,c,f;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n?(u=Math.floor(Math.random()*t.length),s=u):u=n%t.length,u!==a){e.next=3;break}throw new Error("Looped through all");case 3:return void 0!==a&&(s=a),c=Object(g.generateJsonRPCObject)("KeyAssign",{verifier:o,verifier_id:i.toString()}),e.prev=5,e.next=8,Object(g.post)("https://signer.tor.us/api/sign",c,{headers:{pubKeyX:r[u].X,pubKeyY:r[u].Y}},{useAPIKey:!0});case 8:return f=e.sent,e.abrupt("return",Object(g.post)(t[u],B(B({},c),f),{headers:{"Content-Type":"application/json; charset=utf-8"}}));case 12:return e.prev=12,e.t0=e.catch(5),S.error(e.t0),e.abrupt("return",L(t,r,u+1,s,o,i));case 16:case"end":return e.stop()}}),e,null,[[5,12]])})));return function(t,r,n,a,o,i){return e.apply(this,arguments)}}();function G(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 W(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach((function(t){a()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var z=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.enableOneKey,n=void 0!==r&&r,a=t.metadataHost,o=void 0===a?"https://metadata.tor.us":a,i=t.allowHost,u=void 0===i?"https://signer.tor.us/api/allow":i,s=t.serverTimeOffset,c=void 0===s?0:s;f()(this,e),this.ec=new m.ec("secp256k1"),this.metadataHost=o,this.allowHost=u,this.enableOneKey=n,this.serverTimeOffset=c||0}var t,r,n,a,o,u,c,l;return p()(e,[{key:"getUserTypeAndAddress",value:(l=s()(b.a.mark((function e(t,r,n){var a,o,i,u,s,c,f,l,p,h,d,g,v,m,x,k,O,w,P,S,j,_=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.verifier,o=n.verifierId,i=_.length>3&&void 0!==_[3]&&_[3],e.next=4,T(t,a,o);case 4:if(e.t0=e.sent,e.t0){e.next=7;break}e.t0={};case 7:if(u=e.t0,s=u.keyResult,c=u.errorResult,f=!1,!c||!JSON.stringify(c).includes("Verifier + VerifierID has not yet been assigned")){e.next=26;break}if(i){e.next=14;break}throw new Error("Verifier + VerifierID has not yet been assigned");case 14:return e.next=16,L(t,r,void 0,void 0,a,o);case 16:return e.next=18,V(t,a,o,1e3);case 18:if(e.t1=e.sent,e.t1){e.next=21;break}e.t1={};case 21:p=e.t1,l=p.keyResult,f=!0,e.next=31;break;case 26:if(!s){e.next=30;break}l=s,e.next=31;break;case 30:throw new Error("node results do not match at first lookup ".concat(JSON.stringify(s||{}),", ").concat(JSON.stringify(c||{})));case 31:if(!l){e.next=61;break}return h=l.keys[0],d=h.pub_key_X,g=h.pub_key_Y,e.prev=33,e.next=37,this.getOrSetNonce(d,g,void 0,!f);case 37:w=e.sent,v=w.typeOfUser,m=w.nonce,x=w.pubNonce,O=w.upgraded,m=new y.a(m||"0",16),e.next=48;break;case 45:throw e.prev=45,e.t2=e.catch(33),new H;case 48:if("v1"!==v){e.next=52;break}k=this.ec.keyFromPublic({x:d.toString(16),y:g.toString(16)}).getPublic().add(this.ec.keyFromPrivate(m.toString(16)).getPublic()),e.next=57;break;case 52:if("v2"!==v){e.next=56;break}k=this.ec.keyFromPublic({x:d.toString(16),y:g.toString(16)}).getPublic().add(this.ec.keyFromPublic({x:x.x,y:x.y}).getPublic()),e.next=57;break;case 56:throw new Error("getOrSetNonce should always return typeOfUser.");case 57:return P=k.getX().toString(16),S=k.getY().toString(16),j=this.generateAddressFromPubKey(k.getX(),k.getY()),e.abrupt("return",{typeOfUser:v,nonce:m,pubNonce:x,upgraded:O,X:P,Y:S,address:j});case 61:throw new Error("node results do not match at final lookup ".concat(JSON.stringify(s||{}),", ").concat(JSON.stringify(c||{})));case 62:case"end":return e.stop()}}),e,this,[[33,45]])}))),function(e,t,r){return l.apply(this,arguments)})},{key:"setCustomKey",value:(c=s()(b.a.mark((function e(t){var r,n,a,o,i,u,s,c,f;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.privKeyHex,n=t.metadataNonce,a=t.torusKeyHex,o=t.customKeyHex,a?i=new y.a(a,16):(u=new y.a(r,16),i=u.sub(n).umod(this.ec.curve.n)),s=new y.a(o,16),c=s.sub(i).umod(this.ec.curve.n),f=this.generateMetadataParams(c.toString(16),i.toString(16)),e.next=7,this.setMetadata(f);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"retrieveShares",value:(u=s()(b.a.mark((function e(t,r,n,a,o){var u,c,f,l,p,h,v,m,x,k=this,w=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=w.length>5&&void 0!==w[5]?w[5]:{},c=[],e.next=4,Object(g.get)(this.allowHost,{headers:{verifier:n,verifier_id:a.verifier_id}},{useAPIKey:!0});case 4:for(f=Object(d.generatePrivate)(),l=Object(d.getPublic)(f).toString("hex"),p=l.slice(2,66),h=l.slice(66),v=Object(O.keccak256)(o),m=0;m<t.length;m+=1)x=Object(g.post)(t[m],Object(g.generateJsonRPCObject)("CommitmentRequest",{messageprefix:"mug00",tokencommitment:v.slice(2),temppubx:p,temppuby:h,verifieridentifier:n})).catch((function(e){return S.error("commitment",e)})),c.push(x);return e.abrupt("return",I(c,(function(e){return e.filter((function(e){return!(!e||"object"!==i()(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 i=[],c=[],l=0;l<e.length;l+=1)e[l]&&c.push(e[l].result);for(var p=0;p<t.length;p+=1){var h=Object(g.post)(t[p],Object(g.generateJsonRPCObject)("ShareRequest",{encrypted:"yes",item:[W(W({},a),{},{idtoken:o,nodesignatures:c,verifieridentifier:n},u)]})).catch((function(e){return S.error("share req",e)}));i.push(h)}return I(i,function(){var e=s()(b.a.mark((function e(n,a){var o,i,u,s,c,l,p,h,g,v,m,x;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.filter((function(e){return e})),i=U(n.map((function(e){return e&&e.result&&e.result.keys[0].PublicKey})),1+~~(t.length/2)),!(o.length>=1+~~(t.length/2)&&i)){e.next=25;break}for(u=[],s=[],c=0;c<n.length;c+=1)n[c]&&n[c].result&&n[c].result.keys&&n[c].result.keys.length>0?(n[c].result.keys.sort((function(e,t){return new y.a(e.Index,16).cmp(new y.a(t.Index,16))})),n[c].result.keys[0].Metadata?(l={ephemPublicKey:Buffer.from(n[c].result.keys[0].Metadata.ephemPublicKey,"hex"),iv:Buffer.from(n[c].result.keys[0].Metadata.iv,"hex"),mac:Buffer.from(n[c].result.keys[0].Metadata.mac,"hex"),mode:Buffer.from(n[c].result.keys[0].Metadata.mode,"hex")},u.push(Object(d.decrypt)(f,W(W({},l),{},{ciphertext:Buffer.from(atob(n[c].result.keys[0].Share).padStart(64,"0"),"hex")})).catch((function(e){return S.debug("share decryption",e)})))):u.push(Promise.resolve(Buffer.from(n[c].result.keys[0].Share.padStart(64,"0"),"hex")))):u.push(Promise.resolve(void 0)),s.push(new y.a(r[c],16));return e.next=8,Promise.all(u);case 8:if(p=e.sent,!a.resolved){e.next=11;break}return e.abrupt("return",void 0);case 11:h=p.reduce((function(e,t,r){return t&&e.push({index:s[r],value:new y.a(t)}),e}),[]),g=D(h.length,1+~~(t.length/2)),m=function(e){var t=g[e],r=h.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=k.lagrangeInterpolation(n,a),u=Object(d.getPublic)(Buffer.from(o.toString(16,64),"hex")).toString("hex"),s=u.slice(2,66),c=u.slice(66);if(0===new y.a(s,16).cmp(new y.a(i.X,16))&&0===new y.a(c,16).cmp(new y.a(i.Y,16)))return v=o,"break"},x=0;case 15:if(!(x<g.length)){e.next=22;break}if("break"!==m(x)){e.next=19;break}return e.abrupt("break",22);case 19:x+=1,e.next=15;break;case 22:if(void 0!==v){e.next=24;break}throw new Error("could not derive private key");case 24:return e.abrupt("return",v);case 25:throw new Error("invalid");case 26:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}())})).then(function(){var e=s()(b.a.mark((function e(t){var r,n,a,o,i,u,s,c;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t,n=Object(d.getPublic)(Buffer.from(r.toString(16,64),"hex")).toString("hex"),a=n.slice(2,66),o=n.slice(66),!k.enableOneKey){e.next=12;break}return e.next=7,k.getNonce(a,o,r);case 7:u=e.sent,s=u.nonce,i=new y.a(s||"0",16),e.next=15;break;case 12:return e.next=14,k.getMetadata({pub_key_X:a,pub_key_Y:o});case 14:i=e.sent;case 15:return S.debug("> torus.js/retrieveShares",{privKey:r.toString(16),metadataNonce:i.toString(16)}),r=r.add(i).umod(k.ec.curve.n),c=k.generateAddressFromPrivKey(r),S.debug("> torus.js/retrieveShares",{ethAddress:c,privKey:r.toString(16)}),e.abrupt("return",{ethAddress:c,privKey:r.toString("hex",64),metadataNonce:i});case 20:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 11:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n,a){return u.apply(this,arguments)})},{key:"getMetadata",value:(o=s()(b.a.mark((function e(t,r){var n;return b.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,"/get"),t,r,{useAPIKey:!0});case 3:if((n=e.sent)&&n.message){e.next=6;break}return e.abrupt("return",new y.a(0));case 6:return e.abrupt("return",new y.a(n.message,16));case 9:return e.prev=9,e.t0=e.catch(0),S.error("get metadata error",e.t0),e.abrupt("return",new y.a(0));case 13:case"end":return e.stop()}}),e,this,[[0,9]])}))),function(e,t){return o.apply(this,arguments)})},{key:"generateMetadataParams",value:function(e,t){var r=this.ec.keyFromPrivate(t.toString("hex",64)),n={data:e,timestamp:new y.a(~~(this.serverTimeOffset+Date.now()/1e3)).toString(16)},a=r.sign(Object(O.keccak256)(k()(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 y.a(a.v).toString(16,2),"hex").toString("base64")}}},{key:"setMetadata",value:(a=s()(b.a.mark((function e(t,r){var n;return b.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 a.apply(this,arguments)})},{key:"lagrangeInterpolation",value:function(e,t){if(e.length!==t.length)return null;for(var r=new y.a(0),n=0;n<e.length;n+=1){for(var a=new y.a(1),o=new y.a(1),i=0;i<e.length;i+=1)if(n!==i){a=(a=a.mul(t[i].neg())).umod(this.ec.curve.n);var u=t[n].sub(t[i]);u=u.umod(this.ec.curve.n),o=o.mul(u).umod(this.ec.curve.n)}var s=a.mul(o.invm(this.ec.curve.n)).umod(this.ec.curve.n);s=s.mul(e[n]).umod(this.ec.curve.n),r=r.add(s)}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(O.keccak256)(Buffer.from(t,"hex")).slice(26));return Object(O.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(O.keccak256)(Buffer.from(r,"hex")).slice(26));return Object(O.toChecksumAddress)(n)}},{key:"getPublicAddress",value:(n=s()(b.a.mark((function e(t,r,n){var a,o,i,u,s,c,f,l,p,h,d,g,v,m,x,k,O,w,P,j,_=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.verifier,o=n.verifierId,i=_.length>3&&void 0!==_[3]&&_[3],S.debug("> torus.js/getPublicAddress",{endpoints:t,torusNodePubs:r,verifier:a,verifierId:o,isExtended:i}),s=!1,e.next=6,T(t,a,o);case 6:if(e.t0=e.sent,e.t0){e.next=9;break}e.t0={};case 9:if(c=e.t0,f=c.keyResult,!(l=c.errorResult)||!JSON.stringify(l).includes("Verifier + VerifierID has not yet been assigned")){e.next=25;break}return e.next=15,L(t,r,void 0,void 0,a,o);case 15:return e.next=17,V(t,a,o,1e3);case 17:if(e.t1=e.sent,e.t1){e.next=20;break}e.t1={};case 20:p=e.t1,u=p.keyResult,s=!0,e.next=30;break;case 25:if(!f){e.next=29;break}u=f,e.next=30;break;case 29:throw new Error("node results do not match at first lookup ".concat(JSON.stringify(f||{}),", ").concat(JSON.stringify(l||{})));case 30:if(S.debug("> torus.js/getPublicAddress",{finalKeyResult:u,isNewKey:s}),!u){e.next=72;break}if(d=u.keys[0],g=d.pub_key_X,v=d.pub_key_Y,!this.enableOneKey){e.next=60;break}return e.prev=34,e.next=38,this.getOrSetNonce(g,v,void 0,!s);case 38:P=e.sent,m=P.typeOfUser,x=P.nonce,k=P.pubNonce,w=P.upgraded,x=new y.a(x||"0",16),e.next=49;break;case 46:throw e.prev=46,e.t2=e.catch(34),new H;case 49:if("v1"!==m){e.next=53;break}O=this.ec.keyFromPublic({x:g.toString(16),y:v.toString(16)}).getPublic().add(this.ec.keyFromPrivate(x.toString(16)).getPublic()),e.next=58;break;case 53:if("v2"!==m){e.next=57;break}O=w?this.ec.keyFromPublic({x:g.toString(16),y:v.toString(16)}).getPublic():this.ec.keyFromPublic({x:g.toString(16),y:v.toString(16)}).getPublic().add(this.ec.keyFromPublic({x:k.x,y:k.y}).getPublic()),e.next=58;break;case 57:throw new Error("getOrSetNonce should always return typeOfUser.");case 58:e.next=65;break;case 60:return m="v1",e.next=63,this.getMetadata({pub_key_X:g,pub_key_Y:v});case 63:x=e.sent,O=this.ec.keyFromPublic({x:g.toString(16),y:v.toString(16)}).getPublic().add(this.ec.keyFromPrivate(x.toString(16)).getPublic());case 65:if(g=O.getX().toString(16),v=O.getY().toString(16),j=this.generateAddressFromPubKey(O.getX(),O.getY()),S.debug("> torus.js/getPublicAddress",{X:g,Y:v,address:j,typeOfUser:m,nonce:null===(h=x)||void 0===h?void 0:h.toString(16),pubNonce:k}),i){e.next=71;break}return e.abrupt("return",j);case 71:return e.abrupt("return",{typeOfUser:m,address:j,X:g,Y:v,metadataNonce:x,pubNonce:k});case 72:throw new Error("node results do not match at final lookup ".concat(JSON.stringify(f||{}),", ").concat(JSON.stringify(l||{})));case 73:case"end":return e.stop()}}),e,this,[[34,46]])}))),function(e,t,r){return n.apply(this,arguments)})},{key:"getOrSetNonce",value:(r=s()(b.a.mark((function e(t,r,n){var a,o,i,u=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=u.length>3&&void 0!==u[3]&&u[3],i=a?"getNonce":"getOrSetNonce",o=n?this.generateMetadataParams(i,n):{pub_key_X:t,pub_key_Y:r,set_data:{data:i}},e.abrupt("return",Object(g.post)("".concat(this.metadataHost,"/get_or_set_nonce"),o,void 0,{useAPIKey:!0}));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"getNonce",value:(t=s()(b.a.mark((function e(t,r,n){return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getOrSetNonce(t,r,n,!0));case 1:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})},{key:"getPostboxKeyFrom1OutOf1",value:function(e,t){var r=new y.a(e,16),n=new y.a(t,16);return r.sub(n).umod(this.ec.curve.n).toString("hex")}}],[{key:"enableLogging",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e?S.enableAll():S.disableAll()}},{key:"setAPIKey",value:function(e){Object(g.setAPIKey)(e)}},{key:"setEmbedHost",value:function(e){Object(g.setEmbedHost)(e)}},{key:"isGetOrSetNonceError",value:function(e){return e instanceof H}}]),e}();t.default=z}]);
module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.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 o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));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=18)}([function(e,t){e.exports=require("@babel/runtime/regenerator")},function(e,t){e.exports=require("bn.js")},function(e,t){e.exports=require("@toruslabs/http-helpers")},function(e,t){e.exports=require("@babel/runtime/helpers/asyncToGenerator")},function(e,t){e.exports=require("web3-utils")},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("@babel/runtime/helpers/getPrototypeOf")},function(e,t){e.exports=require("@toruslabs/eccrypto")},function(e,t){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,t){e.exports=require("json-stable-stringify")},function(e,t){e.exports=require("@babel/runtime/helpers/inherits")},function(e,t){e.exports=require("@babel/runtime/helpers/possibleConstructorReturn")},function(e,t){e.exports=require("@babel/runtime/helpers/wrapNativeSuper")},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("elliptic")},function(e,t){e.exports=require("loglevel")},function(e,t,r){"use strict";r.r(t),r.d(t,"keyAssign",(function(){return L})),r.d(t,"keyLookup",(function(){return U})),r.d(t,"waitKeyLookup",(function(){return V}));var n=r(9),o=r.n(n),a=r(15),i=r.n(a),u=r(3),s=r.n(u),c=r(5),f=r.n(c),l=r(6),p=r.n(l),h=r(0),b=r.n(h),d=r(8),g=r(2),y=r(1),v=r.n(y),m=r(16),k=r(10),x=r.n(k),w=r(4),O=r(17),P=r.n(O).a.getLogger("torus.js");P.disableAll();var S=P,j=r(11),_=r.n(j),N=r(12),K=r.n(N),A=r(7),E=r.n(A),R=r(13),q=r.n(R);function F(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=E()(e);if(t){var o=E()(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return K()(this,r)}}var M=function(e){_()(r,e);var t=F(r);function r(e){var n,o=e.errors,a=e.responses,i=e.predicate;return f()(this,r),(n=t.call(this,"Unable to resolve enough promises.")).errors=o,n.responses=a,n.predicate=i,n}return p()(r)}(q()(Error)),I=function(e,t){return new Promise((function(r,n){var o,a=0,i={resolved:!1},u=new Array(e.length).fill(void 0),s=new Array(e.length).fill(void 0);e.forEach((function(c,f){c.then((function(e){s[f]=e})).catch((function(e){u[f]=e})).finally((function(){i.resolved||t(s.slice(0),i).then((function(e){i.resolved=!0,r(e)})).catch((function(e){o=e})).finally((function(t){if((a+=1)===e.length){var r=Object.values(s.reduce((function(e,t){var r,n,o=t||{},a=o.id,i=o.error;return(null==i||null===(r=i.data)||void 0===r?void 0:r.length)>0&&(i.data.startsWith("Error occurred while verifying params")?e[a]=(n=i.data).charAt(0).toUpperCase()+n.slice(1):e[a]=i.data),e}),{}));if(r.length>0){var i=r.length>1?"\n".concat(r.map((function(e){return"• ".concat(e)})).join("\n")):r[0];n(new Error(i))}else{var c;n(new M({errors:u,responses:s,predicate:(null===(c=o)||void 0===c?void 0:c.message)||o}))}}}))}))}))}))},X=r(14),Y=r.n(X);function J(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?J(Object(r),!0).forEach((function(t){o()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):J(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function C(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=E()(e);if(t){var o=E()(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return K()(this,r)}}var H=function(e){_()(r,e);var t=C(r);function r(){return f()(this,r),t.apply(this,arguments)}return p()(r)}(q()(Error)),T=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(Y()(e),[[t]])}),[]);for(var o=[],a=[],i=0;i<=n.length-r+1;i+=1){a=e(n.slice(i+1),r-1);for(var u=0;u<a.length;u+=1)o.push([n[i]].concat(Y()(a[u])))}return o},D=function(e,t){for(var r={},n=0;n<e.length;n+=1){var o=x()(e[n]);if(r[o]=r[o]?r[o]+1:1,r[o]===t)return e[n]}},U=function(){var e=s()(b.a.mark((function e(t,r,n){var o;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.map((function(e){return Object(g.post)(e,Object(g.generateJsonRPCObject)("VerifierLookupRequest",{verifier:r,verifier_id:n.toString()})).catch((function(e){return S.error("lookup request failed",e)}))})),e.abrupt("return",I(o,(function(e){var r=e.filter((function(e){return e})),n=D(r.map((function(e){return e&&e.error})),1+~~(t.length/2)),o=D(r.map((function(e){return e&&e.result})),1+~~(t.length/2));return o||n?Promise.resolve({keyResult:o,errorResult:n}):Promise.reject(new Error("invalid results ".concat(JSON.stringify(e))))})));case 2:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),V=function(e,t,r,n){return new Promise((function(o,a){setTimeout((function(){U(e,t,r).then(o).catch(a)}),n)}))},L=function(){var e=s()(b.a.mark((function e(t,r,n,o,a,i){var u,s,c,f;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n?(u=Math.floor(Math.random()*t.length),s=u):u=n%t.length,u!==o){e.next=3;break}throw new Error("Looped through all");case 3:return void 0!==o&&(s=o),c=Object(g.generateJsonRPCObject)("KeyAssign",{verifier:a,verifier_id:i.toString()}),e.prev=5,e.next=8,Object(g.post)("https://signer.tor.us/api/sign",c,{headers:{pubKeyX:r[u].X,pubKeyY:r[u].Y}},{useAPIKey:!0});case 8:return f=e.sent,e.abrupt("return",Object(g.post)(t[u],B(B({},c),f),{headers:{"Content-Type":"application/json; charset=utf-8"}}));case 12:if(e.prev=12,e.t0=e.catch(5),S.error(e.t0),!["Timed out","TypeError: Failed to fetch","TypeError: cancelled","TypeError: NetworkError when attempting to fetch resource."].includes(e.t0.message)){e.next=18;break}return e.abrupt("return",L(t,r,u+1,s,a,i));case 18:throw new Error("Sorry, torus network that powers web3auth is currently very busy.\n We will generate your key in time. Pls try again later. \n\n ".concat(e.t0.message||""));case 19:case"end":return e.stop()}}),e,null,[[5,12]])})));return function(t,r,n,o,a,i){return e.apply(this,arguments)}}();function G(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 W(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach((function(t){o()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var z=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.enableOneKey,n=void 0!==r&&r,o=t.metadataHost,a=void 0===o?"https://metadata.tor.us":o,i=t.allowHost,u=void 0===i?"https://signer.tor.us/api/allow":i,s=t.serverTimeOffset,c=void 0===s?0:s;f()(this,e),this.ec=new m.ec("secp256k1"),this.metadataHost=a,this.allowHost=u,this.enableOneKey=n,this.serverTimeOffset=c||0}var t,r,n,o,a,u,c,l;return p()(e,[{key:"getUserTypeAndAddress",value:(l=s()(b.a.mark((function e(t,r,n){var o,a,i,u,s,c,f,l,p,h,d,g,y,m,k,x,w,O,P,S,j,_=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.verifier,a=n.verifierId,i=_.length>3&&void 0!==_[3]&&_[3],e.next=4,U(t,o,a);case 4:if(e.t0=e.sent,e.t0){e.next=7;break}e.t0={};case 7:if(u=e.t0,s=u.keyResult,c=u.errorResult,f=!1,!c||!JSON.stringify(c).includes("Verifier + VerifierID has not yet been assigned")){e.next=26;break}if(i){e.next=14;break}throw new Error("Verifier + VerifierID has not yet been assigned");case 14:return e.next=16,L(t,r,void 0,void 0,o,a);case 16:return e.next=18,V(t,o,a,1e3);case 18:if(e.t1=e.sent,e.t1){e.next=21;break}e.t1={};case 21:p=e.t1,l=p.keyResult,f=!0,e.next=31;break;case 26:if(!s){e.next=30;break}l=s,e.next=31;break;case 30:throw new Error("node results do not match at first lookup ".concat(JSON.stringify(s||{}),", ").concat(JSON.stringify(c||{})));case 31:if(!l){e.next=61;break}return h=l.keys[0],d=h.pub_key_X,g=h.pub_key_Y,e.prev=33,e.next=37,this.getOrSetNonce(d,g,void 0,!f);case 37:O=e.sent,y=O.typeOfUser,m=O.nonce,k=O.pubNonce,w=O.upgraded,m=new v.a(m||"0",16),e.next=48;break;case 45:throw e.prev=45,e.t2=e.catch(33),new H;case 48:if("v1"!==y){e.next=52;break}x=this.ec.keyFromPublic({x:d.toString(16),y:g.toString(16)}).getPublic().add(this.ec.keyFromPrivate(m.toString(16)).getPublic()),e.next=57;break;case 52:if("v2"!==y){e.next=56;break}x=this.ec.keyFromPublic({x:d.toString(16),y:g.toString(16)}).getPublic().add(this.ec.keyFromPublic({x:k.x,y:k.y}).getPublic()),e.next=57;break;case 56:throw new Error("getOrSetNonce should always return typeOfUser.");case 57:return P=x.getX().toString(16),S=x.getY().toString(16),j=this.generateAddressFromPubKey(x.getX(),x.getY()),e.abrupt("return",{typeOfUser:y,nonce:m,pubNonce:k,upgraded:w,X:P,Y:S,address:j});case 61:throw new Error("node results do not match at final lookup ".concat(JSON.stringify(s||{}),", ").concat(JSON.stringify(c||{})));case 62:case"end":return e.stop()}}),e,this,[[33,45]])}))),function(e,t,r){return l.apply(this,arguments)})},{key:"setCustomKey",value:(c=s()(b.a.mark((function e(t){var r,n,o,a,i,u,s,c,f;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.privKeyHex,n=t.metadataNonce,o=t.torusKeyHex,a=t.customKeyHex,o?i=new v.a(o,16):(u=new v.a(r,16),i=u.sub(n).umod(this.ec.curve.n)),s=new v.a(a,16),c=s.sub(i).umod(this.ec.curve.n),f=this.generateMetadataParams(c.toString(16),i.toString(16)),e.next=7,this.setMetadata(f);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"retrieveShares",value:(u=s()(b.a.mark((function e(t,r,n,o,a){var u,c,f,l,p,h,y,m,k,x=this,O=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=O.length>5&&void 0!==O[5]?O[5]:{},c=[],e.next=4,Object(g.get)(this.allowHost,{headers:{verifier:n,verifier_id:o.verifier_id}},{useAPIKey:!0});case 4:for(f=Object(d.generatePrivate)(),l=Object(d.getPublic)(f).toString("hex"),p=l.slice(2,66),h=l.slice(66),y=Object(w.keccak256)(a),m=0;m<t.length;m+=1)k=Object(g.post)(t[m],Object(g.generateJsonRPCObject)("CommitmentRequest",{messageprefix:"mug00",tokencommitment:y.slice(2),temppubx:p,temppuby:h,verifieridentifier:n})).catch((function(e){return S.error("commitment",e)})),c.push(k);return e.abrupt("return",I(c,(function(e){return e.filter((function(e){return!(!e||"object"!==i()(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 i=[],c=[],l=0;l<e.length;l+=1)e[l]&&c.push(e[l].result);for(var p=0;p<t.length;p+=1){var h=Object(g.post)(t[p],Object(g.generateJsonRPCObject)("ShareRequest",{encrypted:"yes",item:[W(W({},o),{},{idtoken:a,nodesignatures:c,verifieridentifier:n},u)]})).catch((function(e){return S.error("share req",e)}));i.push(h)}return I(i,function(){var e=s()(b.a.mark((function e(n,o){var a,i,u,s,c,l,p,h,g,y,m,k;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=n.filter((function(e){return e})),i=D(n.map((function(e){return e&&e.result&&e.result.keys[0].PublicKey})),1+~~(t.length/2)),!(a.length>=1+~~(t.length/2)&&i)){e.next=25;break}for(u=[],s=[],c=0;c<n.length;c+=1)n[c]&&n[c].result&&n[c].result.keys&&n[c].result.keys.length>0?(n[c].result.keys.sort((function(e,t){return new v.a(e.Index,16).cmp(new v.a(t.Index,16))})),n[c].result.keys[0].Metadata?(l={ephemPublicKey:Buffer.from(n[c].result.keys[0].Metadata.ephemPublicKey,"hex"),iv:Buffer.from(n[c].result.keys[0].Metadata.iv,"hex"),mac:Buffer.from(n[c].result.keys[0].Metadata.mac,"hex"),mode:Buffer.from(n[c].result.keys[0].Metadata.mode,"hex")},u.push(Object(d.decrypt)(f,W(W({},l),{},{ciphertext:Buffer.from(atob(n[c].result.keys[0].Share).padStart(64,"0"),"hex")})).catch((function(e){return S.debug("share decryption",e)})))):u.push(Promise.resolve(Buffer.from(n[c].result.keys[0].Share.padStart(64,"0"),"hex")))):u.push(Promise.resolve(void 0)),s.push(new v.a(r[c],16));return e.next=8,Promise.all(u);case 8:if(p=e.sent,!o.resolved){e.next=11;break}return e.abrupt("return",void 0);case 11:h=p.reduce((function(e,t,r){return t&&e.push({index:s[r],value:new v.a(t)}),e}),[]),g=T(h.length,1+~~(t.length/2)),m=function(e){var t=g[e],r=h.filter((function(e,r){return t.includes(r)})),n=r.map((function(e){return e.value})),o=r.map((function(e){return e.index})),a=x.lagrangeInterpolation(n,o),u=Object(d.getPublic)(Buffer.from(a.toString(16,64),"hex")).toString("hex"),s=u.slice(2,66),c=u.slice(66);if(0===new v.a(s,16).cmp(new v.a(i.X,16))&&0===new v.a(c,16).cmp(new v.a(i.Y,16)))return y=a,"break"},k=0;case 15:if(!(k<g.length)){e.next=22;break}if("break"!==m(k)){e.next=19;break}return e.abrupt("break",22);case 19:k+=1,e.next=15;break;case 22:if(void 0!==y){e.next=24;break}throw new Error("could not derive private key");case 24:return e.abrupt("return",y);case 25:throw new Error("invalid");case 26:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}())})).then(function(){var e=s()(b.a.mark((function e(t){var r,n,o,a,i,u,s,c;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t,n=Object(d.getPublic)(Buffer.from(r.toString(16,64),"hex")).toString("hex"),o=n.slice(2,66),a=n.slice(66),!x.enableOneKey){e.next=12;break}return e.next=7,x.getNonce(o,a,r);case 7:u=e.sent,s=u.nonce,i=new v.a(s||"0",16),e.next=15;break;case 12:return e.next=14,x.getMetadata({pub_key_X:o,pub_key_Y:a});case 14:i=e.sent;case 15:return S.debug("> torus.js/retrieveShares",{privKey:r.toString(16),metadataNonce:i.toString(16)}),r=r.add(i).umod(x.ec.curve.n),c=x.generateAddressFromPrivKey(r),S.debug("> torus.js/retrieveShares",{ethAddress:c,privKey:r.toString(16)}),e.abrupt("return",{ethAddress:c,privKey:r.toString("hex",64),metadataNonce:i});case 20:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 11:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n,o){return u.apply(this,arguments)})},{key:"getMetadata",value:(a=s()(b.a.mark((function e(t,r){var n;return b.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,"/get"),t,r,{useAPIKey:!0});case 3:if((n=e.sent)&&n.message){e.next=6;break}return e.abrupt("return",new v.a(0));case 6:return e.abrupt("return",new v.a(n.message,16));case 9:return e.prev=9,e.t0=e.catch(0),S.error("get metadata error",e.t0),e.abrupt("return",new v.a(0));case 13:case"end":return e.stop()}}),e,this,[[0,9]])}))),function(e,t){return a.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(~~(this.serverTimeOffset+Date.now()/1e3)).toString(16)},o=r.sign(Object(w.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(o.r.toString(16,64)+o.s.toString(16,64)+new v.a(o.v).toString(16,2),"hex").toString("base64")}}},{key:"setMetadata",value:(o=s()(b.a.mark((function e(t,r){var n;return b.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 o.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 o=new v.a(1),a=new v.a(1),i=0;i<e.length;i+=1)if(n!==i){o=(o=o.mul(t[i].neg())).umod(this.ec.curve.n);var u=t[n].sub(t[i]);u=u.umod(this.ec.curve.n),a=a.mul(u).umod(this.ec.curve.n)}var s=o.mul(a.invm(this.ec.curve.n)).umod(this.ec.curve.n);s=s.mul(e[n]).umod(this.ec.curve.n),r=r.add(s)}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(w.keccak256)(Buffer.from(t,"hex")).slice(26));return Object(w.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(w.keccak256)(Buffer.from(r,"hex")).slice(26));return Object(w.toChecksumAddress)(n)}},{key:"getPublicAddress",value:(n=s()(b.a.mark((function e(t,r,n){var o,a,i,u,s,c,f,l,p,h,d,g,y,m,k,x,w,O,P,j,_=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.verifier,a=n.verifierId,i=_.length>3&&void 0!==_[3]&&_[3],S.debug("> torus.js/getPublicAddress",{endpoints:t,torusNodePubs:r,verifier:o,verifierId:a,isExtended:i}),s=!1,e.next=6,U(t,o,a);case 6:if(e.t0=e.sent,e.t0){e.next=9;break}e.t0={};case 9:if(c=e.t0,f=c.keyResult,!(l=c.errorResult)||!JSON.stringify(l).includes("Verifier + VerifierID has not yet been assigned")){e.next=25;break}return e.next=15,L(t,r,void 0,void 0,o,a);case 15:return e.next=17,V(t,o,a,1e3);case 17:if(e.t1=e.sent,e.t1){e.next=20;break}e.t1={};case 20:p=e.t1,u=p.keyResult,s=!0,e.next=30;break;case 25:if(!f){e.next=29;break}u=f,e.next=30;break;case 29:throw new Error("node results do not match at first lookup ".concat(JSON.stringify(f||{}),", ").concat(JSON.stringify(l||{})));case 30:if(S.debug("> torus.js/getPublicAddress",{finalKeyResult:u,isNewKey:s}),!u){e.next=72;break}if(d=u.keys[0],g=d.pub_key_X,y=d.pub_key_Y,!this.enableOneKey){e.next=60;break}return e.prev=34,e.next=38,this.getOrSetNonce(g,y,void 0,!s);case 38:P=e.sent,m=P.typeOfUser,k=P.nonce,x=P.pubNonce,O=P.upgraded,k=new v.a(k||"0",16),e.next=49;break;case 46:throw e.prev=46,e.t2=e.catch(34),new H;case 49:if("v1"!==m){e.next=53;break}w=this.ec.keyFromPublic({x:g.toString(16),y:y.toString(16)}).getPublic().add(this.ec.keyFromPrivate(k.toString(16)).getPublic()),e.next=58;break;case 53:if("v2"!==m){e.next=57;break}w=O?this.ec.keyFromPublic({x:g.toString(16),y:y.toString(16)}).getPublic():this.ec.keyFromPublic({x:g.toString(16),y:y.toString(16)}).getPublic().add(this.ec.keyFromPublic({x:x.x,y:x.y}).getPublic()),e.next=58;break;case 57:throw new Error("getOrSetNonce should always return typeOfUser.");case 58:e.next=65;break;case 60:return m="v1",e.next=63,this.getMetadata({pub_key_X:g,pub_key_Y:y});case 63:k=e.sent,w=this.ec.keyFromPublic({x:g.toString(16),y:y.toString(16)}).getPublic().add(this.ec.keyFromPrivate(k.toString(16)).getPublic());case 65:if(g=w.getX().toString(16),y=w.getY().toString(16),j=this.generateAddressFromPubKey(w.getX(),w.getY()),S.debug("> torus.js/getPublicAddress",{X:g,Y:y,address:j,typeOfUser:m,nonce:null===(h=k)||void 0===h?void 0:h.toString(16),pubNonce:x}),i){e.next=71;break}return e.abrupt("return",j);case 71:return e.abrupt("return",{typeOfUser:m,address:j,X:g,Y:y,metadataNonce:k,pubNonce:x});case 72:throw new Error("node results do not match at final lookup ".concat(JSON.stringify(f||{}),", ").concat(JSON.stringify(l||{})));case 73:case"end":return e.stop()}}),e,this,[[34,46]])}))),function(e,t,r){return n.apply(this,arguments)})},{key:"getOrSetNonce",value:(r=s()(b.a.mark((function e(t,r,n){var o,a,i,u=arguments;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=u.length>3&&void 0!==u[3]&&u[3],i=o?"getNonce":"getOrSetNonce",a=n?this.generateMetadataParams(i,n):{pub_key_X:t,pub_key_Y:r,set_data:{data:i}},e.abrupt("return",Object(g.post)("".concat(this.metadataHost,"/get_or_set_nonce"),a,void 0,{useAPIKey:!0}));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"getNonce",value:(t=s()(b.a.mark((function e(t,r,n){return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getOrSetNonce(t,r,n,!0));case 1:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})},{key:"getPostboxKeyFrom1OutOf1",value:function(e,t){var r=new v.a(e,16),n=new v.a(t,16);return r.sub(n).umod(this.ec.curve.n).toString("hex")}}],[{key:"enableLogging",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e?S.enableAll():S.disableAll()}},{key:"setAPIKey",value:function(e){Object(g.setAPIKey)(e)}},{key:"setEmbedHost",value:function(e){Object(g.setEmbedHost)(e)}},{key:"isGetOrSetNonceError",value:function(e){return e instanceof H}}]),e}();t.default=z}]);
//# sourceMappingURL=torusUtils.cjs.js.map

@@ -52,3 +52,3 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';

return SomeError;
return _createClass(SomeError);
}( /*#__PURE__*/_wrapNativeSuper(Error));

@@ -119,5 +119,5 @@ var Some = function Some(promises, predicate) {

function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

@@ -138,3 +138,3 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

return GetOrSetNonceError;
return _createClass(GetOrSetNonceError);
}( /*#__PURE__*/_wrapNativeSuper(Error));

@@ -250,3 +250,3 @@ var kCombinations = function kCombinations(s, k) {

var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(endpoints, torusNodePubs, lastPoint, firstPoint, verifier, verifierId) {
var nodeNum, initialPoint, data, signedData;
var nodeNum, initialPoint, data, signedData, acceptedErrorMsgs;
return _regeneratorRuntime.wrap(function _callee2$(_context2) {

@@ -299,5 +299,20 @@ while (1) {

log.error(_context2.t0);
acceptedErrorMsgs = [// Slow node
'Timed out', // Happens when the node is not reachable (dns issue etc)
'TypeError: Failed to fetch', // All except iOS and Firefox
'TypeError: cancelled', // iOS
'TypeError: NetworkError when attempting to fetch resource.' // Firefox
];
if (!acceptedErrorMsgs.includes(_context2.t0.message)) {
_context2.next = 18;
break;
}
return _context2.abrupt("return", keyAssign(endpoints, torusNodePubs, nodeNum + 1, initialPoint, verifier, verifierId));
case 16:
case 18:
throw new Error("Sorry, torus network that powers web3auth is currently very busy.\n We will generate your key in time. Pls try again later. \n\n ".concat(_context2.t0.message || ''));
case 19:
case "end":

@@ -315,5 +330,5 @@ return _context2.stop();

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
// of Torus nodes to handle malicious node responses

@@ -320,0 +335,0 @@

{
"name": "@toruslabs/torus.js",
"version": "4.2.3",
"version": "4.2.4",
"description": "Handle communication with torus nodes",

@@ -27,3 +27,3 @@ "main": "dist/torusUtils.cjs.js",

"@toruslabs/eccrypto": "^1.1.8",
"@toruslabs/http-helpers": "^2.1.1",
"@toruslabs/http-helpers": "^2.1.4",
"bn.js": "^5.2.0",

@@ -36,11 +36,11 @@ "elliptic": "^6.5.4",

"devDependencies": {
"@babel/cli": "^7.16.0",
"@babel/core": "^7.16.0",
"@babel/eslint-parser": "^7.16.3",
"@babel/eslint-plugin": "^7.14.5",
"@babel/plugin-proposal-object-rest-spread": "^7.16.0",
"@babel/plugin-transform-runtime": "^7.16.4",
"@babel/preset-env": "^7.16.4",
"@babel/register": "^7.16.0",
"@babel/runtime-corejs3": "^7.16.3",
"@babel/cli": "^7.16.8",
"@babel/core": "^7.16.7",
"@babel/eslint-parser": "^7.16.5",
"@babel/eslint-plugin": "^7.16.5",
"@babel/plugin-proposal-object-rest-spread": "^7.16.7",
"@babel/plugin-transform-runtime": "^7.16.8",
"@babel/preset-env": "^7.16.8",
"@babel/register": "^7.16.9",
"@babel/runtime-corejs3": "^7.16.8",
"@rollup/plugin-babel": "^5.3.0",

@@ -53,13 +53,13 @@ "@toruslabs/fetch-node-details": "^4.0.2",

"cross-env": "^7.0.3",
"dotenv": "^10.0.0",
"eslint": "^8.3.0",
"dotenv": "^12.0.4",
"eslint": "^8.7.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.3.0",
"eslint-config-standard": "^16.0.3",
"eslint-config-standard": "^17.0.0-0",
"eslint-plugin-chai-expect": "^3.0.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-mocha": "^9.0.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-mocha": "^10.0.3",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-promise": "^5.2.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-simple-import-sort": "^7.0.0",

@@ -70,9 +70,9 @@ "eslint-webpack-plugin": "^2.5.4",

"jsonwebtoken": "^8.5.1",
"lint-staged": "^12.1.2",
"mocha": "^9.1.3",
"lint-staged": "^12.1.7",
"mocha": "^9.1.4",
"node-fetch": "^2.6.1",
"parallel-webpack": "^2.6.0",
"prettier": "^2.5.0",
"prettier": "^2.5.1",
"rimraf": "^3.0.2",
"rollup": "^2.60.2",
"rollup": "^2.64.0",
"rollup-plugin-sourcemaps": "^0.6.3",

@@ -79,0 +79,0 @@ "webpack": "^4.46.0",

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

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

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