zano_web3 9.6.0 → 10.1.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.
Files changed (87) hide show
  1. package/package.json +17 -9
  2. package/server/dist/server.d.ts +13 -2
  3. package/server/dist/server.js +68 -6
  4. package/server/dist/server.js.map +1 -1
  5. package/server/dist/types.d.ts +24 -24
  6. package/server/src/server.ts +101 -8
  7. package/server/src/types.ts +111 -111
  8. package/shared/dist/utils.d.ts +61 -0
  9. package/shared/dist/utils.js +188 -0
  10. package/shared/dist/utils.js.map +1 -1
  11. package/shared/src/utils.ts +276 -1
  12. package/web/dist/index.d.ts +2 -4
  13. package/web/dist/index.js +2 -4
  14. package/web/dist/index.js.map +1 -1
  15. package/web/dist/types/errors/index.d.ts +7 -0
  16. package/web/dist/types/errors/index.js +9 -0
  17. package/web/dist/types/errors/index.js.map +1 -0
  18. package/web/dist/types/index.d.ts +4 -0
  19. package/web/dist/types/index.js +5 -0
  20. package/web/dist/types/index.js.map +1 -0
  21. package/web/dist/types/params/companion-requests/index.d.ts +1 -0
  22. package/web/dist/types/params/companion-requests/index.js +2 -0
  23. package/web/dist/types/params/companion-requests/index.js.map +1 -0
  24. package/web/dist/types/params/companion-requests/request-permissions/index.d.ts +5 -0
  25. package/web/dist/types/params/companion-requests/request-permissions/index.js +2 -0
  26. package/web/dist/types/params/companion-requests/request-permissions/index.js.map +1 -0
  27. package/web/dist/types/params/index.d.ts +1 -0
  28. package/web/dist/types/params/index.js +2 -0
  29. package/web/dist/types/params/index.js.map +1 -0
  30. package/web/dist/types/responses/companion-methods/create-alias/index.d.ts +13 -0
  31. package/web/dist/types/responses/companion-methods/create-alias/index.js +10 -0
  32. package/web/dist/types/responses/companion-methods/create-alias/index.js.map +1 -0
  33. package/web/dist/types/responses/companion-methods/get-address-by-alias/index.d.ts +12 -0
  34. package/web/dist/types/responses/companion-methods/get-address-by-alias/index.js +8 -0
  35. package/web/dist/types/responses/companion-methods/get-address-by-alias/index.js.map +1 -0
  36. package/web/dist/types/responses/companion-methods/get-wallet-data/index.d.ts +73 -0
  37. package/web/dist/types/responses/companion-methods/get-wallet-data/index.js +39 -0
  38. package/web/dist/types/responses/companion-methods/get-wallet-data/index.js.map +1 -0
  39. package/web/dist/types/responses/companion-methods/index.d.ts +5 -0
  40. package/web/dist/types/responses/companion-methods/index.js +2 -0
  41. package/web/dist/types/responses/companion-methods/index.js.map +1 -0
  42. package/web/dist/types/responses/companion-methods/request-message-sign/index.d.ts +23 -0
  43. package/web/dist/types/responses/companion-methods/request-message-sign/index.js +16 -0
  44. package/web/dist/types/responses/companion-methods/request-message-sign/index.js.map +1 -0
  45. package/web/dist/types/responses/companion-methods/request-permissions/index.d.ts +13 -0
  46. package/web/dist/types/responses/companion-methods/request-permissions/index.js +10 -0
  47. package/web/dist/types/responses/companion-methods/request-permissions/index.js.map +1 -0
  48. package/web/dist/types/responses/index.d.ts +1 -0
  49. package/web/dist/types/responses/index.js +2 -0
  50. package/web/dist/types/responses/index.js.map +1 -0
  51. package/web/dist/types/special/index.d.ts +1 -0
  52. package/web/dist/types/special/index.js +2 -0
  53. package/web/dist/types/special/index.js.map +1 -0
  54. package/web/dist/types/special/zano-window/index.d.ts +7 -0
  55. package/web/dist/types/special/zano-window/index.js +2 -0
  56. package/web/dist/types/special/zano-window/index.js.map +1 -0
  57. package/web/dist/zano-wallet.d.ts +11 -0
  58. package/web/dist/zano-wallet.js +125 -0
  59. package/web/dist/zano-wallet.js.map +1 -0
  60. package/web/src/index.ts +4 -7
  61. package/web/src/types/errors/index.ts +10 -0
  62. package/web/src/types/index.ts +4 -0
  63. package/web/src/types/params/companion-requests/index.ts +1 -0
  64. package/web/src/types/params/companion-requests/request-permissions/index.ts +10 -0
  65. package/web/src/types/params/index.ts +1 -0
  66. package/web/src/types/responses/companion-methods/create-alias/index.ts +19 -0
  67. package/web/src/types/responses/companion-methods/get-address-by-alias/index.ts +18 -0
  68. package/web/src/types/responses/companion-methods/get-wallet-data/index.ts +52 -0
  69. package/web/src/types/responses/companion-methods/index.ts +5 -0
  70. package/web/src/types/responses/companion-methods/request-message-sign/index.ts +33 -0
  71. package/web/src/types/responses/companion-methods/request-permissions/index.ts +19 -0
  72. package/web/src/types/responses/index.ts +2 -0
  73. package/web/src/types/special/index.ts +1 -0
  74. package/web/src/types/special/zano-window/index.ts +9 -0
  75. package/web/src/zano-wallet.ts +161 -0
  76. package/web/dist/hooks.d.ts +0 -3
  77. package/web/dist/hooks.js +0 -14
  78. package/web/dist/hooks.js.map +0 -1
  79. package/web/dist/types.d.ts +0 -32
  80. package/web/dist/types.js +0 -2
  81. package/web/dist/types.js.map +0 -1
  82. package/web/dist/zanoWallet.d.ts +0 -42
  83. package/web/dist/zanoWallet.js +0 -156
  84. package/web/dist/zanoWallet.js.map +0 -1
  85. package/web/src/hooks.ts +0 -18
  86. package/web/src/types.ts +0 -35
  87. package/web/src/zanoWallet.ts +0 -240
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zano_web3",
3
- "version": "9.6.0",
3
+ "version": "10.1.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./web/dist/index.js",
@@ -20,7 +20,7 @@
20
20
  "build:web": "tsc --project tsconfig.web.json",
21
21
  "build:server": "tsc --project tsconfig.server.json",
22
22
  "build:shared": "tsc --project tsconfig.shared.json",
23
- "build": "npm run build:web && npm run build:server && npm run build:shared"
23
+ "build": "npm run build:shared && npm run build:web && npm run build:server"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",
@@ -36,18 +36,26 @@
36
36
  "author": "",
37
37
  "license": "ISC",
38
38
  "dependencies": {
39
+ "@noble/hashes": "^2.2.0",
40
+ "@scure/base": "^2.2.0",
41
+ "axios": "^1.7.2",
42
+ "big.js": "^6.2.1",
43
+ "decimal.js": "^10.4.3",
44
+ "json-bigint": "^1.0.0",
45
+ "node-forge": "^1.3.1",
46
+ "zod": "^4.4.3"
47
+ },
48
+ "peerDependencies": {
49
+ "react": "^18.3.1"
50
+ },
51
+ "devDependencies": {
39
52
  "@types/big.js": "^6.2.2",
53
+ "@types/json-bigint": "^1.0.4",
40
54
  "@types/node": "^20.14.12",
41
55
  "@types/node-forge": "^1.3.11",
42
56
  "@types/react": "^18.3.3",
43
57
  "@types/uuid": "^10.0.0",
44
- "axios": "^1.7.2",
45
- "big.js": "^6.2.1",
46
- "decimal.js": "^10.4.3",
47
- "node-forge": "^1.3.1",
48
- "react": "^18.3.1",
49
- "typescript": "^5.5.4",
50
- "uuid": "^10.0.0"
58
+ "typescript": "^5.5.4"
51
59
  },
52
60
  "bugs": {
53
61
  "url": "https://github.com/hyle-team/zano_web3/issues"
@@ -21,8 +21,12 @@ declare class ServerWallet {
21
21
  private generateRandomString;
22
22
  private createJWSToken;
23
23
  private generateAccessToken;
24
- fetchDaemon(method: string, params: any): Promise<import("axios").AxiosResponse<any, any, {}>>;
25
- fetchWallet(method: string, params: any): Promise<import("axios").AxiosResponse<any, any, {}>>;
24
+ fetchDaemon(method: string, params: any, { disableLargeNumbersTransformation, }?: {
25
+ disableLargeNumbersTransformation?: boolean;
26
+ }): Promise<import("axios").AxiosResponse<any, any, {}>>;
27
+ fetchWallet(method: string, params: any, { disableLargeNumbersTransformation, }?: {
28
+ disableLargeNumbersTransformation?: boolean;
29
+ }): Promise<import("axios").AxiosResponse<any, any, {}>>;
26
30
  updateWalletRpcUrl(rpcUrl: string): Promise<void>;
27
31
  updateDaemonRpcUrl(rpcUrl: string): Promise<void>;
28
32
  getAssetsList(): Promise<APIAsset[]>;
@@ -32,6 +36,13 @@ declare class ServerWallet {
32
36
  getAliasByAddress(address: string): Promise<any>;
33
37
  getBalances(): Promise<BalanceInfo[]>;
34
38
  validateWallet(authData: AuthData): Promise<boolean>;
39
+ validateSecureMessageSignature({ originalMessage, signedMessage, signature, address, pkeyFromSignature, }: {
40
+ originalMessage: string;
41
+ signedMessage: string;
42
+ signature: string;
43
+ address: string;
44
+ pkeyFromSignature: string;
45
+ }): Promise<boolean>;
35
46
  getTxs(params: GetTxsParams): Promise<TxInfo>;
36
47
  getAliasDetails(alias: string): Promise<AliasDetails>;
37
48
  }
@@ -1,7 +1,10 @@
1
1
  import axios from "axios";
2
2
  import Big from "big.js";
3
+ import JSONbig from "json-bigint";
4
+ const JSONbigString = JSONbig({ storeAsString: true });
3
5
  import { ZANO_ASSET_ID, ZanoError } from "./utils";
4
6
  import forge from "node-forge";
7
+ import { getPkeyFromAddress, parseSecureMessageForSigning } from "../../shared/dist";
5
8
  class ServerWallet {
6
9
  walletUrl;
7
10
  daemonUrl;
@@ -46,7 +49,7 @@ class ServerWallet {
46
49
  };
47
50
  return this.createJWSToken(payload, this.walletAuthToken);
48
51
  }
49
- async fetchDaemon(method, params) {
52
+ async fetchDaemon(method, params, { disableLargeNumbersTransformation = false, } = {}) {
50
53
  const data = {
51
54
  jsonrpc: "2.0",
52
55
  id: 0,
@@ -57,9 +60,23 @@ class ServerWallet {
57
60
  "Content-Type": "application/json",
58
61
  "Zano-Access-Token": this.generateAccessToken(JSON.stringify(data)),
59
62
  };
60
- return axios.post(this.daemonUrl, data, { headers });
63
+ return axios.post(this.daemonUrl, data, {
64
+ headers,
65
+ transformResponse: !disableLargeNumbersTransformation
66
+ ? [
67
+ (data) => {
68
+ try {
69
+ return JSONbigString.parse(data);
70
+ }
71
+ catch (error) {
72
+ return data;
73
+ }
74
+ }
75
+ ]
76
+ : undefined,
77
+ });
61
78
  }
62
- async fetchWallet(method, params) {
79
+ async fetchWallet(method, params, { disableLargeNumbersTransformation = false, } = {}) {
63
80
  const data = {
64
81
  jsonrpc: "2.0",
65
82
  id: 0,
@@ -70,7 +87,21 @@ class ServerWallet {
70
87
  "Content-Type": "application/json",
71
88
  "Zano-Access-Token": this.generateAccessToken(JSON.stringify(data)),
72
89
  };
73
- return axios.post(this.walletUrl, data, { headers });
90
+ return axios.post(this.walletUrl, data, {
91
+ headers,
92
+ transformResponse: !disableLargeNumbersTransformation
93
+ ? [
94
+ (data) => {
95
+ try {
96
+ return JSONbigString.parse(data);
97
+ }
98
+ catch (error) {
99
+ return data;
100
+ }
101
+ }
102
+ ]
103
+ : undefined,
104
+ });
74
105
  }
75
106
  async updateWalletRpcUrl(rpcUrl) {
76
107
  this.walletUrl = rpcUrl;
@@ -135,7 +166,7 @@ class ServerWallet {
135
166
  }
136
167
  else {
137
168
  const asset = await this.getAssetDetails(assetId);
138
- decimalPoint = asset.decimal_point;
169
+ decimalPoint = new Big(asset.decimal_point).toNumber();
139
170
  }
140
171
  try {
141
172
  const response = await this.fetchWallet("getaddress", {});
@@ -196,7 +227,7 @@ class ServerWallet {
196
227
  ticker: asset.asset_info.ticker,
197
228
  id: asset.asset_info.asset_id,
198
229
  amount: new Big(asset.unlocked)
199
- .div(new Big(10).pow(asset.asset_info.decimal_point))
230
+ .div(new Big(10).pow(new Big(asset.asset_info.decimal_point).toNumber()))
200
231
  .toString(),
201
232
  awaiting_in: new Big(asset.awaiting_in).toString(),
202
233
  awaiting_out: new Big(asset.awaiting_out).toString(),
@@ -251,6 +282,37 @@ class ServerWallet {
251
282
  }
252
283
  return valid;
253
284
  }
285
+ async validateSecureMessageSignature({ originalMessage, signedMessage, signature, address, pkeyFromSignature, }) {
286
+ if (originalMessage !== signedMessage) {
287
+ return false;
288
+ }
289
+ const pkey = getPkeyFromAddress({ address });
290
+ const isPkeyMatching = pkey !== null && pkey === pkeyFromSignature;
291
+ if (!isPkeyMatching) {
292
+ return false;
293
+ }
294
+ const isSignatureValid = await this.validateWallet({
295
+ message: originalMessage,
296
+ signature,
297
+ address,
298
+ pkey,
299
+ });
300
+ if (!isSignatureValid) {
301
+ return false;
302
+ }
303
+ const parsedMessageResult = parseSecureMessageForSigning({ message: originalMessage });
304
+ const parsingData = parsedMessageResult.success ? parsedMessageResult.parsingResult : null;
305
+ const parsedSuccessfully = parsedMessageResult.success && parsingData !== null && parsingData.isSecureMessage && parsingData.isValidSecureMessage;
306
+ if (!parsedSuccessfully) {
307
+ return false;
308
+ }
309
+ const { expirationTime } = parsingData.values;
310
+ const isExpired = expirationTime.getTime() < Date.now();
311
+ if (isExpired) {
312
+ return false;
313
+ }
314
+ return true;
315
+ }
254
316
  async getTxs(params) {
255
317
  const txs = await this.fetchWallet("get_recent_txs_and_info2", {
256
318
  count: params.count,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -18,21 +18,21 @@ export interface ValidationParams {
18
18
  }
19
19
  export interface APIAsset {
20
20
  asset_id: string;
21
- current_supply: number;
22
- decimal_point: number;
21
+ current_supply: number | string;
22
+ decimal_point: number | string;
23
23
  full_name: string;
24
24
  hidden_supply: boolean;
25
25
  meta_info: string;
26
26
  owner: string;
27
27
  ticker: string;
28
- total_max_supply: number;
28
+ total_max_supply: number | string;
29
29
  }
30
30
  export interface APIBalance {
31
31
  asset_info: APIAsset;
32
- awaiting_in: number;
33
- awaiting_out: number;
34
- total: number;
35
- unlocked: number;
32
+ awaiting_in: number | string;
33
+ awaiting_out: number | string;
34
+ total: number | string;
35
+ unlocked: number | string;
36
36
  }
37
37
  export interface BalanceInfo {
38
38
  name: string;
@@ -46,14 +46,14 @@ export interface BalanceInfo {
46
46
  asset_info: APIAsset;
47
47
  }
48
48
  export interface SubTransfer {
49
- amount: number;
49
+ amount: number | string;
50
50
  asset_id: string;
51
51
  is_income: boolean;
52
52
  }
53
53
  export interface EmployedEntry {
54
- amount: number;
54
+ amount: number | string;
55
55
  asset_id: string;
56
- index: number;
56
+ index: number | string;
57
57
  }
58
58
  export interface Transfer {
59
59
  employed_entries: {
@@ -62,32 +62,32 @@ export interface Transfer {
62
62
  };
63
63
  subtransfers: SubTransfer[];
64
64
  comment: string;
65
- fee: number;
66
- height: number;
65
+ fee: number | string;
66
+ height: number | string;
67
67
  is_mining: boolean;
68
68
  is_mixing: boolean;
69
69
  is_service: boolean;
70
70
  payment_id: string;
71
71
  show_sender: boolean;
72
- timestamp: number;
73
- transfer_internal_index: number;
74
- tx_blob_size: number;
72
+ timestamp: number | string;
73
+ transfer_internal_index: number | string;
74
+ tx_blob_size: number | string;
75
75
  tx_hash: string;
76
- tx_type: number;
77
- unlock_time: number;
76
+ tx_type: number | string;
77
+ unlock_time: number | string;
78
78
  remote_addresses: string[] | undefined;
79
79
  remote_aliases: string[] | undefined;
80
80
  }
81
81
  export interface TxInfo {
82
- last_item_index: number;
82
+ last_item_index: number | string;
83
83
  pi: {
84
- balance: number;
85
- curent_height: number;
86
- transfer_entries_count: number;
87
- transfers_count: number;
88
- unlocked_balance: number;
84
+ balance: number | string;
85
+ curent_height: number | string;
86
+ transfer_entries_count: number | string;
87
+ transfers_count: number | string;
88
+ unlocked_balance: number | string;
89
89
  };
90
- total_transfers: number;
90
+ total_transfers: number | string;
91
91
  transfers: Transfer[];
92
92
  }
93
93
  export interface AliasDetails {
@@ -1,5 +1,6 @@
1
1
  import axios from "axios";
2
2
  import Big from "big.js";
3
+ import JSONbig from "json-bigint";
3
4
  import {
4
5
  AuthData,
5
6
  AliasAuth,
@@ -10,9 +11,13 @@ import {
10
11
  AliasDetails,
11
12
  } from "./types";
12
13
 
14
+ const JSONbigString = JSONbig({ storeAsString: true });
15
+
13
16
  import { ZANO_ASSET_ID, ZanoError } from "./utils";
14
17
  import { APIAsset, APIBalance } from "./types";
18
+
15
19
  import forge from "node-forge";
20
+ import { getPkeyFromAddress, parseSecureMessageForSigning } from "../../shared/dist";
16
21
 
17
22
  interface ConstructorParams {
18
23
  walletUrl: string;
@@ -91,9 +96,11 @@ class ServerWallet {
91
96
  }
92
97
 
93
98
 
94
- async fetchDaemon(method: string, params: any) {
95
-
96
-
99
+ async fetchDaemon(method: string, params: any, {
100
+ disableLargeNumbersTransformation = false,
101
+ }: {
102
+ disableLargeNumbersTransformation?: boolean;
103
+ } = {}) {
97
104
  const data = {
98
105
  jsonrpc: "2.0",
99
106
  id: 0,
@@ -106,10 +113,27 @@ class ServerWallet {
106
113
  "Zano-Access-Token": this.generateAccessToken(JSON.stringify(data)),
107
114
  };
108
115
 
109
- return axios.post(this.daemonUrl, data, { headers });
116
+ return axios.post(this.daemonUrl, data, {
117
+ headers,
118
+ transformResponse: !disableLargeNumbersTransformation
119
+ ? [
120
+ (data) => {
121
+ try {
122
+ return JSONbigString.parse(data);
123
+ } catch (error) {
124
+ return data;
125
+ }
126
+ }
127
+ ]
128
+ : undefined,
129
+ });
110
130
  }
111
131
 
112
- async fetchWallet(method: string, params: any) {
132
+ async fetchWallet(method: string, params: any, {
133
+ disableLargeNumbersTransformation = false,
134
+ }: {
135
+ disableLargeNumbersTransformation?: boolean;
136
+ } = {}) {
113
137
 
114
138
  const data = {
115
139
  jsonrpc: "2.0",
@@ -123,7 +147,20 @@ class ServerWallet {
123
147
  "Zano-Access-Token": this.generateAccessToken(JSON.stringify(data)),
124
148
  };
125
149
 
126
- return axios.post(this.walletUrl, data, { headers });
150
+ return axios.post(this.walletUrl, data, {
151
+ headers,
152
+ transformResponse: !disableLargeNumbersTransformation
153
+ ? [
154
+ (data) => {
155
+ try {
156
+ return JSONbigString.parse(data);
157
+ } catch (error) {
158
+ return data;
159
+ }
160
+ }
161
+ ]
162
+ : undefined,
163
+ });
127
164
  }
128
165
 
129
166
  async updateWalletRpcUrl(rpcUrl: string) {
@@ -209,7 +246,7 @@ class ServerWallet {
209
246
  decimalPoint = 12;
210
247
  } else {
211
248
  const asset = await this.getAssetDetails(assetId);
212
- decimalPoint = asset.decimal_point;
249
+ decimalPoint = new Big(asset.decimal_point).toNumber();
213
250
  }
214
251
 
215
252
  try {
@@ -276,7 +313,7 @@ class ServerWallet {
276
313
  ticker: asset.asset_info.ticker,
277
314
  id: asset.asset_info.asset_id,
278
315
  amount: new Big(asset.unlocked)
279
- .div(new Big(10).pow(asset.asset_info.decimal_point))
316
+ .div(new Big(10).pow(new Big(asset.asset_info.decimal_point).toNumber()))
280
317
  .toString(),
281
318
  awaiting_in: new Big(asset.awaiting_in).toString(),
282
319
  awaiting_out: new Big(asset.awaiting_out).toString(),
@@ -345,6 +382,62 @@ class ServerWallet {
345
382
  return valid;
346
383
  }
347
384
 
385
+ async validateSecureMessageSignature({
386
+ originalMessage,
387
+ signedMessage,
388
+ signature,
389
+ address,
390
+ pkeyFromSignature,
391
+ }: {
392
+ originalMessage: string;
393
+ signedMessage: string;
394
+ signature: string;
395
+ address: string;
396
+ pkeyFromSignature: string;
397
+ }): Promise<boolean> {
398
+ if (originalMessage !== signedMessage) {
399
+ return false;
400
+ }
401
+
402
+ const pkey = getPkeyFromAddress({ address });
403
+
404
+ const isPkeyMatching = pkey !== null && pkey === pkeyFromSignature;
405
+
406
+ if (!isPkeyMatching) {
407
+ return false;
408
+ }
409
+
410
+ const isSignatureValid = await this.validateWallet({
411
+ message: originalMessage,
412
+ signature,
413
+ address,
414
+ pkey,
415
+ });
416
+
417
+ if (!isSignatureValid) {
418
+ return false;
419
+ }
420
+
421
+ const parsedMessageResult = parseSecureMessageForSigning({ message: originalMessage });
422
+ const parsingData = parsedMessageResult.success ? parsedMessageResult.parsingResult : null;
423
+
424
+ const parsedSuccessfully = parsedMessageResult.success && parsingData !== null && parsingData.isSecureMessage && parsingData.isValidSecureMessage;
425
+
426
+ if (!parsedSuccessfully) {
427
+ return false;
428
+ }
429
+
430
+ const { expirationTime } = parsingData.values;
431
+
432
+ const isExpired = expirationTime.getTime() < Date.now();
433
+
434
+ if (isExpired) {
435
+ return false;
436
+ }
437
+
438
+ return true;
439
+ }
440
+
348
441
  async getTxs(params: GetTxsParams) {
349
442
  const txs = await this.fetchWallet("get_recent_txs_and_info2", {
350
443
  count: params.count,