zano_web3 2.4.0 → 2.6.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/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/src/hooks.d.ts +3 -0
- package/dist/src/hooks.js +14 -0
- package/dist/src/hooks.js.map +1 -0
- package/dist/src/server.d.ts +14 -0
- package/dist/src/server.js +46 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/zanoWallet.d.ts +31 -0
- package/dist/src/zanoWallet.js +126 -0
- package/dist/src/zanoWallet.js.map +1 -0
- package/package.json +1 -1
- package/src/server.ts +1 -1
- package/src/zanoWallet.ts +1 -1
- package/tsconfig.json +10 -5
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAC,aAAa,EAAC,CAAC;AAEvB,OAAO,cAAc,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,CAAC;AAExB,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import ZanoWallet from './zanoWallet';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
function useZanoWallet(params) {
|
|
4
|
+
const [zanoWallet, setZanoWallet] = useState(null);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
if (typeof window === 'undefined') {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
setZanoWallet(new ZanoWallet(params));
|
|
10
|
+
}, []);
|
|
11
|
+
return zanoWallet;
|
|
12
|
+
}
|
|
13
|
+
export { useZanoWallet };
|
|
14
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,UAAgC,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,SAAS,aAAa,CAAC,MAAwB;IAC3C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IAEtE,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO;QACX,CAAC;QAED,aAAa,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface BaseAuthData {
|
|
2
|
+
address: string;
|
|
3
|
+
signature: string;
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
interface AliasAuth extends BaseAuthData {
|
|
7
|
+
alias: string;
|
|
8
|
+
}
|
|
9
|
+
interface PkeyAuth extends BaseAuthData {
|
|
10
|
+
pkey: string;
|
|
11
|
+
}
|
|
12
|
+
type AuthData = AliasAuth | PkeyAuth;
|
|
13
|
+
declare function validateWallet(rpcUrl: string, authData: AuthData): Promise<boolean>;
|
|
14
|
+
export default validateWallet;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
async function validateWallet(rpcUrl, authData) {
|
|
3
|
+
async function fetchZanoApi(method, params) {
|
|
4
|
+
return await axios.post('http://195.201.107.230:33340/json_rpc', {
|
|
5
|
+
"id": 0,
|
|
6
|
+
"jsonrpc": "2.0",
|
|
7
|
+
"method": method,
|
|
8
|
+
"params": params,
|
|
9
|
+
}).then(res => res.data);
|
|
10
|
+
}
|
|
11
|
+
const { message, address, signature } = authData;
|
|
12
|
+
const alias = authData.alias || undefined;
|
|
13
|
+
const pkey = authData.pkey || undefined;
|
|
14
|
+
if (!message || (!alias && !pkey) || !signature) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const validationParams = {
|
|
18
|
+
"buff": Buffer.from(message).toString("base64"),
|
|
19
|
+
"sig": signature
|
|
20
|
+
};
|
|
21
|
+
if (alias) {
|
|
22
|
+
validationParams['alias'] = alias;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
validationParams['pkey'] = pkey;
|
|
26
|
+
}
|
|
27
|
+
const response = await fetchZanoApi('validate_signature', validationParams);
|
|
28
|
+
const valid = response?.result?.status === 'OK';
|
|
29
|
+
if (!valid) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (alias) {
|
|
33
|
+
const aliasDetailsResponse = await fetchZanoApi('get_alias_details', {
|
|
34
|
+
"alias": alias,
|
|
35
|
+
});
|
|
36
|
+
const aliasDetails = aliasDetailsResponse?.result?.alias_details;
|
|
37
|
+
const aliasAddress = aliasDetails?.address;
|
|
38
|
+
const addressValid = !!aliasAddress && aliasAddress === address;
|
|
39
|
+
if (!addressValid) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return valid;
|
|
44
|
+
}
|
|
45
|
+
export default validateWallet;
|
|
46
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2B1B,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,QAAkB;IAE5D,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAW;QACnD,OAAO,MAAM,KAAK,CAAC,IAAI,CACnB,uCAAuC,EACvC;YACI,IAAI,EAAE,CAAC;YACP,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,MAAM;SACnB,CACJ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IAEjD,MAAM,KAAK,GAAI,QAAsB,CAAC,KAAK,IAAI,SAAS,CAAC;IACzD,MAAM,IAAI,GAAI,QAAqB,CAAC,IAAI,IAAI,SAAS,CAAC;IAEtD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,gBAAgB,GAAqB;QACvC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,KAAK,EAAE,SAAS;KACnB,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACR,gBAAgB,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IACtC,CAAC;SAAM,CAAC;QACJ,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAC/B,oBAAoB,EACpB,gBAAgB,CACnB,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,oBAAoB,GAAG,MAAM,YAAY,CAC3C,mBAAmB,EACnB;YACI,OAAO,EAAE,KAAK;SACjB,CACJ,CAAC;QAEF,MAAM,YAAY,GAAG,oBAAoB,EAAE,MAAM,EAAE,aAAa,CAAC;QACjE,MAAM,YAAY,GAAG,YAAY,EAAE,OAAO,CAAC;QAE3C,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,OAAO,CAAC;QAEhE,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface ZanoWalletParams {
|
|
2
|
+
authPath: string;
|
|
3
|
+
useLocalStorage?: boolean;
|
|
4
|
+
aliasRequired?: boolean;
|
|
5
|
+
customLocalStorageKey?: string;
|
|
6
|
+
customNonce?: string;
|
|
7
|
+
customServerPath?: string;
|
|
8
|
+
disableServerRequest?: boolean;
|
|
9
|
+
onConnectStart?: (...params: any) => any;
|
|
10
|
+
onConnectEnd?: (...params: any) => any;
|
|
11
|
+
onConnectError?: (...params: any) => any;
|
|
12
|
+
beforeConnect?: (...params: any) => any;
|
|
13
|
+
onLocalConnectEnd?: (...params: any) => any;
|
|
14
|
+
}
|
|
15
|
+
interface WalletCredentials {
|
|
16
|
+
nonce: string;
|
|
17
|
+
signature: string;
|
|
18
|
+
publicKey: string;
|
|
19
|
+
}
|
|
20
|
+
declare class ZanoWallet {
|
|
21
|
+
private DEFAULT_LOCAL_STORAGE_KEY;
|
|
22
|
+
private localStorageKey;
|
|
23
|
+
private params;
|
|
24
|
+
private zanoWallet;
|
|
25
|
+
constructor(params: ZanoWalletParams);
|
|
26
|
+
private handleError;
|
|
27
|
+
getSavedWalletCredentials(): WalletCredentials | undefined;
|
|
28
|
+
setWalletCredentials(credentials: WalletCredentials | undefined): void;
|
|
29
|
+
connect(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
export default ZanoWallet;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
class ZanoWallet {
|
|
3
|
+
DEFAULT_LOCAL_STORAGE_KEY = "wallet";
|
|
4
|
+
localStorageKey;
|
|
5
|
+
params;
|
|
6
|
+
zanoWallet;
|
|
7
|
+
constructor(params) {
|
|
8
|
+
if (typeof window === 'undefined') {
|
|
9
|
+
throw new Error('ZanoWallet can only be used in the browser');
|
|
10
|
+
}
|
|
11
|
+
if (!window.zano) {
|
|
12
|
+
throw new Error('ZanoWallet requires the ZanoWallet extension to be installed');
|
|
13
|
+
}
|
|
14
|
+
this.params = params;
|
|
15
|
+
this.zanoWallet = window.zano;
|
|
16
|
+
this.localStorageKey = params.customLocalStorageKey || this.DEFAULT_LOCAL_STORAGE_KEY;
|
|
17
|
+
}
|
|
18
|
+
handleError({ message }) {
|
|
19
|
+
if (this.params.onConnectError) {
|
|
20
|
+
this.params.onConnectError(message);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
console.error(message);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
getSavedWalletCredentials() {
|
|
27
|
+
const savedWallet = localStorage.getItem(this.localStorageKey);
|
|
28
|
+
if (!savedWallet)
|
|
29
|
+
return undefined;
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(savedWallet);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
setWalletCredentials(credentials) {
|
|
38
|
+
if (credentials) {
|
|
39
|
+
localStorage.setItem(this.localStorageKey, JSON.stringify(credentials));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
localStorage.removeItem(this.localStorageKey);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async connect() {
|
|
46
|
+
if (this.params.beforeConnect) {
|
|
47
|
+
await this.params.beforeConnect();
|
|
48
|
+
}
|
|
49
|
+
if (this.params.onConnectStart) {
|
|
50
|
+
this.params.onConnectStart();
|
|
51
|
+
}
|
|
52
|
+
const walletData = (await window.zano.request('GET_WALLET_DATA')).data;
|
|
53
|
+
if (!walletData?.address) {
|
|
54
|
+
return this.handleError({ message: 'Companion is offline' });
|
|
55
|
+
}
|
|
56
|
+
if (!walletData?.alias && this.params.aliasRequired) {
|
|
57
|
+
return this.handleError({ message: 'Alias not found' });
|
|
58
|
+
}
|
|
59
|
+
let nonce = "";
|
|
60
|
+
let signature = "";
|
|
61
|
+
let publicKey = "";
|
|
62
|
+
const existingWallet = this.params.useLocalStorage ? this.getSavedWalletCredentials() : undefined;
|
|
63
|
+
if (existingWallet) {
|
|
64
|
+
nonce = existingWallet.nonce;
|
|
65
|
+
signature = existingWallet.signature;
|
|
66
|
+
publicKey = existingWallet.publicKey;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const generatedNonce = this.params.customNonce || uuidv4();
|
|
70
|
+
const signResult = await this.zanoWallet.request('REQUEST_MESSAGE_SIGN', {
|
|
71
|
+
message: generatedNonce
|
|
72
|
+
}, null);
|
|
73
|
+
if (!signResult?.data?.result) {
|
|
74
|
+
return this.handleError({ message: 'Failed to sign message' });
|
|
75
|
+
}
|
|
76
|
+
nonce = generatedNonce;
|
|
77
|
+
signature = signResult.data.result.sig;
|
|
78
|
+
publicKey = signResult.data.result.pkey;
|
|
79
|
+
}
|
|
80
|
+
const serverData = {
|
|
81
|
+
alias: walletData.alias,
|
|
82
|
+
address: walletData.address,
|
|
83
|
+
signature,
|
|
84
|
+
publicKey,
|
|
85
|
+
message: nonce,
|
|
86
|
+
isSavedData: !!existingWallet
|
|
87
|
+
};
|
|
88
|
+
if (this.params.onLocalConnectEnd) {
|
|
89
|
+
this.params.onLocalConnectEnd(serverData);
|
|
90
|
+
}
|
|
91
|
+
if (!this.params.disableServerRequest) {
|
|
92
|
+
const result = await fetch(this.params.customServerPath || "/api/auth", {
|
|
93
|
+
method: "POST",
|
|
94
|
+
headers: {
|
|
95
|
+
"Content-Type": "application/json",
|
|
96
|
+
},
|
|
97
|
+
body: JSON.stringify({
|
|
98
|
+
data: serverData
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
.then(res => res.json())
|
|
102
|
+
.catch((e) => ({
|
|
103
|
+
success: false,
|
|
104
|
+
error: e.message
|
|
105
|
+
}));
|
|
106
|
+
if (!result?.success || !result?.data) {
|
|
107
|
+
return this.handleError({ message: result.error });
|
|
108
|
+
}
|
|
109
|
+
if (!existingWallet && this.params.useLocalStorage) {
|
|
110
|
+
this.setWalletCredentials({
|
|
111
|
+
publicKey,
|
|
112
|
+
signature,
|
|
113
|
+
nonce
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (this.params.onConnectEnd) {
|
|
117
|
+
this.params.onConnectEnd({
|
|
118
|
+
...serverData,
|
|
119
|
+
token: result.data.token
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export default ZanoWallet;
|
|
126
|
+
//# sourceMappingURL=zanoWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zanoWallet.js","sourceRoot":"","sources":["../../src/zanoWallet.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/server.ts
CHANGED
package/src/zanoWallet.ts
CHANGED
package/tsconfig.json
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"target": "
|
|
4
|
-
"module": "
|
|
3
|
+
"target": "ESNext",
|
|
4
|
+
"module": "ESNext",
|
|
5
5
|
"declaration": true,
|
|
6
6
|
"outDir": "./dist",
|
|
7
7
|
"strict": true,
|
|
8
8
|
"esModuleInterop": true,
|
|
9
|
-
"
|
|
9
|
+
"moduleResolution": "node",
|
|
10
|
+
"resolveJsonModule": true,
|
|
11
|
+
"lib": ["ESNext", "DOM"],
|
|
12
|
+
"sourceMap": true,
|
|
13
|
+
"allowSyntheticDefaultImports": true
|
|
10
14
|
},
|
|
11
|
-
"include": ["src/**/*", "index.ts"]
|
|
12
|
-
|
|
15
|
+
"include": ["src/**/*", "index.ts"],
|
|
16
|
+
"exclude": ["node_modules"]
|
|
17
|
+
}
|