@silencelaboratories/walletprovider-sdk 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,13 +1,20 @@
1
1
  # walletprovider-sdk
2
2
 
3
- # Documentation
4
-
5
- Please refer to [documentation](./docs/walletprovider-sdk.md)
3
+ The frontend library for Silent Network.
6
4
 
7
5
  # Demo
8
6
 
9
7
  Under the [demo](./demo) directory we provide the sample webpage that shows example usage of the library.
10
- In order to run it execute the following
8
+ In order to run it execute the following:
9
+
10
+ 1. Build the library
11
+
12
+ ```
13
+ bun install
14
+ bun run build
15
+ ```
16
+
17
+ 2. Run the demo
11
18
 
12
19
  ```
13
20
  cd demo
@@ -15,7 +22,107 @@ npm install
15
22
  npm run dev
16
23
  ```
17
24
 
18
- # Build
25
+ The demo fetches configuration from the `.env` file. We provided example `.env` [here](./demo/.env).
26
+
27
+ The demo communicates with [backend service](#the-backend). Run it before using the demo page.
28
+
29
+ # Using the library
30
+
31
+ The library is published on [npmjs](https://www.npmjs.com/package/@silencelaboratories/walletprovider-sdk) registry.
32
+
33
+ Install it in your project as usual:
34
+
35
+ ```
36
+ npm i @silencelaboratories/walletprovider-sdk
37
+ ```
38
+
39
+ ## The backend
40
+
41
+ The library communicates with backend service. The example implementation of such service is accessible [here](https://shipyard.rs/silencelaboratories/crates/wallet-provider-service). Please refer to backend documentation in order to run the service.
42
+
43
+ Frontend uses [WalletProviderServiceClient](./docs/walletprovider-sdk.walletproviderserviceclient.md) object in order to connect to the backend and send requests.
44
+
45
+ # Documentation
46
+
47
+ For description of classes, interfaces, types, please refer to [documentation](./docs/walletprovider-sdk.md).
48
+
49
+ ## Keygen
50
+
51
+ The full working example is in the [demo](./demo/src/routes/%2Bpage.svelte#L87).
52
+ The core object to use is the [NetworkSigner](./docs/walletprovider-sdk.networksigner.md).
53
+
54
+ It allows to generate keys and do signatures. In order to create, you need two other components. The [WalletProviderServiceClient](./docs/walletprovider-sdk.walletproviderserviceclient.md) that connects to the Backend part of the SDK, and the authentication module. Currently we provide EOA authentication via [EOAAuth](./docs/walletprovider-sdk.eoaauth.md).
55
+
56
+ Let's create the `NetworkSigner`
57
+
58
+ ```ts
59
+ const wpClient = await createWalletProviderService(clusterConfig);
60
+ // Authenticate using EOA
61
+ const eoaAuth = new EOAAuth(accountsFromBrowserWallet[0], new BrowserWallet());
62
+
63
+ // Create a new signer instance
64
+ const sdk = new NetworkSigner(wpClient, threshold, partiesNumber, eoaAuth);
65
+ ```
66
+
67
+ Now you can generate a key, using the [authenticateAndCreateKey](./docs/walletprovider-sdk.networksigner.authenticateandcreatekey.md) method. The method accepts optional permissions. No permissions means _allow all operations_.
68
+
69
+ ```ts
70
+ const permissions = {
71
+ permissions: [
72
+ {
73
+ type: 'erc20',
74
+ method: 'approve',
75
+ to: '0x1234567890123456789012345678901234567890',
76
+ args: {
77
+ spender: '0x1234567890123456789012345678901234567890',
78
+ value: 10000,
79
+ eq: '<',
80
+ },
81
+ },
82
+ ],
83
+ };
84
+
85
+ // Generate a new key
86
+ let resp: KeygenResponse = await sdk.authenticateAndCreateKey(JSON.stringify(permissions));
87
+ ```
88
+
89
+ Calling this method will cause to the Browser Wallet window to pop up, requesting the User to sign the request. After execution [KeygenResponse](./docs/walletprovider-sdk.keygenresponse.md) is returned.
90
+
91
+ The [KeygenResponse](./docs/walletprovider-sdk.keygenresponse.md) contains `keyId` and `publicKey`. The `publicKey` is the public part of the key generated by Silent Network. Use the `keyId` in subsequent calls to sign.
92
+
93
+ ## Signing
94
+
95
+ The full signing example is [here](./demo/src/routes/%2Bpage.svelte#L158).
96
+
97
+ Use the [NetworkSigner.authenticateAndSign](./docs/walletprovider-sdk.networksigner.authenticateandsign.md) method in order to generate a signature.
98
+
99
+ ```ts
100
+ let signMessage = JSON.stringify({
101
+ userOperation: {
102
+ sender: '0x8d4cb2540d993fe34c646299f1ab4af3012ff34c',
103
+ nonce: '0x7',
104
+ initCode: '',
105
+ callData: '0000189a...',
106
+ callGasLimit: '123130',
107
+ verificationGasLimit: '153427',
108
+ preVerificationGas: '66768',
109
+ maxFeePerGas: '',
110
+ maxPriorityFeePerGas: '',
111
+ paymasterAndData: '',
112
+ },
113
+ entryPointVersion: 'v0.6.0',
114
+ entryPointAddress: '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789',
115
+ chainId: 80002,
116
+ });
117
+
118
+ let resp = await sdk.authenticateAndSign(selectedKeyId, signMessage);
119
+ ```
120
+
121
+ The [SignResponse](./docs/walletprovider-sdk.signresponse.md) contains the signature `sign` and the recovery ID `recid`.
122
+
123
+ # Developing the library
124
+
125
+ Audience of this section are library developers.
19
126
 
20
127
  ## Bun runtime is required
21
128
 
@@ -33,6 +33,13 @@ export declare class EOAAuth implements AuthModule {
33
33
  /** An interface to the wallet, like MetaMask, that is used to sign the requests */
34
34
  browserWallet: IBrowserWallet;
35
35
  constructor(userId: string, browserWallet: IBrowserWallet);
36
+ /**
37
+ * Prepares a message to present on the Browser Wallet window and requests to sign it.
38
+ * @param setup - either Keygen or Sign setup options
39
+ * @param challenge - the challenge received from the backend
40
+ *
41
+ * @public
42
+ */
36
43
  authenticate({ setup, challenge, }: {
37
44
  setup: KeygenSetupOpts | SignSetupOpts;
38
45
  challenge: string;
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAwB,MAAM,qBAAqB,CAAC;AAE3E;;GAEG;AACH,oBAAY,UAAU;IACpB,oDAAoD;IACpD,GAAG,IAAA;IACH,wBAAwB;IACxB,IAAI,IAAA;CACL;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EACX,KAAK,EACL,SAAS,GACV,EAAE;QACD,KAAK,EAAE,eAAe,GAAG,aAAa,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,OAAQ,YAAW,UAAU;IACxC,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,aAAa,EAAE,cAAc,CAAC;gBAElB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc;IAKnD,YAAY,CAAC,EACjB,KAAK,EACL,SAAS,GACV,EAAE;QACD,KAAK,EAAE,eAAe,GAAG,aAAa,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQhC"}
1
+ {"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAwB,MAAM,qBAAqB,CAAC;AAE3E;;GAEG;AACH,oBAAY,UAAU;IACpB,oDAAoD;IACpD,GAAG,IAAA;IACH,wBAAwB;IACxB,IAAI,IAAA;CACL;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EACX,KAAK,EACL,SAAS,GACV,EAAE;QACD,KAAK,EAAE,eAAe,GAAG,aAAa,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,OAAQ,YAAW,UAAU;IACxC,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,aAAa,EAAE,cAAc,CAAC;gBAElB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc;IAKzD;;;;;;OAMG;IACG,YAAY,CAAC,EACjB,KAAK,EACL,SAAS,GACV,EAAE;QACD,KAAK,EAAE,eAAe,GAAG,aAAa,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQhC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { NetworkSigner, SignResponse, KeygenResponse } from './networkSigner.ts';
2
2
  export { AuthMethod, EOAAuth } from './authentication.ts';
3
3
  export type { IBrowserWallet, TypedData } from './EOAauthentication.ts';
4
- export type { IWalletProviderServiceClient } from './walletProviderServiceClientInterface.ts';
4
+ export type { ClientConfig, IWalletProviderServiceClient } from './walletProviderServiceClientInterface.ts';
5
5
  export { WalletProviderServiceClient } from './walletProviderServiceClient.ts';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExE,YAAY,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExE,YAAY,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC5G,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- function V(x){return x.message!==void 0}var K=1;class Z{t;n;key_label;metadata;constructor({t:x,n:H,key_label:B,permissions:F}){if(this.t=x,this.n=H,this.key_label=B,this.metadata=[],F)this.metadata.push([K,F])}}class ${authModule;threshold;totalNodes;wp_client;constructor(x,H,B,F){if(H===0)throw new Error("Threshold cannot be 0");this.threshold=H,this.totalNodes=B,this.authModule=F,this.wp_client=x}async authenticateAndCreateKey(x){try{const H=new Z({t:this.threshold,n:this.totalNodes,permissions:x});console.log("Generated Payload:",H);const B=(U)=>this.authModule.authenticate({setup:H,challenge:U}),F=await this.wp_client.startKeygen({setup:H,signer:B});return console.log("Keygen response:",F),F}catch(H){throw console.error(H),H}}async authenticateAndSign(x,H){const B={t:this.threshold,key_id:x,message:H},F=(J)=>this.authModule.authenticate({setup:B,challenge:J}),U=await this.wp_client.startSigngen({setup:B,signer:F});return console.log("Sign response:",U),U}}var E=function(x,H){const B={t:x.t,n:x.n,key_label:x.key_label,metadata:[]};return{types:{EIP712Domain:G,...y},domain:f,primaryType:"Request",message:{setup:B,challenge:H}}},W=function(x,H){return{types:{EIP712Domain:G,...A},domain:f,primaryType:"Request",message:{setup:x,challenge:H}}};async function T({setup:x,user_id:H,challenge:B,browserWallet:F}){let U;if(V(x))console.log("Creating Sign request"),U=W(x,B);else console.log("Creating Keygen request"),U=E(x,B);console.log("typed request:"),console.log(JSON.stringify(U,void 0,4));const J=await F.signTypedData(H,U);return console.log("User signed a request",J),{credentials:{credentials:H,method:"eoa",id:"id"},signature:J}}var N=[{name:"tag",type:"uint16"},{name:"value",type:"string"}],y={Request:[{name:"setup",type:"KeygenSetupOpts"},{name:"challenge",type:"string"}],KeygenSetupOpts:[{name:"t",type:"uint32"},{name:"n",type:"uint32"},{name:"metadata",type:"TaggedValue[]"}],TaggedValue:N},A={Request:[{name:"setup",type:"SignSetupOpts"},{name:"challenge",type:"string"}],SignSetupOpts:[{name:"t",type:"uint32"},{name:"key_id",type:"string"},{name:"message",type:"string"}]},f={name:"SilentShard authentication",version:"0.1.0"},G=[{name:"name",type:"string"},{name:"version",type:"string"}];var X;(function(B){B[B["EOA"]=0]="EOA";B[B["NONE"]=1]="NONE"})(X||(X={}));class D{userId;browserWallet;constructor(x,H){this.userId=x,this.browserWallet=H}async authenticate({setup:x,challenge:H}){return await T({setup:x,user_id:this.userId,challenge:H,browserWallet:this.browserWallet})}}var b=(x)=>btoa(String.fromCodePoint.apply(null,Array.from(x)));var z;(function(U){U[U["initiated"]=0]="initiated";U[U["waitingForSign"]=1]="waitingForSign";U[U["waitingForResult"]=2]="waitingForResult";U[U["finished"]=3]="finished"})(z||(z={}));class C{walletProviderId;walletProviderUrl;constructor(x){this.walletProviderId=x.walletProviderId,this.walletProviderUrl=x.walletProviderUrl}getWalletId(){return this.walletProviderId}async startKeygen({setup:x,signer:H}){return this.connect(x,H).then((B)=>{const F=B.split(":"),U=F[1].split("=")[1],J=F[0].split("=")[1];return{publicKey:U,keyId:J}})}async startSigngen({setup:x,signer:H}){return this.connect(x,H).then((B)=>{const F=B.split(":"),U=F[0].split("=")[1],J=F[1].split("=")[1];return{sign:U,recid:parseInt(J)}})}connect(x,H){return new Promise((B,F)=>{let U=z.initiated,J;if(V(x))J="signgen",x.message=b((new TextEncoder()).encode(x.message));else J="keygen";const Q=new WebSocket(`${this.walletProviderUrl}/${J}`);Q.addEventListener("open",(L)=>{switch(console.log(`Connection opened in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U){case z.initiated:U=z.waitingForSign,console.log(`Sending setup: ${JSON.stringify(x)}`),Q.send(JSON.stringify(x));break;case z.waitingForSign:case z.waitingForResult:U=z.finished,F("Incorrect protocol state");break;case z.finished:break}}),Q.addEventListener("message",async(L)=>{switch(console.log(`Connection message in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U){case z.initiated:U=z.finished,F("Incorrect protocol state");break;case z.waitingForSign:{U=z.waitingForResult;const Y=await H(L.data);console.log(`Sending signature: ${JSON.stringify(Y)}`),Q.send(JSON.stringify(Y));break}case z.waitingForResult:U=z.finished,Q.close(),B(L.data);break;case z.finished:break}}),Q.addEventListener("error",(L)=>{if(console.log(`Connection error in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U!=z.finished)U=z.finished,F("Incorrect protocol state")}),Q.addEventListener("close",(L)=>{if(console.log(`Connection closed in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U!=z.finished)U=z.finished,F("Incorrect protocol state")})})}}export{C as WalletProviderServiceClient,$ as NetworkSigner,D as EOAAuth,X as AuthMethod};
1
+ function V(x){return x.message!==void 0}var N=1;class Z{t;n;key_label;metadata;constructor({t:x,n:H,key_label:F,permissions:z}){if(this.t=x,this.n=H,this.key_label=F,this.metadata=[],z)this.metadata.push([N,z])}}class ${authModule;threshold;totalNodes;wp_client;constructor(x,H,F,z){if(H===0)throw new Error("Threshold cannot be 0");this.threshold=H,this.totalNodes=F,this.authModule=z,this.wp_client=x}async authenticateAndCreateKey(x){try{const H=new Z({t:this.threshold,n:this.totalNodes,permissions:x});console.log("Generated Payload:",H);const F=(U)=>this.authModule.authenticate({setup:H,challenge:U}),z=await this.wp_client.startKeygen({setup:H,signer:F});return console.log("Keygen response:",z),z}catch(H){throw console.error(H),H}}async authenticateAndSign(x,H){const F={t:this.threshold,key_id:x,message:H},z=(J)=>this.authModule.authenticate({setup:F,challenge:J}),U=await this.wp_client.startSigngen({setup:F,signer:z});return console.log("Sign response:",U),U}}var q=function(x,H){const F={t:x.t,n:x.n,key_label:x.key_label,metadata:[]};return{types:{EIP712Domain:G,...K},domain:f,primaryType:"Request",message:{setup:F,challenge:H}}},y=function(x,H){return{types:{EIP712Domain:G,...b},domain:f,primaryType:"Request",message:{setup:x,challenge:H}}};async function T({setup:x,user_id:H,challenge:F,browserWallet:z}){let U;if(V(x))console.log("Creating Sign request"),U=y(x,F);else console.log("Creating Keygen request"),U=q(x,F);console.log("typed request:"),console.log(JSON.stringify(U,void 0,4));const J=await z.signTypedData(H,U);return console.log("User signed a request",J),{credentials:{credentials:H,method:"eoa",id:"id"},signature:J}}var E=[{name:"tag",type:"uint16"},{name:"value",type:"string"}],K={Request:[{name:"setup",type:"KeygenSetupOpts"},{name:"challenge",type:"string"}],KeygenSetupOpts:[{name:"t",type:"uint32"},{name:"n",type:"uint32"},{name:"metadata",type:"TaggedValue[]"}],TaggedValue:E},b={Request:[{name:"setup",type:"SignSetupOpts"},{name:"challenge",type:"string"}],SignSetupOpts:[{name:"t",type:"uint32"},{name:"key_id",type:"string"},{name:"message",type:"string"}]},f={name:"SilentShard authentication",version:"0.1.0"},G=[{name:"name",type:"string"},{name:"version",type:"string"}];var X;(function(F){F[F["EOA"]=0]="EOA";F[F["NONE"]=1]="NONE"})(X||(X={}));class D{userId;browserWallet;constructor(x,H){this.userId=x,this.browserWallet=H}async authenticate({setup:x,challenge:H}){return await T({setup:x,user_id:this.userId,challenge:H,browserWallet:this.browserWallet})}}var A=(x)=>btoa(String.fromCodePoint.apply(null,Array.from(x)));var B;(function(U){U[U["initiated"]=0]="initiated";U[U["waitingForSign"]=1]="waitingForSign";U[U["waitingForResult"]=2]="waitingForResult";U[U["finished"]=3]="finished"})(B||(B={}));class C{walletProviderId;walletProviderUrl;constructor(x){this.walletProviderId=x.walletProviderId,this.walletProviderUrl=x.walletProviderUrl}getWalletId(){return this.walletProviderId}async startKeygen({setup:x,signer:H}){return this.connect(x,H).then((F)=>{const z=F.split(":"),U=z[1].split("=")[1],J=z[0].split("=")[1];return{publicKey:U,keyId:J}})}async startSigngen({setup:x,signer:H}){return this.connect(x,H).then((F)=>{const z=F.split(":"),U=z[0].split("=")[1],J=z[1].split("=")[1];return{sign:U,recid:parseInt(J)}})}connect(x,H){return new Promise((F,z)=>{let U=B.initiated,J;if(V(x))J="signgen",x.message=A((new TextEncoder()).encode(x.message));else J="keygen";const Q=new WebSocket(`${this.walletProviderUrl}/${J}`);Q.addEventListener("open",(L)=>{switch(console.log(`Connection opened in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U){case B.initiated:U=B.waitingForSign,console.log(`Sending setup: ${JSON.stringify(x)}`),Q.send(JSON.stringify(x));break;case B.waitingForSign:case B.waitingForResult:U=B.finished,z("Incorrect protocol state");break;case B.finished:break}}),Q.addEventListener("message",async(L)=>{switch(console.log(`Connection message in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U){case B.initiated:U=B.finished,z("Incorrect protocol state");break;case B.waitingForSign:{U=B.waitingForResult;const Y=await H(L.data);console.log(`Sending signature: ${JSON.stringify(Y)}`),Q.send(JSON.stringify(Y));break}case B.waitingForResult:U=B.finished,Q.close(),F(L.data);break;case B.finished:break}}),Q.addEventListener("error",(L)=>{if(console.log(`Connection error in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U!=B.finished)U=B.finished,z("Incorrect protocol state")}),Q.addEventListener("close",(L)=>{if(console.log(`Connection closed in state ${U} with event ${JSON.stringify(L,void 0,"\t")}`),U!=B.finished)U=B.finished,z("Incorrect protocol state")})})}}export{C as WalletProviderServiceClient,$ as NetworkSigner,D as EOAAuth,X as AuthMethod};
@@ -77,7 +77,7 @@ export declare class NetworkSigner {
77
77
  * @param permissions - optional permissions that will be stored in the key metadata.
78
78
  * The permissions are validated during sign requests.
79
79
  * @returns {@link KeygenResponse} containing `keyId` and the `pubKey` public part of the key
80
- *
80
+ * @public
81
81
  * @alpha
82
82
  */
83
83
  authenticateAndCreateKey(permissions?: string): Promise<KeygenResponse>;
@@ -86,6 +86,7 @@ export declare class NetworkSigner {
86
86
  * @param keyId - the key id returned from `authenticateAndCreateKey`
87
87
  * @param message - the message to sign by the MPC network
88
88
  * @returns {@link SignResponse}
89
+ * @public
89
90
  * @alpha
90
91
  */
91
92
  authenticateAndSign(keyId: string, message: string): Promise<SignResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"networkSigner.d.ts","sourceRoot":"","sources":["../src/networkSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAU,KAAK,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAEtG;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,6CAA6C;AAC7C,qBAAa,eAAe;IAC1B,+GAA+G;IAC/G,CAAC,EAAE,MAAM,CAAC;IACV,kGAAkG;IAClG,CAAC,EAAE,MAAM,CAAC;IACV,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAEjB,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;CAUjH;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;IAC1B,uEAAuE;IACvE,CAAC,EAAE,MAAM,CAAC;IACV,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,MAAM,IAAI,aAAa,CAEhG;AAED,+EAA+E;AAC/E,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACxC,KAAK,EAAE,CAAC,CAAC;IACT,mBAAmB,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAa;IACxB,6FAA6F;IAC7F,UAAU,EAAE,UAAU,CAAC;IACvB,qHAAqH;IACrH,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,SAAS,EAAE,4BAA4B,CAAC;IAExC;;;;;;OAMG;gBACS,QAAQ,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAYjH;;;;;;;OAOG;IACG,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB7E;;;;;;OAMG;IACG,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAejF"}
1
+ {"version":3,"file":"networkSigner.d.ts","sourceRoot":"","sources":["../src/networkSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAU,KAAK,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAEtG;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,6CAA6C;AAC7C,qBAAa,eAAe;IAC1B,+GAA+G;IAC/G,CAAC,EAAE,MAAM,CAAC;IACV,kGAAkG;IAClG,CAAC,EAAE,MAAM,CAAC;IACV,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAEjB,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;CAUjH;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;IAC1B,uEAAuE;IACvE,CAAC,EAAE,MAAM,CAAC;IACV,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,MAAM,IAAI,aAAa,CAEhG;AAED,+EAA+E;AAC/E,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACxC,KAAK,EAAE,CAAC,CAAC;IACT,mBAAmB,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAa;IACxB,6FAA6F;IAC7F,UAAU,EAAE,UAAU,CAAC;IACvB,qHAAqH;IACrH,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,SAAS,EAAE,4BAA4B,CAAC;IAExC;;;;;;OAMG;gBACS,QAAQ,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAYjH;;;;;;;OAOG;IACU,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuBpF;;;;;;;OAOG;IACU,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAexF"}
@@ -8,6 +8,10 @@ import { type ClientConfig, IWalletProviderServiceClient, type Signer } from './
8
8
  export declare class WalletProviderServiceClient implements IWalletProviderServiceClient {
9
9
  walletProviderId: string;
10
10
  walletProviderUrl: string;
11
+ /**
12
+ * Create new client that connects to the backend service
13
+ * @param config - config containing information about backend service
14
+ */
11
15
  constructor(config: ClientConfig);
12
16
  getWalletId(): string;
13
17
  startKeygen({ setup, signer }: {
@@ -1 +1 @@
1
- {"version":3,"file":"walletProviderServiceClient.d.ts","sourceRoot":"","sources":["../src/walletProviderServiceClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,YAAY,EAAE,4BAA4B,EAAE,KAAK,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAStH;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,4BAA4B;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;gBAEd,MAAM,EAAE,YAAY;IAKhC,WAAW,IAAI,MAAM;IAIf,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAYnG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAatG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkFlF"}
1
+ {"version":3,"file":"walletProviderServiceClient.d.ts","sourceRoot":"","sources":["../src/walletProviderServiceClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,YAAY,EAAE,4BAA4B,EAAE,KAAK,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAStH;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,4BAA4B;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;OAGG;gBACS,MAAM,EAAE,YAAY;IAKhC,WAAW,IAAI,MAAM;IAIf,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAYnG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAatG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkFlF"}
@@ -1,9 +1,22 @@
1
1
  import { UserAuthentication } from './authentication';
2
2
  import { KeygenResponse, KeygenSetupOpts, SignResponse, SignSetupOpts } from './networkSigner';
3
+ /**
4
+ * The config used to create Wallet Provider Service backend client.
5
+ * Please refer to {@link https://shipyard.rs/silencelaboratories/crates/wallet-provider-service | example backend service}
6
+ * implementation for requirements that the backend service must fulfill.
7
+ * @alpha
8
+ */
3
9
  export type ClientConfig = {
10
+ /**
11
+ * The id of the Wallet Provider Service
12
+ * @alpha
13
+ */
4
14
  walletProviderId: string;
15
+ /**
16
+ * The URL used to connect to the service
17
+ * @alpha
18
+ */
5
19
  walletProviderUrl: string;
6
- secretKey: string;
7
20
  };
8
21
  export type Signer = (challenge: string) => Promise<UserAuthentication>;
9
22
  /** Interface for client of Wallet Provider Service
@@ -1 +1 @@
1
- {"version":3,"file":"walletProviderServiceClientInterface.d.ts","sourceRoot":"","sources":["../src/walletProviderServiceClientInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE/F,MAAM,MAAM,YAAY,GAAG;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,WAAW,IAAI,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClG"}
1
+ {"version":3,"file":"walletProviderServiceClientInterface.d.ts","sourceRoot":"","sources":["../src/walletProviderServiceClientInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE/F;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,WAAW,IAAI,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silencelaboratories/walletprovider-sdk",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "Frontend SDK for Wallet Providers",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",