zano_web3 9.2.1 → 9.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zano_web3",
3
- "version": "9.2.1",
3
+ "version": "9.3.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./web/dist/index.js",
@@ -17,7 +17,7 @@ export function validateTokensInput(input, decimal_point = 12) {
17
17
  error: 'Invalid decimal point',
18
18
  };
19
19
  }
20
- const dotInput = input.replace(/,/g, '');
20
+ const dotInput = input.replace(/,/g, '.');
21
21
  const decimalDevider = new Decimal(10).pow(decimal_point);
22
22
  const maxAllowedNumber = MAX_NUMBER.div(decimalDevider);
23
23
  const minAllowedNumber = new Decimal(1).div(decimalDevider);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Wallet } from './types';
4
4
  export interface ZanoWalletParams {
5
5
  authPath: string;
6
6
  useLocalStorage?: boolean; // default: true
7
- aliasRequired?: boolean;
7
+ aliasRequired?: boolean;
8
8
  customLocalStorageKey?: string;
9
9
  customNonce?: string;
10
10
  customServerPath?: string;
@@ -35,6 +35,15 @@ interface WalletCredentials {
35
35
  address: string;
36
36
  }
37
37
 
38
+ type PermissionType =
39
+ | 'general'
40
+ | 'balance'
41
+ | 'history'
42
+
43
+ interface CompanionPermission {
44
+ type: PermissionType;
45
+ }
46
+
38
47
  class ZanoWallet {
39
48
 
40
49
  private DEFAULT_LOCAL_STORAGE_KEY = "wallet";
@@ -42,7 +51,7 @@ class ZanoWallet {
42
51
 
43
52
  private params: ZanoWalletParams;
44
53
  private zanoWallet: ZanoWindowParams;
45
-
54
+
46
55
  constructor(params: ZanoWalletParams) {
47
56
 
48
57
  if (typeof window === 'undefined') {
@@ -57,9 +66,9 @@ class ZanoWallet {
57
66
  this.zanoWallet = ((window as unknown) as ZanoWindow).zano;
58
67
  this.localStorageKey = params.customLocalStorageKey || this.DEFAULT_LOCAL_STORAGE_KEY;
59
68
  }
60
-
61
69
 
62
- private handleError({ message } : { message: string }) {
70
+
71
+ private handleError({ message }: { message: string }) {
63
72
  if (this.params.onConnectError) {
64
73
  this.params.onConnectError(message);
65
74
  } else {
@@ -89,8 +98,13 @@ class ZanoWallet {
89
98
  this.setWalletCredentials(undefined);
90
99
  }
91
100
 
92
- async connect() {
101
+ async requestPermissions(permissions: CompanionPermission[]) {
102
+ return this.zanoWallet.request('REQUEST_ACCESS', {
103
+ permissions,
104
+ });
105
+ }
93
106
 
107
+ async connect() {
94
108
  if (this.params.beforeConnect) {
95
109
  await this.params.beforeConnect();
96
110
  }
@@ -122,7 +136,7 @@ class ZanoWallet {
122
136
  console.log('existingWalletValid', existingWalletValid);
123
137
  console.log('existingWallet', existingWallet);
124
138
  console.log('walletData', walletData);
125
-
139
+
126
140
  if (existingWalletValid) {
127
141
  nonce = existingWallet.nonce;
128
142
  signature = existingWallet.signature;
@@ -131,23 +145,23 @@ class ZanoWallet {
131
145
  const generatedNonce = this.params.customNonce || uuidv4();
132
146
 
133
147
  const signResult = await this.zanoWallet.request(
134
- 'REQUEST_MESSAGE_SIGN',
148
+ 'REQUEST_MESSAGE_SIGN',
135
149
  {
136
150
  message: generatedNonce
137
- },
151
+ },
138
152
  null
139
153
  );
140
154
 
141
155
  if (!signResult?.data?.result) {
142
156
  return this.handleError({ message: 'Failed to sign message' });
143
- }
157
+ }
144
158
 
145
159
  nonce = generatedNonce;
146
160
  signature = signResult.data.result.sig;
147
161
  publicKey = signResult.data.result.pkey;
148
162
  }
149
163
 
150
-
164
+
151
165
  const serverData = {
152
166
  alias: walletData.alias,
153
167
  address: walletData.address,
@@ -163,7 +177,7 @@ class ZanoWallet {
163
177
 
164
178
 
165
179
  if (!this.params.disableServerRequest) {
166
- const result = await fetch( this.params.customServerPath || "/api/auth", {
180
+ const result = await fetch(this.params.customServerPath || "/api/auth", {
167
181
  method: "POST",
168
182
  headers: {
169
183
  "Content-Type": "application/json",
@@ -174,11 +188,11 @@ class ZanoWallet {
174
188
  }
175
189
  )
176
190
  })
177
- .then(res => res.json())
178
- .catch((e) => ({
179
- success: false,
180
- error: e.message
181
- }));
191
+ .then(res => res.json())
192
+ .catch((e) => ({
193
+ success: false,
194
+ error: e.message
195
+ }));
182
196
 
183
197
  if (!result?.success || !result?.data) {
184
198
  return this.handleError({ message: result.error });
@@ -203,7 +217,7 @@ class ZanoWallet {
203
217
 
204
218
  return true;
205
219
  }
206
-
220
+
207
221
  async getWallet() {
208
222
  return (await this.zanoWallet.request('GET_WALLET_DATA'))?.data as Wallet;
209
223
  }
@@ -217,4 +231,4 @@ class ZanoWallet {
217
231
  }
218
232
  }
219
233
 
220
- export default ZanoWallet;
234
+ export default ZanoWallet;