unwallet-client-sdk 0.1.3 → 0.4.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.
- package/README.md +43 -2
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/unwallet.d.ts +7 -2
- package/dist/unwallet.d.ts.map +1 -1
- package/dist/unwallet.js +38 -8
- package/package.json +4 -1
- package/src/types.ts +5 -0
- package/src/unwallet.ts +62 -9
package/README.md
CHANGED
|
@@ -39,14 +39,55 @@ const sig = await unWallet.sign({
|
|
|
39
39
|
});
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
#### Example return value
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"digest": "0xc71ed5b0509d8da72abc9527ed72530743822e8d9b33f9695b42e20ece78c09b",
|
|
47
|
+
"signature": "0xd94388b5d51395c46b00f6197de318ba275cd7f9c5e4dccf2059373a4b41b3975403852e2587f262375e6d2b3318380dcd95535ecebec7e8c7ebbbefdcf22a371b"
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Requesting a signature for a transaction
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
const metaTx = await unWallet.signTransaction({
|
|
55
|
+
to: "0xB481148EB6A5f6b5b9Cc10cb0C8304B9B179A8e6", // the address the transaction is directed to
|
|
56
|
+
value: "0x0", // the MATIC value sent with this transaction (optional)
|
|
57
|
+
data: "0x...", // the hash of the invoked method signature and encoded parameters (optional)
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
#### Example return value
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"executor": "0x3ADBDCBa56d70Fc15Dcbe98901432cC07B2aAaeF",
|
|
66
|
+
"data": "0x...",
|
|
67
|
+
"signature": "0x19eb83842bc2d2c55567d4da63981ae9d4ce76ec567b591f18e18f4e030c4389331ba3ce0f1549331cb51710881320982b7b7a3632a7d81ca214690ecf3267c51c"
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
To execute the transaction, call [POST /metaTransactions of unWallet Enterprise API](https://developers.ent.unwallet.world/ja/latest/unwallet-ent-api.html#post-metatransactions).
|
|
72
|
+
|
|
42
73
|
### Requesting a signature for a token transfer transaction
|
|
43
74
|
|
|
44
75
|
```js
|
|
45
76
|
const metaTx = await unWallet.signTokenTransfer({
|
|
46
|
-
id:
|
|
47
|
-
to: "
|
|
77
|
+
id: 101, // token ID
|
|
78
|
+
to: "0xB481148EB6A5f6b5b9Cc10cb0C8304B9B179A8e6", // destination address
|
|
48
79
|
amount: 1, // token amount
|
|
49
80
|
});
|
|
50
81
|
```
|
|
51
82
|
|
|
83
|
+
#### Example return value
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"executor": "0x3ADBDCBa56d70Fc15Dcbe98901432cC07B2aAaeF",
|
|
88
|
+
"data": "0x...",
|
|
89
|
+
"signature": "0x19eb83842bc2d2c55567d4da63981ae9d4ce76ec567b591f18e18f4e030c4389331ba3ce0f1549331cb51710881320982b7b7a3632a7d81ca214690ecf3267c51c"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
52
93
|
To execute the transaction, call [POST /metaTransactions of unWallet Enterprise API](https://developers.ent.unwallet.world/ja/latest/unwallet-ent-api.html#post-metatransactions).
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
package/dist/unwallet.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Config, UnWalletConfig, MetaTransaction } from "./types";
|
|
1
|
+
import { Config, UnWalletConfig, DigestAndSignature, MetaTransaction } from "./types";
|
|
2
2
|
export declare class UnWallet {
|
|
3
3
|
private config;
|
|
4
4
|
private unWalletConfig;
|
|
@@ -16,7 +16,12 @@ export declare class UnWallet {
|
|
|
16
16
|
}): void;
|
|
17
17
|
sign(args: {
|
|
18
18
|
message: string;
|
|
19
|
-
}): Promise<
|
|
19
|
+
}): Promise<DigestAndSignature>;
|
|
20
|
+
signTransaction(args: {
|
|
21
|
+
to: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
data?: string;
|
|
24
|
+
}): Promise<MetaTransaction>;
|
|
20
25
|
signTokenTransfer(args: {
|
|
21
26
|
id: number;
|
|
22
27
|
to: string;
|
package/dist/unwallet.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwallet.d.ts","sourceRoot":"","sources":["../src/unwallet.ts"],"names":[],"mappings":"
|
|
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,EAAE,MAAM,CAAC;KACf,GAAG,IAAI;IAgBD,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"}
|
package/dist/unwallet.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnWallet = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
4
5
|
const configs_1 = require("./configs");
|
|
5
6
|
class UnWallet {
|
|
6
7
|
constructor(config, unWalletConfig, ws) {
|
|
@@ -35,7 +36,7 @@ class UnWallet {
|
|
|
35
36
|
ws.onmessage = (event) => {
|
|
36
37
|
const msg = JSON.parse(event.data);
|
|
37
38
|
if (msg.type === "connectionID") {
|
|
38
|
-
unWallet.connectionID = msg.
|
|
39
|
+
unWallet.connectionID = msg.value;
|
|
39
40
|
resolve(unWallet);
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
@@ -60,20 +61,38 @@ class UnWallet {
|
|
|
60
61
|
}
|
|
61
62
|
sign(args) {
|
|
62
63
|
return new Promise((resolve, reject) => {
|
|
63
|
-
this.resolve =
|
|
64
|
+
this.resolve = (sig) => {
|
|
65
|
+
resolve({
|
|
66
|
+
digest: ethers_1.ethers.utils.sha256(ethers_1.ethers.utils.toUtf8Bytes(args.message)),
|
|
67
|
+
signature: sig,
|
|
68
|
+
});
|
|
69
|
+
};
|
|
64
70
|
this.reject = reject;
|
|
65
71
|
const url = new URL(`${this.unWalletConfig.baseURL}/x/sign`);
|
|
66
72
|
url.searchParams.set("connectionID", this.connectionID);
|
|
73
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
67
74
|
url.searchParams.set("message", args.message);
|
|
68
75
|
this.openWindow(url);
|
|
69
76
|
});
|
|
70
77
|
}
|
|
78
|
+
signTransaction(args) {
|
|
79
|
+
return new Promise((resolve, reject) => {
|
|
80
|
+
this.resolve = resolve;
|
|
81
|
+
this.reject = reject;
|
|
82
|
+
const url = new URL(`${this.unWalletConfig.baseURL}/x/signTransaction`);
|
|
83
|
+
url.searchParams.set("connectionID", this.connectionID);
|
|
84
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
85
|
+
url.searchParams.set("transaction", JSON.stringify(args));
|
|
86
|
+
this.openWindow(url);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
71
89
|
signTokenTransfer(args) {
|
|
72
90
|
return new Promise((resolve, reject) => {
|
|
73
91
|
this.resolve = resolve;
|
|
74
92
|
this.reject = reject;
|
|
75
93
|
const url = new URL(`${this.unWalletConfig.baseURL}/x/signTokenTransfer`);
|
|
76
94
|
url.searchParams.set("connectionID", this.connectionID);
|
|
95
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
77
96
|
url.searchParams.set("id", args.id.toString());
|
|
78
97
|
url.searchParams.set("to", args.to);
|
|
79
98
|
url.searchParams.set("amount", args.amount.toString());
|
|
@@ -86,6 +105,7 @@ class UnWallet {
|
|
|
86
105
|
this.reject = reject;
|
|
87
106
|
const url = new URL(`${this.unWalletConfig.baseURL}/x/createPresentation`);
|
|
88
107
|
url.searchParams.set("connectionID", this.connectionID);
|
|
108
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
89
109
|
url.searchParams.set("credential", args.credential);
|
|
90
110
|
url.searchParams.set("challenge", args.challenge);
|
|
91
111
|
this.openWindow(url);
|
|
@@ -102,17 +122,27 @@ class UnWallet {
|
|
|
102
122
|
handleWSMessage(msg) {
|
|
103
123
|
switch (msg.type) {
|
|
104
124
|
case "signature":
|
|
125
|
+
this.resolve(msg.value);
|
|
126
|
+
break;
|
|
105
127
|
case "metaTransaction":
|
|
128
|
+
this.resolve(msg.value);
|
|
129
|
+
break;
|
|
106
130
|
case "presentation":
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
this.resolve(msg.value);
|
|
132
|
+
break;
|
|
133
|
+
case "error":
|
|
134
|
+
switch (msg.value) {
|
|
135
|
+
case "rejected":
|
|
136
|
+
this.reject("canceled");
|
|
137
|
+
break;
|
|
138
|
+
default:
|
|
139
|
+
throw new Error(msg.value);
|
|
112
140
|
}
|
|
113
|
-
this.initPromiseArgs();
|
|
114
141
|
break;
|
|
142
|
+
default:
|
|
143
|
+
throw new Error(`unknown message type: ${msg.type}`);
|
|
115
144
|
}
|
|
145
|
+
this.initPromiseArgs();
|
|
116
146
|
}
|
|
117
147
|
openWindow(url) {
|
|
118
148
|
const width = screen.width / 2;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unwallet-client-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "unWallet client-side SDK",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "SIVIRA",
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
"scripts": {
|
|
13
13
|
"build": "tsc"
|
|
14
14
|
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"ethers": "^5.6.9"
|
|
17
|
+
},
|
|
15
18
|
"devDependencies": {
|
|
16
19
|
"typescript": "^4.3.4"
|
|
17
20
|
}
|
package/src/types.ts
CHANGED
package/src/unwallet.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
|
|
1
3
|
import { unWalletConfigs } from "./configs";
|
|
2
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
Config,
|
|
6
|
+
UnWalletConfig,
|
|
7
|
+
DigestAndSignature,
|
|
8
|
+
MetaTransaction,
|
|
9
|
+
} from "./types";
|
|
3
10
|
|
|
4
11
|
export class UnWallet {
|
|
5
12
|
private config: Config;
|
|
@@ -47,7 +54,7 @@ export class UnWallet {
|
|
|
47
54
|
ws.onmessage = (event) => {
|
|
48
55
|
const msg = JSON.parse(event.data);
|
|
49
56
|
if (msg.type === "connectionID") {
|
|
50
|
-
unWallet.connectionID = msg.
|
|
57
|
+
unWallet.connectionID = msg.value;
|
|
51
58
|
resolve(unWallet);
|
|
52
59
|
return;
|
|
53
60
|
}
|
|
@@ -79,14 +86,39 @@ export class UnWallet {
|
|
|
79
86
|
location.assign(url.toString());
|
|
80
87
|
}
|
|
81
88
|
|
|
82
|
-
public sign(args: { message: string }): Promise<
|
|
89
|
+
public sign(args: { message: string }): Promise<DigestAndSignature> {
|
|
83
90
|
return new Promise((resolve, reject) => {
|
|
84
|
-
this.resolve =
|
|
91
|
+
this.resolve = (sig: string) => {
|
|
92
|
+
resolve({
|
|
93
|
+
digest: ethers.utils.sha256(ethers.utils.toUtf8Bytes(args.message)),
|
|
94
|
+
signature: sig,
|
|
95
|
+
});
|
|
96
|
+
};
|
|
85
97
|
this.reject = reject;
|
|
86
98
|
|
|
87
99
|
const url = new URL(`${this.unWalletConfig.baseURL}/x/sign`);
|
|
88
100
|
url.searchParams.set("connectionID", this.connectionID);
|
|
101
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
89
102
|
url.searchParams.set("message", args.message);
|
|
103
|
+
|
|
104
|
+
this.openWindow(url);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
public signTransaction(args: {
|
|
109
|
+
to: string;
|
|
110
|
+
value?: string;
|
|
111
|
+
data?: string;
|
|
112
|
+
}): Promise<MetaTransaction> {
|
|
113
|
+
return new Promise((resolve, reject) => {
|
|
114
|
+
this.resolve = resolve;
|
|
115
|
+
this.reject = reject;
|
|
116
|
+
|
|
117
|
+
const url = new URL(`${this.unWalletConfig.baseURL}/x/signTransaction`);
|
|
118
|
+
url.searchParams.set("connectionID", this.connectionID);
|
|
119
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
120
|
+
url.searchParams.set("transaction", JSON.stringify(args));
|
|
121
|
+
|
|
90
122
|
this.openWindow(url);
|
|
91
123
|
});
|
|
92
124
|
}
|
|
@@ -102,9 +134,11 @@ export class UnWallet {
|
|
|
102
134
|
|
|
103
135
|
const url = new URL(`${this.unWalletConfig.baseURL}/x/signTokenTransfer`);
|
|
104
136
|
url.searchParams.set("connectionID", this.connectionID);
|
|
137
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
105
138
|
url.searchParams.set("id", args.id.toString());
|
|
106
139
|
url.searchParams.set("to", args.to);
|
|
107
140
|
url.searchParams.set("amount", args.amount.toString());
|
|
141
|
+
|
|
108
142
|
this.openWindow(url);
|
|
109
143
|
});
|
|
110
144
|
}
|
|
@@ -121,8 +155,10 @@ export class UnWallet {
|
|
|
121
155
|
`${this.unWalletConfig.baseURL}/x/createPresentation`
|
|
122
156
|
);
|
|
123
157
|
url.searchParams.set("connectionID", this.connectionID);
|
|
158
|
+
url.searchParams.set("clientID", this.config.clientID);
|
|
124
159
|
url.searchParams.set("credential", args.credential);
|
|
125
160
|
url.searchParams.set("challenge", args.challenge);
|
|
161
|
+
|
|
126
162
|
this.openWindow(url);
|
|
127
163
|
});
|
|
128
164
|
}
|
|
@@ -140,16 +176,33 @@ export class UnWallet {
|
|
|
140
176
|
private handleWSMessage(msg: any): void {
|
|
141
177
|
switch (msg.type) {
|
|
142
178
|
case "signature":
|
|
179
|
+
this.resolve!(msg.value);
|
|
180
|
+
break;
|
|
181
|
+
|
|
143
182
|
case "metaTransaction":
|
|
183
|
+
this.resolve!(msg.value);
|
|
184
|
+
break;
|
|
185
|
+
|
|
144
186
|
case "presentation":
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
187
|
+
this.resolve!(msg.value);
|
|
188
|
+
break;
|
|
189
|
+
|
|
190
|
+
case "error":
|
|
191
|
+
switch (msg.value) {
|
|
192
|
+
case "rejected":
|
|
193
|
+
this.reject!("canceled");
|
|
194
|
+
break;
|
|
195
|
+
|
|
196
|
+
default:
|
|
197
|
+
throw new Error(msg.value);
|
|
149
198
|
}
|
|
150
|
-
this.initPromiseArgs();
|
|
151
199
|
break;
|
|
200
|
+
|
|
201
|
+
default:
|
|
202
|
+
throw new Error(`unknown message type: ${msg.type}`);
|
|
152
203
|
}
|
|
204
|
+
|
|
205
|
+
this.initPromiseArgs();
|
|
153
206
|
}
|
|
154
207
|
|
|
155
208
|
private openWindow(url: URL): void {
|