@onekeyfe/onekey-alph-provider 2.2.60 → 2.2.62
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/OnekeyAlphProvider.d.ts +15 -3
- package/dist/OnekeyAlphProvider.js +60 -23
- package/dist/cjs/OnekeyAlphProvider.js +59 -22
- package/package.json +6 -6
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { IInpageProviderConfig } from '@onekeyfe/cross-inpage-provider-core';
|
|
2
2
|
import { AlephiumWindowObject, EnableOptions, RequestMessage } from '@alephium/get-extension-wallet';
|
|
3
|
-
import {
|
|
4
|
-
import type { EnableOptionsBase, Account, SignDeployContractTxParams, SignDeployContractTxResult, SignExecuteScriptTxParams, SignExecuteScriptTxResult, SignTransferTxParams, SignTransferTxResult, SignUnsignedTxParams, SignUnsignedTxResult, SignMessageParams, SignMessageResult } from '@alephium/web3';
|
|
3
|
+
import { InteractiveSignerProvider } from '@alephium/web3';
|
|
4
|
+
import type { EnableOptionsBase, Account, NodeProvider, ExplorerProvider, SignDeployContractTxParams, SignDeployContractTxResult, SignExecuteScriptTxParams, SignExecuteScriptTxResult, SignTransferTxParams, SignTransferTxResult, SignUnsignedTxParams, SignUnsignedTxResult, SignMessageParams, SignMessageResult } from '@alephium/web3';
|
|
5
5
|
import { ProviderAlphBase } from './ProviderAlphBase';
|
|
6
6
|
type OneKeyTonProviderProps = IInpageProviderConfig & {
|
|
7
7
|
timeout?: number;
|
|
8
8
|
};
|
|
9
9
|
export declare class ProviderAlph extends InteractiveSignerProvider implements AlephiumWindowObject {
|
|
10
|
-
#private;
|
|
11
10
|
_base: ProviderAlphBase;
|
|
12
11
|
id: string;
|
|
13
12
|
name: string;
|
|
@@ -15,6 +14,8 @@ export declare class ProviderAlph extends InteractiveSignerProvider implements A
|
|
|
15
14
|
version: string;
|
|
16
15
|
_accountInfo: Account | undefined;
|
|
17
16
|
onDisconnected: (() => void | Promise<void>) | undefined;
|
|
17
|
+
private _nodeProvider;
|
|
18
|
+
private _explorerProvider;
|
|
18
19
|
constructor(props: OneKeyTonProviderProps);
|
|
19
20
|
private bridgeRequest;
|
|
20
21
|
on(eventName: string | symbol, listener: (...args: unknown[]) => void): void;
|
|
@@ -33,6 +34,17 @@ export declare class ProviderAlph extends InteractiveSignerProvider implements A
|
|
|
33
34
|
unsafeEnable(opt?: EnableOptionsBase | undefined): Promise<Account>;
|
|
34
35
|
get nodeProvider(): NodeProvider | undefined;
|
|
35
36
|
get explorerProvider(): ExplorerProvider | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Create a two-level Proxy that forwards all property access to the App side
|
|
39
|
+
* via bridge, where the real NodeProvider/ExplorerProvider executes the call.
|
|
40
|
+
*
|
|
41
|
+
* Handles three usage patterns:
|
|
42
|
+
* 1. provider.namespace.method(...args) -- e.g. nodeProvider.addresses.getAddressesAddressBalance('T...')
|
|
43
|
+
* 2. provider.directMethod(...args) -- e.g. nodeProvider.fetchFungibleTokenMetaData(tokenId)
|
|
44
|
+
* 3. provider.request(args) -- low-level API
|
|
45
|
+
*/
|
|
46
|
+
private _sanitizeBridgeParams;
|
|
47
|
+
private _createProviderProxy;
|
|
36
48
|
unsafeGetSelectedAccount(): Promise<Account>;
|
|
37
49
|
signAndSubmitDeployContractTx(params: SignDeployContractTxParams): Promise<SignDeployContractTxResult>;
|
|
38
50
|
signAndSubmitExecuteScriptTx(params: SignExecuteScriptTxParams): Promise<SignExecuteScriptTxResult>;
|
|
@@ -7,20 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
11
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
12
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
13
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
14
|
-
};
|
|
15
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
16
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
17
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
18
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
19
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
20
|
-
};
|
|
21
|
-
var _ProviderAlph_nodeProvider, _ProviderAlph_explorerProvider;
|
|
22
10
|
import { getOrCreateExtInjectedJsBridge } from '@onekeyfe/extension-bridge-injected';
|
|
23
|
-
import {
|
|
11
|
+
import { InteractiveSignerProvider } from '@alephium/web3';
|
|
24
12
|
import { ProviderAlphBase } from './ProviderAlphBase';
|
|
25
13
|
const PROVIDER_EVENTS = {
|
|
26
14
|
'disconnect': 'disconnect',
|
|
@@ -40,10 +28,17 @@ export class ProviderAlph extends InteractiveSignerProvider {
|
|
|
40
28
|
this.icon = 'https://uni.onekey-asset.com/static/logo/onekey.png';
|
|
41
29
|
this.version = '0.9.4';
|
|
42
30
|
this.onDisconnected = undefined;
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
this._nodeProvider = undefined;
|
|
32
|
+
this._explorerProvider = undefined;
|
|
45
33
|
this._base = new ProviderAlphBase(Object.assign(Object.assign({}, props), { bridge: props.bridge || getOrCreateExtInjectedJsBridge({ timeout: props.timeout }) }));
|
|
46
34
|
this.version = this._base.version;
|
|
35
|
+
// Create proxy providers eagerly in the constructor.
|
|
36
|
+
// defineWindowProperty() wraps the instance in a Proxy whose defineProperty
|
|
37
|
+
// trap silently blocks property assignments not in its whitelist.
|
|
38
|
+
// Lazy assignment in the getter (this._nodeProvider = ...) is swallowed
|
|
39
|
+
// by that trap, so we must set these before the Proxy wrapping happens.
|
|
40
|
+
this._nodeProvider = this._createProviderProxy('alph_nodeProvider_request');
|
|
41
|
+
this._explorerProvider = this._createProviderProxy('alph_explorerProvider_request');
|
|
47
42
|
this._registerEvents();
|
|
48
43
|
}
|
|
49
44
|
bridgeRequest(data) {
|
|
@@ -161,16 +156,59 @@ export class ProviderAlph extends InteractiveSignerProvider {
|
|
|
161
156
|
return this.bridgeRequest({ method: 'unsafeEnable', params });
|
|
162
157
|
}
|
|
163
158
|
get nodeProvider() {
|
|
164
|
-
|
|
165
|
-
__classPrivateFieldSet(this, _ProviderAlph_nodeProvider, new NodeProvider('https://node.mainnet.alephium.org'), "f");
|
|
166
|
-
}
|
|
167
|
-
return __classPrivateFieldGet(this, _ProviderAlph_nodeProvider, "f");
|
|
159
|
+
return this._nodeProvider;
|
|
168
160
|
}
|
|
169
161
|
get explorerProvider() {
|
|
170
|
-
|
|
171
|
-
|
|
162
|
+
return this._explorerProvider;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Create a two-level Proxy that forwards all property access to the App side
|
|
166
|
+
* via bridge, where the real NodeProvider/ExplorerProvider executes the call.
|
|
167
|
+
*
|
|
168
|
+
* Handles three usage patterns:
|
|
169
|
+
* 1. provider.namespace.method(...args) -- e.g. nodeProvider.addresses.getAddressesAddressBalance('T...')
|
|
170
|
+
* 2. provider.directMethod(...args) -- e.g. nodeProvider.fetchFungibleTokenMetaData(tokenId)
|
|
171
|
+
* 3. provider.request(args) -- low-level API
|
|
172
|
+
*/
|
|
173
|
+
// eslint-disable-next-line class-methods-use-this
|
|
174
|
+
_sanitizeBridgeParams(value) {
|
|
175
|
+
if (typeof value === 'bigint')
|
|
176
|
+
return value.toString();
|
|
177
|
+
if (Array.isArray(value))
|
|
178
|
+
return value.map((v) => this._sanitizeBridgeParams(v));
|
|
179
|
+
if (value !== null && typeof value === 'object') {
|
|
180
|
+
const out = {};
|
|
181
|
+
for (const [k, v] of Object.entries(value)) {
|
|
182
|
+
out[k] = this._sanitizeBridgeParams(v);
|
|
183
|
+
}
|
|
184
|
+
return out;
|
|
172
185
|
}
|
|
173
|
-
return
|
|
186
|
+
return value;
|
|
187
|
+
}
|
|
188
|
+
_createProviderProxy(bridgeMethod) {
|
|
189
|
+
const bridge = this.bridgeRequest.bind(this);
|
|
190
|
+
const sanitize = this._sanitizeBridgeParams.bind(this);
|
|
191
|
+
const forward = (args) => bridge({ method: bridgeMethod, params: sanitize(args) });
|
|
192
|
+
return new Proxy(Object.create(null), {
|
|
193
|
+
get(_, prop) {
|
|
194
|
+
if (typeof prop !== 'string' || prop === 'then' || prop === 'toJSON')
|
|
195
|
+
return undefined;
|
|
196
|
+
// request() — standard low-level API: provider.request({ path, method, params })
|
|
197
|
+
if (prop === 'request')
|
|
198
|
+
return forward;
|
|
199
|
+
// Return a callable Proxy:
|
|
200
|
+
// - Called directly → direct method: provider.fetchFungibleTokenMetaData(tokenId)
|
|
201
|
+
// - Property access → namespace.method: provider.addresses.getBalance(addr)
|
|
202
|
+
const directCall = (...args) => forward({ path: prop, params: args });
|
|
203
|
+
return new Proxy(directCall, {
|
|
204
|
+
get(_, method) {
|
|
205
|
+
if (typeof method !== 'string' || method === 'then')
|
|
206
|
+
return undefined;
|
|
207
|
+
return (...args) => forward({ path: prop, method, params: args });
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
},
|
|
211
|
+
});
|
|
174
212
|
}
|
|
175
213
|
unsafeGetSelectedAccount() {
|
|
176
214
|
return this.bridgeRequest({ method: 'unsafeGetSelectedAccount' });
|
|
@@ -218,4 +256,3 @@ export class ProviderAlph extends InteractiveSignerProvider {
|
|
|
218
256
|
});
|
|
219
257
|
}
|
|
220
258
|
}
|
|
221
|
-
_ProviderAlph_nodeProvider = new WeakMap(), _ProviderAlph_explorerProvider = new WeakMap();
|
|
@@ -8,18 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
-
};
|
|
16
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
17
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
18
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
19
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
20
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
21
|
-
};
|
|
22
|
-
var _ProviderAlph_nodeProvider, _ProviderAlph_explorerProvider;
|
|
23
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
12
|
exports.ProviderAlph = void 0;
|
|
25
13
|
const extension_bridge_injected_1 = require("@onekeyfe/extension-bridge-injected");
|
|
@@ -43,10 +31,17 @@ class ProviderAlph extends web3_1.InteractiveSignerProvider {
|
|
|
43
31
|
this.icon = 'https://uni.onekey-asset.com/static/logo/onekey.png';
|
|
44
32
|
this.version = '0.9.4';
|
|
45
33
|
this.onDisconnected = undefined;
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
this._nodeProvider = undefined;
|
|
35
|
+
this._explorerProvider = undefined;
|
|
48
36
|
this._base = new ProviderAlphBase_1.ProviderAlphBase(Object.assign(Object.assign({}, props), { bridge: props.bridge || (0, extension_bridge_injected_1.getOrCreateExtInjectedJsBridge)({ timeout: props.timeout }) }));
|
|
49
37
|
this.version = this._base.version;
|
|
38
|
+
// Create proxy providers eagerly in the constructor.
|
|
39
|
+
// defineWindowProperty() wraps the instance in a Proxy whose defineProperty
|
|
40
|
+
// trap silently blocks property assignments not in its whitelist.
|
|
41
|
+
// Lazy assignment in the getter (this._nodeProvider = ...) is swallowed
|
|
42
|
+
// by that trap, so we must set these before the Proxy wrapping happens.
|
|
43
|
+
this._nodeProvider = this._createProviderProxy('alph_nodeProvider_request');
|
|
44
|
+
this._explorerProvider = this._createProviderProxy('alph_explorerProvider_request');
|
|
50
45
|
this._registerEvents();
|
|
51
46
|
}
|
|
52
47
|
bridgeRequest(data) {
|
|
@@ -164,16 +159,59 @@ class ProviderAlph extends web3_1.InteractiveSignerProvider {
|
|
|
164
159
|
return this.bridgeRequest({ method: 'unsafeEnable', params });
|
|
165
160
|
}
|
|
166
161
|
get nodeProvider() {
|
|
167
|
-
|
|
168
|
-
__classPrivateFieldSet(this, _ProviderAlph_nodeProvider, new web3_1.NodeProvider('https://node.mainnet.alephium.org'), "f");
|
|
169
|
-
}
|
|
170
|
-
return __classPrivateFieldGet(this, _ProviderAlph_nodeProvider, "f");
|
|
162
|
+
return this._nodeProvider;
|
|
171
163
|
}
|
|
172
164
|
get explorerProvider() {
|
|
173
|
-
|
|
174
|
-
|
|
165
|
+
return this._explorerProvider;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Create a two-level Proxy that forwards all property access to the App side
|
|
169
|
+
* via bridge, where the real NodeProvider/ExplorerProvider executes the call.
|
|
170
|
+
*
|
|
171
|
+
* Handles three usage patterns:
|
|
172
|
+
* 1. provider.namespace.method(...args) -- e.g. nodeProvider.addresses.getAddressesAddressBalance('T...')
|
|
173
|
+
* 2. provider.directMethod(...args) -- e.g. nodeProvider.fetchFungibleTokenMetaData(tokenId)
|
|
174
|
+
* 3. provider.request(args) -- low-level API
|
|
175
|
+
*/
|
|
176
|
+
// eslint-disable-next-line class-methods-use-this
|
|
177
|
+
_sanitizeBridgeParams(value) {
|
|
178
|
+
if (typeof value === 'bigint')
|
|
179
|
+
return value.toString();
|
|
180
|
+
if (Array.isArray(value))
|
|
181
|
+
return value.map((v) => this._sanitizeBridgeParams(v));
|
|
182
|
+
if (value !== null && typeof value === 'object') {
|
|
183
|
+
const out = {};
|
|
184
|
+
for (const [k, v] of Object.entries(value)) {
|
|
185
|
+
out[k] = this._sanitizeBridgeParams(v);
|
|
186
|
+
}
|
|
187
|
+
return out;
|
|
175
188
|
}
|
|
176
|
-
return
|
|
189
|
+
return value;
|
|
190
|
+
}
|
|
191
|
+
_createProviderProxy(bridgeMethod) {
|
|
192
|
+
const bridge = this.bridgeRequest.bind(this);
|
|
193
|
+
const sanitize = this._sanitizeBridgeParams.bind(this);
|
|
194
|
+
const forward = (args) => bridge({ method: bridgeMethod, params: sanitize(args) });
|
|
195
|
+
return new Proxy(Object.create(null), {
|
|
196
|
+
get(_, prop) {
|
|
197
|
+
if (typeof prop !== 'string' || prop === 'then' || prop === 'toJSON')
|
|
198
|
+
return undefined;
|
|
199
|
+
// request() — standard low-level API: provider.request({ path, method, params })
|
|
200
|
+
if (prop === 'request')
|
|
201
|
+
return forward;
|
|
202
|
+
// Return a callable Proxy:
|
|
203
|
+
// - Called directly → direct method: provider.fetchFungibleTokenMetaData(tokenId)
|
|
204
|
+
// - Property access → namespace.method: provider.addresses.getBalance(addr)
|
|
205
|
+
const directCall = (...args) => forward({ path: prop, params: args });
|
|
206
|
+
return new Proxy(directCall, {
|
|
207
|
+
get(_, method) {
|
|
208
|
+
if (typeof method !== 'string' || method === 'then')
|
|
209
|
+
return undefined;
|
|
210
|
+
return (...args) => forward({ path: prop, method, params: args });
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
},
|
|
214
|
+
});
|
|
177
215
|
}
|
|
178
216
|
unsafeGetSelectedAccount() {
|
|
179
217
|
return this.bridgeRequest({ method: 'unsafeGetSelectedAccount' });
|
|
@@ -222,4 +260,3 @@ class ProviderAlph extends web3_1.InteractiveSignerProvider {
|
|
|
222
260
|
}
|
|
223
261
|
}
|
|
224
262
|
exports.ProviderAlph = ProviderAlph;
|
|
225
|
-
_ProviderAlph_nodeProvider = new WeakMap(), _ProviderAlph_explorerProvider = new WeakMap();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/onekey-alph-provider",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.62",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"cross-inpage-provider"
|
|
6
6
|
],
|
|
@@ -31,15 +31,15 @@
|
|
|
31
31
|
"@alephium/get-extension-wallet": "^1.5.2",
|
|
32
32
|
"@alephium/walletconnect-provider": "^1.5.2",
|
|
33
33
|
"@alephium/web3": "^1.5.2",
|
|
34
|
-
"@onekeyfe/cross-inpage-provider-core": "2.2.
|
|
35
|
-
"@onekeyfe/cross-inpage-provider-errors": "2.2.
|
|
36
|
-
"@onekeyfe/cross-inpage-provider-types": "2.2.
|
|
37
|
-
"@onekeyfe/extension-bridge-injected": "2.2.
|
|
34
|
+
"@onekeyfe/cross-inpage-provider-core": "2.2.62",
|
|
35
|
+
"@onekeyfe/cross-inpage-provider-errors": "2.2.62",
|
|
36
|
+
"@onekeyfe/cross-inpage-provider-types": "2.2.62",
|
|
37
|
+
"@onekeyfe/extension-bridge-injected": "2.2.62",
|
|
38
38
|
"cipher-base": "^1.0.6",
|
|
39
39
|
"elliptic": "^6.6.1",
|
|
40
40
|
"patch-package": "^8.0.0",
|
|
41
41
|
"pbkdf2": "^3.1.3",
|
|
42
42
|
"sha.js": "^2.4.12"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "a4d24178035601f87fc68590bc83f8faab37a464"
|
|
45
45
|
}
|