unwallet-client-sdk 0.7.0 → 0.9.0

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.
@@ -1,30 +1,32 @@
1
- name: Publish npm package
1
+ name: publish
2
2
  on:
3
3
  release:
4
- types: [created]
4
+ types: [published]
5
5
  jobs:
6
6
  build:
7
7
  runs-on: ubuntu-latest
8
8
  steps:
9
9
  - name: Checkout
10
- uses: actions/checkout@v2
11
- - name: Set up Node.js
12
- uses: actions/setup-node@v2
10
+ uses: actions/checkout@v4
11
+ - name: Set up pnpm
12
+ uses: pnpm/action-setup@v2
13
13
  with:
14
- node-version: "16.x"
15
- registry-url: "https://registry.npmjs.org"
14
+ version: 8
15
+ run_install: false
16
+ - name: Prepare to cache dependencies
17
+ shell: bash
18
+ run: |
19
+ echo "PNPM_STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
16
20
  - name: Cache dependencies
17
- id: cache
18
- uses: actions/cache@v2
21
+ uses: actions/cache@v3
19
22
  with:
20
- path: node_modules
21
- key: ${{ hashFiles('package-lock.json') }}
23
+ path: ${{ env.PNPM_STORE_PATH }}
24
+ key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
22
25
  - name: Install dependencies
23
- if: steps.cache.outputs.cache-hit != 'true'
24
- run: npm ci
26
+ run: pnpm install
25
27
  - name: Build
26
- run: npm run build
27
- - name: Publish npm package
28
- run: npm publish --access public
29
- env:
30
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
28
+ run: pnpm build
29
+ - name: Prepare to publish
30
+ run: pnpm config set '//registry.npmjs.org/:_authToken' "${{ secrets.NPM_TOKEN }}"
31
+ - name: Publish
32
+ run: pnpm publish --access public --no-git-checks
@@ -0,0 +1 @@
1
+ pnpm --no -- commitlint --edit $1
package/README.md CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  ## Installation
6
6
 
7
- ```sh
8
- $ npm install unwallet-client-sdk
7
+ ```
8
+ npm install unwallet-client-sdk
9
9
  ```
10
10
 
11
11
  ## Initialization
@@ -0,0 +1 @@
1
+ module.exports = { extends: ["@commitlint/config-conventional"] };
@@ -14,6 +14,7 @@ export declare class UnWallet {
14
14
  redirectURL: string;
15
15
  nonce?: string;
16
16
  isVirtual?: boolean;
17
+ chainID?: number;
17
18
  }): void;
18
19
  sign(args: {
19
20
  message: string;
@@ -28,10 +29,6 @@ export declare class UnWallet {
28
29
  to: string;
29
30
  amount: number;
30
31
  }): Promise<MetaTransaction>;
31
- createPresentation(args: {
32
- credential: string;
33
- challenge: string;
34
- }): Promise<string>;
35
32
  private getConnectionID;
36
33
  private sendWSMessage;
37
34
  private handleWSMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"unwallet.d.ts","sourceRoot":"","sources":["../src/unwallet.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAAwC;gBAE1C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS;IAUzE,OAAO,CAAC,eAAe;WAKT,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiC9C,SAAS,CAAC,IAAI,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,IAAI;IAuBD,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmB5D,eAAe,CAAC,IAAI,EAAE;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,eAAe,CAAC;IAcrB,iBAAiB,CAAC,IAAI,EAAE;QAC7B,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBrB,kBAAkB,CAAC,IAAI,EAAE;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBnB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,UAAU;CAYnB"}
1
+ {"version":3,"file":"unwallet.d.ts","sourceRoot":"","sources":["../src/unwallet.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAAwC;gBAE1C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS;IAUzE,OAAO,CAAC,eAAe;WAKT,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsC9C,SAAS,CAAC,IAAI,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAyBD,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsB5D,eAAe,CAAC,IAAI,EAAE;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBrB,iBAAiB,CAAC,IAAI,EAAE;QAC7B,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkB5B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,UAAU;CAYnB"}
package/dist/unwallet.js CHANGED
@@ -27,21 +27,23 @@ class UnWallet {
27
27
  }
28
28
  const unWalletConfig = configs_1.unWalletConfigs[config.env];
29
29
  const ws = new WebSocket(unWalletConfig.wsAPIURL);
30
- ws.onerror = (event) => {
31
- reject("websocket connection failed");
32
- };
33
- ws.onopen = (event) => {
34
- unWallet.getConnectionID();
35
- };
36
- ws.onmessage = (event) => {
37
- const msg = JSON.parse(event.data);
38
- if (msg.type === "connectionID") {
39
- unWallet.connectionID = msg.value;
40
- resolve(unWallet);
41
- return;
42
- }
43
- unWallet.handleWSMessage(msg);
44
- };
30
+ {
31
+ ws.onerror = (event) => {
32
+ reject("websocket connection failed");
33
+ };
34
+ ws.onopen = (event) => {
35
+ unWallet.getConnectionID();
36
+ };
37
+ ws.onmessage = (event) => {
38
+ const msg = JSON.parse(event.data);
39
+ if (msg.type === "connectionID") {
40
+ unWallet.connectionID = msg.value;
41
+ resolve(unWallet);
42
+ return;
43
+ }
44
+ unWallet.handleWSMessage(msg);
45
+ };
46
+ }
45
47
  // should be run after ws setup
46
48
  const unWallet = new UnWallet(config, unWalletConfig, ws);
47
49
  });
@@ -50,20 +52,19 @@ class UnWallet {
50
52
  if (!args.responseMode) {
51
53
  args.responseMode = "fragment";
52
54
  }
53
- let url;
54
- if (args.isVirtual === false) {
55
- url = new URL(`${this.unWalletConfig.baseURL}/authorize`);
56
- }
57
- else {
58
- url = new URL(`${this.unWalletConfig.baseURL}/vauthorize`);
59
- }
60
- url.searchParams.set("response_type", "id_token");
61
- url.searchParams.set("response_mode", args.responseMode);
62
- url.searchParams.set("client_id", this.config.clientID);
63
- url.searchParams.set("scope", "openid");
64
- url.searchParams.set("redirect_uri", args.redirectURL);
65
- if (args.nonce !== undefined) {
66
- url.searchParams.set("nonce", args.nonce);
55
+ let url = new URL(`${this.unWalletConfig.baseURL}/${args.isVirtual ? "v" : ""}authorize`);
56
+ {
57
+ url.searchParams.set("response_type", "id_token");
58
+ url.searchParams.set("response_mode", args.responseMode);
59
+ url.searchParams.set("client_id", this.config.clientID);
60
+ url.searchParams.set("scope", "openid");
61
+ url.searchParams.set("redirect_uri", args.redirectURL);
62
+ if (args.nonce !== undefined) {
63
+ url.searchParams.set("nonce", args.nonce);
64
+ }
65
+ if (args.chainID !== undefined) {
66
+ url.searchParams.set("chain_id", args.chainID.toString());
67
+ }
67
68
  }
68
69
  location.assign(url.toString());
69
70
  }
@@ -77,45 +78,41 @@ class UnWallet {
77
78
  };
78
79
  this.reject = reject;
79
80
  const url = new URL(`${this.unWalletConfig.baseURL}/x/sign`);
80
- url.searchParams.set("connectionID", this.connectionID);
81
- url.searchParams.set("clientID", this.config.clientID);
82
- url.searchParams.set("message", args.message);
81
+ {
82
+ url.searchParams.set("connectionID", this.connectionID);
83
+ url.searchParams.set("clientID", this.config.clientID);
84
+ url.searchParams.set("message", args.message);
85
+ }
83
86
  this.openWindow(url);
84
87
  });
85
88
  }
89
+ // DEPRECATED
86
90
  signTransaction(args) {
87
91
  return new Promise((resolve, reject) => {
88
92
  this.resolve = resolve;
89
93
  this.reject = reject;
90
94
  const url = new URL(`${this.unWalletConfig.baseURL}/x/signTransaction`);
91
- url.searchParams.set("connectionID", this.connectionID);
92
- url.searchParams.set("clientID", this.config.clientID);
93
- url.searchParams.set("transaction", JSON.stringify(args));
95
+ {
96
+ url.searchParams.set("connectionID", this.connectionID);
97
+ url.searchParams.set("clientID", this.config.clientID);
98
+ url.searchParams.set("transaction", JSON.stringify(args));
99
+ }
94
100
  this.openWindow(url);
95
101
  });
96
102
  }
103
+ // DEPRECATED
97
104
  signTokenTransfer(args) {
98
105
  return new Promise((resolve, reject) => {
99
106
  this.resolve = resolve;
100
107
  this.reject = reject;
101
108
  const url = new URL(`${this.unWalletConfig.baseURL}/x/signTokenTransfer`);
102
- url.searchParams.set("connectionID", this.connectionID);
103
- url.searchParams.set("clientID", this.config.clientID);
104
- url.searchParams.set("id", args.id.toString());
105
- url.searchParams.set("to", args.to);
106
- url.searchParams.set("amount", args.amount.toString());
107
- this.openWindow(url);
108
- });
109
- }
110
- createPresentation(args) {
111
- return new Promise((resolve, reject) => {
112
- this.resolve = resolve;
113
- this.reject = reject;
114
- const url = new URL(`${this.unWalletConfig.baseURL}/x/createPresentation`);
115
- url.searchParams.set("connectionID", this.connectionID);
116
- url.searchParams.set("clientID", this.config.clientID);
117
- url.searchParams.set("credential", args.credential);
118
- url.searchParams.set("challenge", args.challenge);
109
+ {
110
+ url.searchParams.set("connectionID", this.connectionID);
111
+ url.searchParams.set("clientID", this.config.clientID);
112
+ url.searchParams.set("id", args.id.toString());
113
+ url.searchParams.set("to", args.to);
114
+ url.searchParams.set("amount", args.amount.toString());
115
+ }
119
116
  this.openWindow(url);
120
117
  });
121
118
  }
@@ -135,9 +132,6 @@ class UnWallet {
135
132
  case "metaTransaction":
136
133
  this.resolve(msg.value);
137
134
  break;
138
- case "presentation":
139
- this.resolve(msg.value);
140
- break;
141
135
  case "error":
142
136
  switch (msg.value) {
143
137
  case "rejected":
@@ -148,7 +142,7 @@ class UnWallet {
148
142
  }
149
143
  break;
150
144
  default:
151
- throw new Error(`unknown message type: ${msg.type}`);
145
+ throw new Error(`unexpected message type: ${msg.type}`);
152
146
  }
153
147
  this.initPromiseArgs();
154
148
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unwallet-client-sdk",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "unWallet client-side SDK",
5
5
  "license": "MIT",
6
6
  "author": "SIVIRA",
@@ -9,13 +9,24 @@
9
9
  "type": "git",
10
10
  "url": "git://github.com/SIVIRA/unwallet-client-sdk-js.git"
11
11
  },
12
- "scripts": {
13
- "build": "tsc"
12
+ "config": {
13
+ "commitizen": {
14
+ "path": "./node_modules/cz-conventional-changelog"
15
+ }
14
16
  },
15
17
  "dependencies": {
16
- "ethers": "^6.6.1"
18
+ "ethers": "6.12.0"
17
19
  },
18
20
  "devDependencies": {
19
- "typescript": "^5.1.3"
21
+ "@commitlint/cli": "19.3.0",
22
+ "@commitlint/config-conventional": "19.2.2",
23
+ "commitizen": "4.3.0",
24
+ "cz-conventional-changelog": "3.3.0",
25
+ "husky": "9.0.11",
26
+ "typescript": "5.4.5"
27
+ },
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "commit": "cz"
20
31
  }
21
- }
32
+ }
package/src/unwallet.ts CHANGED
@@ -45,21 +45,26 @@ export class UnWallet {
45
45
  const unWalletConfig = unWalletConfigs[config.env];
46
46
 
47
47
  const ws = new WebSocket(unWalletConfig.wsAPIURL);
48
- ws.onerror = (event) => {
49
- reject("websocket connection failed");
50
- };
51
- ws.onopen = (event) => {
52
- unWallet.getConnectionID();
53
- };
54
- ws.onmessage = (event) => {
55
- const msg = JSON.parse(event.data);
56
- if (msg.type === "connectionID") {
57
- unWallet.connectionID = msg.value;
58
- resolve(unWallet);
59
- return;
60
- }
61
- unWallet.handleWSMessage(msg);
62
- };
48
+ {
49
+ ws.onerror = (event) => {
50
+ reject("websocket connection failed");
51
+ };
52
+
53
+ ws.onopen = (event) => {
54
+ unWallet.getConnectionID();
55
+ };
56
+
57
+ ws.onmessage = (event) => {
58
+ const msg = JSON.parse(event.data);
59
+ if (msg.type === "connectionID") {
60
+ unWallet.connectionID = msg.value;
61
+ resolve(unWallet);
62
+ return;
63
+ }
64
+
65
+ unWallet.handleWSMessage(msg);
66
+ };
67
+ }
63
68
 
64
69
  // should be run after ws setup
65
70
  const unWallet = new UnWallet(config, unWalletConfig, ws);
@@ -71,24 +76,27 @@ export class UnWallet {
71
76
  redirectURL: string;
72
77
  nonce?: string;
73
78
  isVirtual?: boolean;
79
+ chainID?: number;
74
80
  }): void {
75
81
  if (!args.responseMode) {
76
82
  args.responseMode = "fragment";
77
83
  }
78
84
 
79
- let url: URL;
80
- if (args.isVirtual === false) {
81
- url = new URL(`${this.unWalletConfig.baseURL}/authorize`);
82
- } else {
83
- url = new URL(`${this.unWalletConfig.baseURL}/vauthorize`);
84
- }
85
- url.searchParams.set("response_type", "id_token");
86
- url.searchParams.set("response_mode", args.responseMode);
87
- url.searchParams.set("client_id", this.config.clientID);
88
- url.searchParams.set("scope", "openid");
89
- url.searchParams.set("redirect_uri", args.redirectURL);
90
- if (args.nonce !== undefined) {
91
- url.searchParams.set("nonce", args.nonce);
85
+ let url = new URL(
86
+ `${this.unWalletConfig.baseURL}/${args.isVirtual ? "v" : ""}authorize`
87
+ );
88
+ {
89
+ url.searchParams.set("response_type", "id_token");
90
+ url.searchParams.set("response_mode", args.responseMode);
91
+ url.searchParams.set("client_id", this.config.clientID);
92
+ url.searchParams.set("scope", "openid");
93
+ url.searchParams.set("redirect_uri", args.redirectURL);
94
+ if (args.nonce !== undefined) {
95
+ url.searchParams.set("nonce", args.nonce);
96
+ }
97
+ if (args.chainID !== undefined) {
98
+ url.searchParams.set("chain_id", args.chainID.toString());
99
+ }
92
100
  }
93
101
 
94
102
  location.assign(url.toString());
@@ -105,14 +113,17 @@ export class UnWallet {
105
113
  this.reject = reject;
106
114
 
107
115
  const url = new URL(`${this.unWalletConfig.baseURL}/x/sign`);
108
- url.searchParams.set("connectionID", this.connectionID);
109
- url.searchParams.set("clientID", this.config.clientID);
110
- url.searchParams.set("message", args.message);
116
+ {
117
+ url.searchParams.set("connectionID", this.connectionID);
118
+ url.searchParams.set("clientID", this.config.clientID);
119
+ url.searchParams.set("message", args.message);
120
+ }
111
121
 
112
122
  this.openWindow(url);
113
123
  });
114
124
  }
115
125
 
126
+ // DEPRECATED
116
127
  public signTransaction(args: {
117
128
  to: string;
118
129
  value?: string;
@@ -123,14 +134,17 @@ export class UnWallet {
123
134
  this.reject = reject;
124
135
 
125
136
  const url = new URL(`${this.unWalletConfig.baseURL}/x/signTransaction`);
126
- url.searchParams.set("connectionID", this.connectionID);
127
- url.searchParams.set("clientID", this.config.clientID);
128
- url.searchParams.set("transaction", JSON.stringify(args));
137
+ {
138
+ url.searchParams.set("connectionID", this.connectionID);
139
+ url.searchParams.set("clientID", this.config.clientID);
140
+ url.searchParams.set("transaction", JSON.stringify(args));
141
+ }
129
142
 
130
143
  this.openWindow(url);
131
144
  });
132
145
  }
133
146
 
147
+ // DEPRECATED
134
148
  public signTokenTransfer(args: {
135
149
  id: number;
136
150
  to: string;
@@ -141,31 +155,13 @@ export class UnWallet {
141
155
  this.reject = reject;
142
156
 
143
157
  const url = new URL(`${this.unWalletConfig.baseURL}/x/signTokenTransfer`);
144
- url.searchParams.set("connectionID", this.connectionID);
145
- url.searchParams.set("clientID", this.config.clientID);
146
- url.searchParams.set("id", args.id.toString());
147
- url.searchParams.set("to", args.to);
148
- url.searchParams.set("amount", args.amount.toString());
149
-
150
- this.openWindow(url);
151
- });
152
- }
153
-
154
- public createPresentation(args: {
155
- credential: string;
156
- challenge: string;
157
- }): Promise<string> {
158
- return new Promise((resolve, reject) => {
159
- this.resolve = resolve;
160
- this.reject = reject;
161
-
162
- const url = new URL(
163
- `${this.unWalletConfig.baseURL}/x/createPresentation`
164
- );
165
- url.searchParams.set("connectionID", this.connectionID);
166
- url.searchParams.set("clientID", this.config.clientID);
167
- url.searchParams.set("credential", args.credential);
168
- url.searchParams.set("challenge", args.challenge);
158
+ {
159
+ url.searchParams.set("connectionID", this.connectionID);
160
+ url.searchParams.set("clientID", this.config.clientID);
161
+ url.searchParams.set("id", args.id.toString());
162
+ url.searchParams.set("to", args.to);
163
+ url.searchParams.set("amount", args.amount.toString());
164
+ }
169
165
 
170
166
  this.openWindow(url);
171
167
  });
@@ -191,10 +187,6 @@ export class UnWallet {
191
187
  this.resolve!(msg.value);
192
188
  break;
193
189
 
194
- case "presentation":
195
- this.resolve!(msg.value);
196
- break;
197
-
198
190
  case "error":
199
191
  switch (msg.value) {
200
192
  case "rejected":
@@ -207,7 +199,7 @@ export class UnWallet {
207
199
  break;
208
200
 
209
201
  default:
210
- throw new Error(`unknown message type: ${msg.type}`);
202
+ throw new Error(`unexpected message type: ${msg.type}`);
211
203
  }
212
204
 
213
205
  this.initPromiseArgs();