Socket
Socket
Sign inDemoInstall

@silencelaboratories/walletprovider-sdk

Package Overview
Dependencies
Maintainers
0
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@silencelaboratories/walletprovider-sdk - npm Package Compare versions

Comparing version 0.0.10 to 0.1.0

2

dist/index.js

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

import{toHex as N8} from"viem";function m(Q){return Q.message!==void 0}var V8=1,U8=2;class C{t;n;key_label;metadata;constructor({t:Q,n:Z,key_label:X,permissions:$,ephPK:Y}){if(this.t=Q,this.n=Z,this.key_label=X,this.metadata=[],$)this.metadata.push({tag:V8,value:$});if(Y)this.metadata.push({tag:U8,value:Y})}}class o{authModule;threshold;totalNodes;wp_client;constructor(Q,Z,X,$){if(Z===0)throw new Error("Threshold cannot be 0");this.threshold=Z,this.totalNodes=X,this.authModule=$,this.wp_client=Q}async authenticateAndCreateKey(Q,Z){try{const X=new C({t:this.threshold,n:this.totalNodes,permissions:Z,ephPK:N8(Q)});console.log("Generated Payload:",X);const $=(z)=>this.authModule.authenticate({setup:X,challenge:z}),Y=await this.wp_client.startKeygen({setup:X,signer:$});return console.log("Keygen response:",Y),Y}catch(X){throw console.error(X),X}}async authenticateAndSign(Q,Z){const X={t:this.threshold,key_id:Q,message:Z},$=(z)=>this.authModule.authenticate({setup:X,challenge:z}),Y=await this.wp_client.startSigngen({setup:X,signer:$});return console.log("Sign response:",Y),Y}}import{toHex as H} from"viem";import*as E from"@noble/ed25519";var R8=function(Q,...Z){if(!(Q instanceof Uint8Array))throw new Error("Expected Uint8Array");if(Z.length>0&&!Z.includes(Q.length))throw new Error(`Expected Uint8Array of length ${Z}, not of length=${Q.length}`)};var d=function(Q,Z=!0){if(Q.destroyed)throw new Error("Hash instance has been destroyed");if(Z&&Q.finished)throw new Error("Hash#digest() has already been called")},h=function(Q,Z){R8(Q);const X=Z.outputLen;if(Q.length<X)throw new Error(`digestInto() expects output buffer of length at least ${X}`)};function O8(Q){if(typeof Q!=="string")throw new Error(`utf8ToBytes expected string, got ${typeof Q}`);return new Uint8Array((new TextEncoder()).encode(Q))}function c(Q){if(typeof Q==="string")Q=O8(Q);if(!x8(Q))throw new Error(`expected Uint8Array, got ${typeof Q}`);return Q}function a(Q){const Z=($)=>Q().update(c($)).digest(),X=Q();return Z.outputLen=X.outputLen,Z.blockLen=X.blockLen,Z.create=()=>Q(),Z}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var x8=(Q)=>Q instanceof Uint8Array;var y=(Q)=>new DataView(Q.buffer,Q.byteOffset,Q.byteLength);var T8=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!T8)throw new Error("Non little-endian hardware is not supported");class p{clone(){return this._cloneInto()}}var l8={}.toString;var F8=function(Q,Z,X,$){if(typeof Q.setBigUint64==="function")return Q.setBigUint64(Z,X,$);const Y=BigInt(32),z=BigInt(4294967295),q=Number(X>>Y&z),N=Number(X&z),R=$?4:0,O=$?0:4;Q.setUint32(Z+R,q,$),Q.setUint32(Z+O,N,$)};class u extends p{constructor(Q,Z,X,$){super();this.blockLen=Q,this.outputLen=Z,this.padOffset=X,this.isLE=$,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(Q),this.view=y(this.buffer)}update(Q){d(this);const{view:Z,buffer:X,blockLen:$}=this;Q=c(Q);const Y=Q.length;for(let z=0;z<Y;){const q=Math.min($-this.pos,Y-z);if(q===$){const N=y(Q);for(;$<=Y-z;z+=$)this.process(N,z);continue}if(X.set(Q.subarray(z,z+q),this.pos),this.pos+=q,z+=q,this.pos===$)this.process(Z,0),this.pos=0}return this.length+=Q.length,this.roundClean(),this}digestInto(Q){d(this),h(Q,this),this.finished=!0;const{buffer:Z,view:X,blockLen:$,isLE:Y}=this;let{pos:z}=this;if(Z[z++]=128,this.buffer.subarray(z).fill(0),this.padOffset>$-z)this.process(X,0),z=0;for(let V=z;V<$;V++)Z[V]=0;F8(X,$-8,BigInt(this.length*8),Y),this.process(X,0);const q=y(Q),N=this.outputLen;if(N%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const R=N/4,O=this.get();if(R>O.length)throw new Error("_sha2: outputLen bigger than state");for(let V=0;V<R;V++)q.setUint32(4*V,O[V],Y)}digest(){const{buffer:Q,outputLen:Z}=this;this.digestInto(Q);const X=Q.slice(0,Z);return this.destroy(),X}_cloneInto(Q){Q||(Q=new this.constructor),Q.set(...this.get());const{blockLen:Z,buffer:X,length:$,finished:Y,destroyed:z,pos:q}=this;if(Q.length=$,Q.pos=q,Q.finished=Y,Q.destroyed=z,$%Z)Q.buffer.set(X);return Q}}var l=function(Q,Z=!1){if(Z)return{h:Number(Q&_),l:Number(Q>>n&_)};return{h:Number(Q>>n&_)|0,l:Number(Q&_)|0}},G8=function(Q,Z=!1){let X=new Uint32Array(Q.length),$=new Uint32Array(Q.length);for(let Y=0;Y<Q.length;Y++){const{h:z,l:q}=l(Q[Y],Z);[X[Y],$[Y]]=[z,q]}return[X,$]},L8=function(Q,Z,X,$){const Y=(Z>>>0)+($>>>0);return{h:Q+X+(Y/4294967296|0)|0,l:Y|0}},_=BigInt(4294967295),n=BigInt(32),j8=(Q,Z)=>BigInt(Q>>>0)<<n|BigInt(Z>>>0),I8=(Q,Z,X)=>Q>>>X,M8=(Q,Z,X)=>Q<<32-X|Z>>>X,D8=(Q,Z,X)=>Q>>>X|Z<<32-X,W8=(Q,Z,X)=>Q<<32-X|Z>>>X,k8=(Q,Z,X)=>Q<<64-X|Z>>>X-32,v8=(Q,Z,X)=>Q>>>X-32|Z<<64-X,P8=(Q,Z)=>Z,w8=(Q,Z)=>Q,K8=(Q,Z,X)=>Q<<X|Z>>>32-X,B8=(Q,Z,X)=>Z<<X|Q>>>32-X,E8=(Q,Z,X)=>Z<<X-32|Q>>>64-X,f8=(Q,Z,X)=>Q<<X-32|Z>>>64-X,C8=(Q,Z,X)=>(Q>>>0)+(Z>>>0)+(X>>>0),m8=(Q,Z,X,$)=>Z+X+$+(Q/4294967296|0)|0,y8=(Q,Z,X,$)=>(Q>>>0)+(Z>>>0)+(X>>>0)+($>>>0),_8=(Q,Z,X,$,Y)=>Z+X+$+Y+(Q/4294967296|0)|0,H8=(Q,Z,X,$,Y)=>(Q>>>0)+(Z>>>0)+(X>>>0)+($>>>0)+(Y>>>0),b8=(Q,Z,X,$,Y,z)=>Z+X+$+Y+z+(Q/4294967296|0)|0;var A8={fromBig:l,split:G8,toBig:j8,shrSH:I8,shrSL:M8,rotrSH:D8,rotrSL:W8,rotrBH:k8,rotrBL:v8,rotr32H:P8,rotr32L:w8,rotlSH:K8,rotlSL:B8,rotlBH:E8,rotlBL:f8,add:L8,add3L:C8,add3H:m8,add4L:y8,add4H:_8,add5H:b8,add5L:H8},J=A8;var[g8,S8]=(()=>J.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((Q)=>BigInt(Q))))(),v=new Uint32Array(80),P=new Uint32Array(80);class s extends u{constructor(){super(128,64,16,!1);this.Ah=1779033703|0,this.Al=4089235720|0,this.Bh=3144134277|0,this.Bl=2227873595|0,this.Ch=1013904242|0,this.Cl=4271175723|0,this.Dh=2773480762|0,this.Dl=1595750129|0,this.Eh=1359893119|0,this.El=2917565137|0,this.Fh=2600822924|0,this.Fl=725511199|0,this.Gh=528734635|0,this.Gl=4215389547|0,this.Hh=1541459225|0,this.Hl=327033209|0}get(){const{Ah:Q,Al:Z,Bh:X,Bl:$,Ch:Y,Cl:z,Dh:q,Dl:N,Eh:R,El:O,Fh:V,Fl:T,Gh:F,Gl:G,Hh:j,Hl:I}=this;return[Q,Z,X,$,Y,z,q,N,R,O,V,T,F,G,j,I]}set(Q,Z,X,$,Y,z,q,N,R,O,V,T,F,G,j,I){this.Ah=Q|0,this.Al=Z|0,this.Bh=X|0,this.Bl=$|0,this.Ch=Y|0,this.Cl=z|0,this.Dh=q|0,this.Dl=N|0,this.Eh=R|0,this.El=O|0,this.Fh=V|0,this.Fl=T|0,this.Gh=F|0,this.Gl=G|0,this.Hh=j|0,this.Hl=I|0}process(Q,Z){for(let U=0;U<16;U++,Z+=4)v[U]=Q.getUint32(Z),P[U]=Q.getUint32(Z+=4);for(let U=16;U<80;U++){const W=v[U-15]|0,k=P[U-15]|0,b=J.rotrSH(W,k,1)^J.rotrSH(W,k,8)^J.shrSH(W,k,7),A=J.rotrSL(W,k,1)^J.rotrSL(W,k,8)^J.shrSL(W,k,7),M=v[U-2]|0,D=P[U-2]|0,f=J.rotrSH(M,D,19)^J.rotrBH(M,D,61)^J.shrSH(M,D,6),g=J.rotrSL(M,D,19)^J.rotrBL(M,D,61)^J.shrSL(M,D,6),L=J.add4L(A,g,P[U-7],P[U-16]),S=J.add4H(L,b,f,v[U-7],v[U-16]);v[U]=S|0,P[U]=L|0}let{Ah:X,Al:$,Bh:Y,Bl:z,Ch:q,Cl:N,Dh:R,Dl:O,Eh:V,El:T,Fh:F,Fl:G,Gh:j,Gl:I,Hh:K,Hl:B}=this;for(let U=0;U<80;U++){const W=J.rotrSH(V,T,14)^J.rotrSH(V,T,18)^J.rotrBH(V,T,41),k=J.rotrSL(V,T,14)^J.rotrSL(V,T,18)^J.rotrBL(V,T,41),b=V&F^~V&j,A=T&G^~T&I,M=J.add5L(B,k,A,S8[U],P[U]),D=J.add5H(M,K,W,b,g8[U],v[U]),f=M|0,g=J.rotrSH(X,$,28)^J.rotrBH(X,$,34)^J.rotrBH(X,$,39),L=J.rotrSL(X,$,28)^J.rotrBL(X,$,34)^J.rotrBL(X,$,39),S=X&Y^X&q^Y&q,q8=$&z^$&N^z&N;K=j|0,B=I|0,j=F|0,I=G|0,F=V|0,G=T|0,{h:V,l:T}=J.add(R|0,O|0,D|0,f|0),R=q|0,O=N|0,q=Y|0,N=z|0,Y=X|0,z=$|0;const r=J.add3L(f,L,q8);X=J.add3H(r,D,g,S),$=r|0}({h:X,l:$}=J.add(this.Ah|0,this.Al|0,X|0,$|0)),{h:Y,l:z}=J.add(this.Bh|0,this.Bl|0,Y|0,z|0),{h:q,l:N}=J.add(this.Ch|0,this.Cl|0,q|0,N|0),{h:R,l:O}=J.add(this.Dh|0,this.Dl|0,R|0,O|0),{h:V,l:T}=J.add(this.Eh|0,this.El|0,V|0,T|0),{h:F,l:G}=J.add(this.Fh|0,this.Fl|0,F|0,G|0),{h:j,l:I}=J.add(this.Gh|0,this.Gl|0,j|0,I|0),{h:K,l:B}=J.add(this.Hh|0,this.Hl|0,K|0,B|0),this.set(X,$,Y,z,q,N,R,O,V,T,F,G,j,I,K,B)}roundClean(){v.fill(0),P.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}var t=a(()=>new s);var n8=function(Q,Z,X){console.log("EPHKEY",X);const $=new C({t:Q.t,n:Q.n,key_label:Q.key_label,permissions:void 0,ephPK:H(X)});return console.log("SETUP_NO_PERM",$),{types:{EIP712Domain:u8,...c8},domain:p8,primaryType:"Request",message:{setup:$,challenge:Z}}};async function e({setup:Q,user_id:Z,challenge:X,browserWallet:$,ephPK:Y,lifetime:z}){if(m(Q))throw new Error("EOA auth cannot be used for Sign requests, please use EphAuth instead");const q=n8(Q,X,Y);console.log("typed request:"),console.log(JSON.stringify(q,void 0,4));const N=await $.signTypedData(Z,q);console.log("User signed a request",N);const R={eoa:Z,ephPK:H(Y),expiry:Math.floor(Date.now()/1000)+z};return{credentials:{credentials:JSON.stringify(R),method:"eoa",id:Z},signature:N}}async function Q8({setup:Q,user_id:Z,challenge:X,ephSK:$,ephPK:Y}){const z={setup:Q,challenge:X},N=H(await E.signAsync((new TextEncoder()).encode(JSON.stringify(z)),$));console.log("AUTH SIGNATURE by eph key",N),console.log("User signed a request",N);const R={eoa:Z,ephPK:H(Y),expiry:0};return{credentials:{credentials:JSON.stringify(R),method:"ephemeral",id:Z},signature:N}}E.etc.sha512Sync=(...Q)=>t(E.etc.concatBytes(...Q));var d8=[{name:"tag",type:"uint16"},{name:"value",type:"string"}],c8={Request:[{name:"setup",type:"KeygenSetupOpts"},{name:"challenge",type:"string"}],KeygenSetupOpts:[{name:"t",type:"uint32"},{name:"n",type:"uint32"},{name:"metadata",type:"TaggedValue[]"}],TaggedValue:d8},p8={name:"SilentShard authentication",version:"0.1.0"},u8=[{name:"name",type:"string"},{name:"version",type:"string"}];import*as X8 from"@noble/ed25519";var i;(function(X){X[X["EOA"]=0]="EOA";X[X["NONE"]=1]="NONE"})(i||(i={}));class Z8{userId;browserWallet;ephPK;lifetime;constructor(Q,Z,X,$=3600){this.userId=Q,this.browserWallet=Z,this.ephPK=X,this.lifetime=$}async authenticate({setup:Q,challenge:Z}){return await e({setup:Q,user_id:this.userId,challenge:Z,browserWallet:this.browserWallet,ephPK:this.ephPK,lifetime:this.lifetime})}}class $8{userId;ephSK;ephPK;constructor(Q,Z){this.userId=Q,this.ephSK=Z,this.ephPK=X8.getPublicKey(this.ephSK)}async authenticate({setup:Q,challenge:Z}){return await Q8({setup:Q,user_id:this.userId,challenge:Z,ephSK:this.ephSK,ephPK:this.ephPK})}}var Y8=(Q)=>btoa(String.fromCodePoint.apply(null,Array.from(Q)));var x;(function(Y){Y[Y["initiated"]=0]="initiated";Y[Y["waitingForSign"]=1]="waitingForSign";Y[Y["waitingForResult"]=2]="waitingForResult";Y[Y["finished"]=3]="finished"})(x||(x={}));class z8{walletProviderId;walletProviderUrl;constructor(Q){this.walletProviderId=Q.walletProviderId,this.walletProviderUrl=Q.walletProviderUrl}getWalletId(){return this.walletProviderId}async startKeygen({setup:Q,signer:Z}){return this.connect(Q,Z).then((X)=>{const $=X.split(":"),Y=$[1].split("=")[1],z=$[0].split("=")[1];return{publicKey:Y,keyId:z}})}async startSigngen({setup:Q,signer:Z}){return this.connect(Q,Z).then((X)=>{const $=X.split(":"),Y=$[0].split("=")[1],z=$[1].split("=")[1];return{sign:Y,recid:parseInt(z)}})}connect(Q,Z){return new Promise((X,$)=>{let Y=x.initiated,z;if(m(Q))z="signgen",Q.message=Y8((new TextEncoder()).encode(Q.message));else z="keygen";const q=new WebSocket(`${this.walletProviderUrl}/${z}`);q.addEventListener("open",(N)=>{switch(console.log(`Connection opened in state ${Y} with event ${JSON.stringify(N,void 0,"\t")}`),Y){case x.initiated:Y=x.waitingForSign,console.log(`Sending setup: ${JSON.stringify(Q)}`),q.send(JSON.stringify(Q));break;case x.waitingForSign:case x.waitingForResult:Y=x.finished,$("Incorrect protocol state");break;case x.finished:break}}),q.addEventListener("message",async(N)=>{switch(console.log(`Connection message in state ${Y} with event ${JSON.stringify(N,void 0,"\t")}`),Y){case x.initiated:Y=x.finished,$("Incorrect protocol state");break;case x.waitingForSign:{Y=x.waitingForResult;const R=await Z(N.data);console.log(`Sending signature: ${JSON.stringify(R)}`),q.send(JSON.stringify(R));break}case x.waitingForResult:Y=x.finished,q.close(),X(N.data);break;case x.finished:break}}),q.addEventListener("error",(N)=>{if(console.log(`Connection error in state ${Y} with event ${JSON.stringify(N,void 0,"\t")}`),Y!=x.finished)Y=x.finished,$("Incorrect protocol state")}),q.addEventListener("close",(N)=>{if(console.log(`Connection closed in state ${Y} with event ${JSON.stringify(N,void 0,"\t")}`),Y!=x.finished)Y=x.finished,$("Incorrect protocol state")})})}}import*as w from"viem";import{publicKeyToAddress as J8,toAccount as D0} from"viem/accounts";import{ProjectivePoint as i8} from"@noble/secp256k1";function r8(Q){if(Q.startsWith("0x"))Q=Q.slice(2);if(Q.startsWith("04"))return J8(`0x${Q} `);else if(Q.startsWith("02")||Q.startsWith("03")){const Z=i8.fromHex(Q).toHex(!1);return J8(`0x${Z}`)}else throw new Error("Invalid public key")}export{r8 as computeAddress,z8 as WalletProviderServiceClient,o as NetworkSigner,$8 as EphAuth,Z8 as EOAAuth,i as AuthMethod};
import{toHex as R} from"viem";function Y(x){return x.message!==void 0}var j=1,E=2;class H{t;n;key_label;metadata;constructor({t:x,n:F,key_label:B,permissions:J,ephPK:U}){if(this.t=x,this.n=F,this.key_label=B,this.metadata=[],J)this.metadata.push({tag:j,value:J});if(U)this.metadata.push({tag:E,value:U})}}class V{authModule;threshold;totalNodes;wp_client;constructor(x,F,B,J){if(F===0)throw new Error("Threshold cannot be 0");this.threshold=F,this.totalNodes=B,this.authModule=J,this.wp_client=x}async authenticateAndCreateKey(x,F){try{const B=new H({t:this.threshold,n:this.totalNodes,permissions:F,ephPK:R(x)});console.log("Generated Payload:",B);const J=(X)=>this.authModule.authenticate({setup:B,challenge:X}),U=await this.wp_client.startKeygen({setup:B,signer:J});return console.log("Keygen response:",U),U}catch(B){throw console.error(B),B}}async authenticateAndSign(x,F){const B={t:this.threshold,key_id:x,message:F},J=(X)=>this.authModule.authenticate({setup:B,challenge:X}),U=await this.wp_client.startSigngen({setup:B,signer:J});return console.log("Sign response:",U),U}}import{toHex as z} from"viem";import{ed25519 as f} from"@noble/curves/ed25519";var k=function(x,F,B){console.log("EPHKEY",B);const J=new H({t:x.t,n:x.n,key_label:x.key_label,permissions:void 0,ephPK:z(B)});return console.log("SETUP_NO_PERM",J),{types:{EIP712Domain:_,...w},domain:I,primaryType:"Request",message:{setup:J,challenge:F}}};async function D({setup:x,user_id:F,challenge:B,browserWallet:J,ephPK:U,lifetime:X}){if(Y(x))throw new Error("EOA auth cannot be used for Sign requests, please use EphAuth instead");const Z=k(x,B,U);console.log("typed request:"),console.log(JSON.stringify(Z,void 0,4));const Q=await J.signTypedData(F,Z);console.log("User signed a request",Q);const $={eoa:F,ephPK:z(U),expiry:Math.floor(Date.now()/1000)+X};return{credentials:{credentials:JSON.stringify($),method:"eoa",id:F},signature:Q}}async function N({setup:x,user_id:F,challenge:B,ephSK:J,ephPK:U}){const X={setup:x,challenge:B},Z=new TextEncoder,Q=z(f.sign(Z.encode(JSON.stringify(X)),J));console.log("AUTH SIGNATURE by eph key",Q),console.log("User signed a request",Q);const $={eoa:F,ephPK:z(U),expiry:0};return{credentials:{credentials:JSON.stringify($),method:"ephemeral",id:F},signature:Q}}var M=[{name:"tag",type:"uint16"},{name:"value",type:"string"}],w={Request:[{name:"setup",type:"KeygenSetupOpts"},{name:"challenge",type:"string"}],KeygenSetupOpts:[{name:"t",type:"uint32"},{name:"n",type:"uint32"},{name:"metadata",type:"TaggedValue[]"}],TaggedValue:M},I={name:"SilentShard authentication",version:"0.1.0"},_=[{name:"name",type:"string"},{name:"version",type:"string"}];import{ed25519 as v} from"@noble/curves/ed25519";var q;(function(B){B[B["EOA"]=0]="EOA";B[B["NONE"]=1]="NONE"})(q||(q={}));class W{userId;browserWallet;ephPK;lifetime;constructor(x,F,B,J=3600){this.userId=x,this.browserWallet=F,this.ephPK=B,this.lifetime=J}async authenticate({setup:x,challenge:F}){return await D({setup:x,user_id:this.userId,challenge:F,browserWallet:this.browserWallet,ephPK:this.ephPK,lifetime:this.lifetime})}}class C{userId;ephSK;ephPK;constructor(x,F){this.userId=x,this.ephSK=F,this.ephPK=v.getPublicKey(this.ephSK)}async authenticate({setup:x,challenge:F}){return await N({setup:x,user_id:this.userId,challenge:F,ephSK:this.ephSK,ephPK:this.ephPK})}}var T=(x)=>btoa(String.fromCodePoint.apply(null,Array.from(x)));var L;(function(U){U[U["initiated"]=0]="initiated";U[U["waitingForSign"]=1]="waitingForSign";U[U["waitingForResult"]=2]="waitingForResult";U[U["finished"]=3]="finished"})(L||(L={}));class O{walletProviderId;walletProviderUrl;constructor(x){this.walletProviderId=x.walletProviderId,this.walletProviderUrl=x.walletProviderUrl}getWalletId(){return this.walletProviderId}async startKeygen({setup:x,signer:F}){return this.connect(x,F).then((B)=>{const J=B.split(":"),U=J[1].split("=")[1],X=J[0].split("=")[1];return{publicKey:U,keyId:X}})}async startSigngen({setup:x,signer:F}){return this.connect(x,F).then((B)=>{const J=B.split(":"),U=J[0].split("=")[1],X=J[1].split("=")[1];return{sign:U,recid:parseInt(X)}})}connect(x,F){return new Promise((B,J)=>{let U=L.initiated,X;if(Y(x))X="signgen",x.message=T((new TextEncoder()).encode(x.message));else X="keygen";const Z=new WebSocket(`${this.walletProviderUrl}/${X}`);Z.addEventListener("open",(Q)=>{switch(console.log(`Connection opened in state ${U} with event ${JSON.stringify(Q,void 0,"\t")}`),U){case L.initiated:U=L.waitingForSign,console.log(`Sending setup: ${JSON.stringify(x)}`),Z.send(JSON.stringify(x));break;case L.waitingForSign:case L.waitingForResult:U=L.finished,J("Incorrect protocol state");break;case L.finished:break}}),Z.addEventListener("message",async(Q)=>{switch(console.log(`Connection message in state ${U} with event ${JSON.stringify(Q,void 0,"\t")}`),U){case L.initiated:U=L.finished,J("Incorrect protocol state");break;case L.waitingForSign:{U=L.waitingForResult;const $=await F(Q.data);console.log(`Sending signature: ${JSON.stringify($)}`),Z.send(JSON.stringify($));break}case L.waitingForResult:U=L.finished,Z.close(),B(Q.data);break;case L.finished:break}}),Z.addEventListener("error",(Q)=>{if(console.log(`Connection error in state ${U} with event ${JSON.stringify(Q,void 0,"\t")}`),U!=L.finished)U=L.finished,J("Incorrect protocol state")}),Z.addEventListener("close",(Q)=>{if(console.log(`Connection closed in state ${U} with event ${JSON.stringify(Q,void 0,"\t")}`),U!=L.finished)U=L.finished,J("Incorrect protocol state")})})}}import*as G from"viem";import{publicKeyToAddress as A,toAccount as t} from"viem/accounts";import{secp256k1 as b} from"@noble/curves/secp256k1";function m(x){if(x.startsWith("0x"))x=x.slice(2);if(x.startsWith("04"))return A(`0x${x} `);else if(x.startsWith("02")||x.startsWith("03")){const F=b.ProjectivePoint.fromHex(x).toHex(!1);return A(`0x${F}`)}else throw new Error("Invalid public key")}export{m as computeAddress,O as WalletProviderServiceClient,V as NetworkSigner,C as EphAuth,W as EOAAuth,q as AuthMethod};
{
"name": "@silencelaboratories/walletprovider-sdk",
"version": "0.0.10",
"version": "0.1.0",
"description": "Frontend SDK for Wallet Providers",

@@ -16,2 +16,3 @@ "main": "dist/index.js",

"build": "bun run scripts/build.mjs && bun run build:declaration",
"build:e2e": "bun run scripts/build.e2e.mjs && bun run build:declaration",
"build:declaration": "tsc -p . --emitDeclarationOnly",

@@ -35,6 +36,5 @@ "test": "bun test",

"dependencies": {
"@noble/ed25519": "^2.1.0",
"@noble/secp256k1": "^2.1.0",
"@noble/curves": "^1.4.2",
"viem": "^2.11.1"
}
}
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