@tronweb3/tronwallet-adapter-tokenpocket 1.0.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/LICENSE +20 -0
- package/README.md +84 -0
- package/lib/cjs/adapter.js +316 -0
- package/lib/cjs/adapter.js.map +1 -0
- package/lib/cjs/index.js +19 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/package.json +1 -0
- package/lib/cjs/utils.js +37 -0
- package/lib/cjs/utils.js.map +1 -0
- package/lib/esm/adapter.js +286 -0
- package/lib/esm/adapter.js.map +1 -0
- package/lib/esm/index.js +3 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/utils.js +31 -0
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/adapter.d.ts +55 -0
- package/lib/types/adapter.d.ts.map +1 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/utils.d.ts +8 -0
- package/lib/types/utils.d.ts.map +1 -0
- package/package.json +52 -0
- package/src/adapter.ts +321 -0
- package/src/index.ts +2 -0
- package/src/utils.ts +33 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
Copyright (c) 2022-Present, tronprotocol
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
in the Software without restriction, including without limitation the rights
|
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
furnished to do so, subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# `@tronweb3/tronwallet-adapter-tokenpocket`
|
|
2
|
+
|
|
3
|
+
This package provides an adapter to enable TRON DApps to connect to the [TokenPocket Wallet App](https://tokenpocket.pro/).
|
|
4
|
+
|
|
5
|
+
## Demo
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { TokenPocketAdapter } from '@tronweb3/tronwallet-adapter-tokenpocket';
|
|
9
|
+
import TronWeb from 'tronweb';
|
|
10
|
+
|
|
11
|
+
const tronWeb = new TronWeb({
|
|
12
|
+
fullHost: 'https://api.trongrid.io',
|
|
13
|
+
headers: { 'TRON-PRO-API-KEY': 'your api key' },
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const adapter = new TokenPocketAdapter();
|
|
17
|
+
// connect
|
|
18
|
+
await adapter.connect();
|
|
19
|
+
|
|
20
|
+
// then you can get address
|
|
21
|
+
console.log(adapter.address);
|
|
22
|
+
|
|
23
|
+
// create a send TRX transaction
|
|
24
|
+
const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address);
|
|
25
|
+
// using adapter to sign the transaction
|
|
26
|
+
const signedTransaction = await adapter.signTransaction(unSignedTransaction);
|
|
27
|
+
// broadcast the transaction
|
|
28
|
+
await tronWeb.trx.sendRawTransaction(signedTransaction);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Documentation
|
|
32
|
+
|
|
33
|
+
### API
|
|
34
|
+
|
|
35
|
+
- `Constructor(config: TokenPocketConfig)`
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
interface TokenPocketConfig {
|
|
39
|
+
/**
|
|
40
|
+
* Set if open Wallet's website when wallet is not installed.
|
|
41
|
+
* Default is true.
|
|
42
|
+
*/
|
|
43
|
+
openUrlWhenWalletNotFound?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Timeout in millisecond for checking if TokenPocket wallet is supported.
|
|
46
|
+
* Default is 2 * 1000ms
|
|
47
|
+
*/
|
|
48
|
+
checkTimeout?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Set if open TokenPocket app using DeepLink on mobile device.
|
|
51
|
+
* Default is true.
|
|
52
|
+
*/
|
|
53
|
+
openAppWithDeeplink?: boolean;
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- `network()` method is supported to get current network information. The type of returned value is `Network` as follows:
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
export enum NetworkType {
|
|
61
|
+
Mainnet = 'Mainnet',
|
|
62
|
+
Shasta = 'Shasta',
|
|
63
|
+
Nile = 'Nile',
|
|
64
|
+
/**
|
|
65
|
+
* When use custom node
|
|
66
|
+
*/
|
|
67
|
+
Unknown = 'Unknown',
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export type Network = {
|
|
71
|
+
networkType: NetworkType;
|
|
72
|
+
chainId: string;
|
|
73
|
+
fullNode: string;
|
|
74
|
+
solidityNode: string;
|
|
75
|
+
eventServer: string;
|
|
76
|
+
};
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Caveats
|
|
80
|
+
|
|
81
|
+
- TokenPocket App doesn't implement `signMessage()`, `multiSign()` and `switchChain()`.
|
|
82
|
+
- TokenPocket App will be connected automatically and when user change accounts, the page will reload. So there is no need to to listen to `accountsChanged` event.
|
|
83
|
+
|
|
84
|
+
For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters)
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TokenPocketAdapter = exports.TokenPocketAdapterName = void 0;
|
|
13
|
+
const tronwallet_abstract_adapter_1 = require("@tronweb3/tronwallet-abstract-adapter");
|
|
14
|
+
const tronwallet_adapter_tronlink_1 = require("@tronweb3/tronwallet-adapter-tronlink");
|
|
15
|
+
const utils_js_1 = require("./utils.js");
|
|
16
|
+
exports.TokenPocketAdapterName = 'TokenPocket';
|
|
17
|
+
class TokenPocketAdapter extends tronwallet_abstract_adapter_1.Adapter {
|
|
18
|
+
constructor(config = {}) {
|
|
19
|
+
super();
|
|
20
|
+
this.name = exports.TokenPocketAdapterName;
|
|
21
|
+
this.url = 'https://tokenpocket.pro/';
|
|
22
|
+
this.icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGc+CjxwYXRoIGQ9Ik0xMDQxLjUyIDBILTI3VjEwMjRIMTA0MS41MlYwWiIgZmlsbD0iIzI5ODBGRSIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDA4XzIyNSkiPgo8cGF0aCBkPSJNNDA2Ljc5NiA0MzguNjQzSDQwNi45MjdDNDA2Ljc5NiA0MzcuODU3IDQwNi43OTYgNDM2Ljk0IDQwNi43OTYgNDM2LjE1NFY0MzguNjQzWiIgZmlsbD0iIzI5QUVGRiIvPgo8cGF0aCBkPSJNNjY3LjYwMiA0NjMuNTMzSDUyMy4yNDlWNzI0LjA3NkM1MjMuMjQ5IDczNi4zODkgNTMzLjIwNCA3NDYuMzQ1IDU0NS41MTcgNzQ2LjM0NUg2NDUuMzMzQzY1Ny42NDcgNzQ2LjM0NSA2NjcuNjAyIDczNi4zODkgNjY3LjYwMiA3MjQuMDc2VjQ2My41MzNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDUzLjU2MyAyNzdINDQ4LjcxNkgxOTAuMjY5QzE3Ny45NTUgMjc3IDE2OCAyODYuOTU1IDE2OCAyOTkuMjY5VjM4OS42NTNDMTY4IDQwMS45NjcgMTc3Ljk1NSA0MTEuOTIyIDE5MC4yNjkgNDExLjkyMkgyNTAuOTE4SDI3NS4wMjFWNDM4LjY0NFY3MjQuNzMxQzI3NS4wMjEgNzM3LjA0NSAyODQuOTc2IDc0NyAyOTcuMjg5IDc0N0gzOTIuMTI4QzQwNC40NDEgNzQ3IDQxNC4zOTYgNzM3LjA0NSA0MTQuMzk2IDcyNC43MzFWNDM4LjY0NFY0MzYuMTU2VjQxMS45MjJINDM4LjQ5OUg0NDguMzIzSDQ1My4xN0M0OTAuMzcyIDQxMS45MjIgNTIwLjYzMSAzODEuNjYzIDUyMC42MzEgMzQ0LjQ2MUM1MjEuMDI0IDMwNy4yNTkgNDkwLjc2NSAyNzcgNDUzLjU2MyAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNjY3LjczNSA0NjMuNTMzVjY0NS4zNUM2NzIuNzEzIDY0Ni41MjkgNjc3LjgyMSA2NDcuNDQ2IDY4My4wNjEgNjQ4LjIzMkM2OTAuMzk3IDY0OS4yOCA2OTcuOTk0IDY0OS45MzUgNzA1LjU5MiA2NTAuMDY2QzcwNS45ODUgNjUwLjA2NiA3MDYuMzc4IDY1MC4wNjYgNzA2LjkwMiA2NTAuMDY2VjUwNS40NUM2ODUuMDI2IDUwNC4wMDkgNjY3LjczNSA0ODUuODAxIDY2Ny43MzUgNDYzLjUzM1oiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl80MDhfMjI1KSIvPgo8cGF0aCBkPSJNNzA5Ljc4MSAyNzdDNjA2LjgyMiAyNzcgNTIzLjI0OSAzNjAuNTczIDUyMy4yNDkgNDYzLjUzM0M1MjMuMjQ5IDU1Mi4wODQgNTg0Ljk0NiA2MjYuMjI1IDY2Ny43MzMgNjQ1LjM1VjQ2My41MzNDNjY3LjczMyA0NDAuMzQ3IDY4Ni41OTYgNDIxLjQ4NCA3MDkuNzgxIDQyMS40ODRDNzMyLjk2NyA0MjEuNDg0IDc1MS44MyA0NDAuMzQ3IDc1MS44MyA0NjMuNTMzQzc1MS44MyA0ODMuMDUxIDczOC42IDQ5OS40MjUgNzIwLjUyMyA1MDQuMTRDNzE3LjExNyA1MDUuMDU3IDcxMy40NDkgNTA1LjU4MSA3MDkuNzgxIDUwNS41ODFWNjUwLjA2NkM3MTMuNDQ5IDY1MC4wNjYgNzE2Ljk4NiA2NDkuOTM1IDcyMC41MjMgNjQ5LjgwNEM4MTguNTA1IDY0NC4xNzEgODk2LjMxNCA1NjIuOTU2IDg5Ni4zMTQgNDYzLjUzM0M4OTYuNDQ1IDM2MC41NzMgODEyLjg3MiAyNzcgNzA5Ljc4MSAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzA5Ljc4IDY1MC4wNjZWNTA1LjU4MUM3MDguNzMzIDUwNS41ODEgNzA3LjgxNiA1MDUuNTgxIDcwNi43NjggNTA1LjQ1VjY1MC4wNjZDNzA3LjgxNiA2NTAuMDY2IDcwOC44NjQgNjUwLjA2NiA3MDkuNzggNjUwLjA2NloiIGZpbGw9IndoaXRlIi8+CjwvZz4KPC9nPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzQwOF8yMjUiIHgxPSI3MDkuODQ0IiB5MT0iNTU2LjgyNyIgeDI9IjY2Ny43NTMiIHkyPSI1NTYuODI3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMC45NjY3IiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMyMzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF80MDhfMjI1Ij4KPHJlY3Qgd2lkdGg9IjcyOC40NDgiIGhlaWdodD0iNDcwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDI3NykiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K';
|
|
23
|
+
this._readyState = (0, tronwallet_abstract_adapter_1.isInBrowser)() ? tronwallet_abstract_adapter_1.WalletReadyState.Loading : tronwallet_abstract_adapter_1.WalletReadyState.NotFound;
|
|
24
|
+
this._state = tronwallet_abstract_adapter_1.AdapterState.Loading;
|
|
25
|
+
this.checkReadyInterval = null;
|
|
26
|
+
this._checkPromise = null;
|
|
27
|
+
this._updateWallet = () => {
|
|
28
|
+
var _a, _b, _c, _d;
|
|
29
|
+
let state = this.state;
|
|
30
|
+
let address = this.address;
|
|
31
|
+
if ((0, utils_js_1.supportTokenPocket)()) {
|
|
32
|
+
// fake tronLink
|
|
33
|
+
this._wallet = {
|
|
34
|
+
ready: (_a = window.tronWeb) === null || _a === void 0 ? void 0 : _a.ready,
|
|
35
|
+
tronWeb: window.tronWeb,
|
|
36
|
+
request: () => Promise.resolve(true),
|
|
37
|
+
};
|
|
38
|
+
address = ((_b = this._wallet.tronWeb.defaultAddress) === null || _b === void 0 ? void 0 : _b.base58) || null;
|
|
39
|
+
state = ((_c = window.tronWeb) === null || _c === void 0 ? void 0 : _c.ready) ? tronwallet_abstract_adapter_1.AdapterState.Connected : tronwallet_abstract_adapter_1.AdapterState.Disconnect;
|
|
40
|
+
if (!((_d = window.tronWeb) === null || _d === void 0 ? void 0 : _d.ready)) {
|
|
41
|
+
this.checkForWalletReady();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// no tronlink support
|
|
46
|
+
this._wallet = null;
|
|
47
|
+
address = null;
|
|
48
|
+
state = tronwallet_abstract_adapter_1.AdapterState.NotFound;
|
|
49
|
+
}
|
|
50
|
+
this.setAddress(address);
|
|
51
|
+
this.setState(state);
|
|
52
|
+
};
|
|
53
|
+
const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config;
|
|
54
|
+
if (typeof checkTimeout !== 'number') {
|
|
55
|
+
throw new Error('[TokenPocketAdapter] config.checkTimeout should be a number');
|
|
56
|
+
}
|
|
57
|
+
this.config = {
|
|
58
|
+
checkTimeout,
|
|
59
|
+
openAppWithDeeplink,
|
|
60
|
+
openUrlWhenWalletNotFound,
|
|
61
|
+
};
|
|
62
|
+
this._connecting = false;
|
|
63
|
+
this._wallet = null;
|
|
64
|
+
this._address = null;
|
|
65
|
+
if (!(0, tronwallet_abstract_adapter_1.isInMobileBrowser)()) {
|
|
66
|
+
// Currently TokenPocket extension does not support Tron.
|
|
67
|
+
this._readyState = tronwallet_abstract_adapter_1.WalletReadyState.NotFound;
|
|
68
|
+
this._state = tronwallet_abstract_adapter_1.AdapterState.NotFound;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if ((0, utils_js_1.supportTokenPocket)()) {
|
|
72
|
+
this._readyState = tronwallet_abstract_adapter_1.WalletReadyState.Found;
|
|
73
|
+
this._updateWallet();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this._checkWallet().then(() => {
|
|
77
|
+
if (this.connected) {
|
|
78
|
+
this.emit('connect', this.address || '');
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
get address() {
|
|
84
|
+
return this._address;
|
|
85
|
+
}
|
|
86
|
+
get state() {
|
|
87
|
+
return this._state;
|
|
88
|
+
}
|
|
89
|
+
get readyState() {
|
|
90
|
+
return this._readyState;
|
|
91
|
+
}
|
|
92
|
+
get connecting() {
|
|
93
|
+
return this._connecting;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get network information.
|
|
97
|
+
* @returns {Network} Current network information.
|
|
98
|
+
*/
|
|
99
|
+
network() {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
try {
|
|
102
|
+
yield this._checkWallet();
|
|
103
|
+
if (this.state !== tronwallet_abstract_adapter_1.AdapterState.Connected)
|
|
104
|
+
throw new tronwallet_abstract_adapter_1.WalletDisconnectedError();
|
|
105
|
+
const wallet = this._wallet;
|
|
106
|
+
if (!wallet || !wallet.tronWeb)
|
|
107
|
+
throw new tronwallet_abstract_adapter_1.WalletDisconnectedError();
|
|
108
|
+
try {
|
|
109
|
+
return yield (0, tronwallet_adapter_tronlink_1.getNetworkInfoByTronWeb)(wallet.tronWeb);
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
throw new tronwallet_abstract_adapter_1.WalletGetNetworkError(e === null || e === void 0 ? void 0 : e.message, e);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (e) {
|
|
116
|
+
this.emit('error', e);
|
|
117
|
+
throw e;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
connect() {
|
|
122
|
+
var _a;
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
try {
|
|
125
|
+
this.checkIfOpenApp();
|
|
126
|
+
if (this.connected || this.connecting)
|
|
127
|
+
return;
|
|
128
|
+
yield this._checkWallet();
|
|
129
|
+
if (this.readyState === tronwallet_abstract_adapter_1.WalletReadyState.NotFound) {
|
|
130
|
+
if (this.config.openUrlWhenWalletNotFound !== false && (0, tronwallet_abstract_adapter_1.isInBrowser)()) {
|
|
131
|
+
window.open(this.url, '_blank');
|
|
132
|
+
}
|
|
133
|
+
throw new tronwallet_abstract_adapter_1.WalletNotFoundError();
|
|
134
|
+
}
|
|
135
|
+
if (!this._wallet)
|
|
136
|
+
return;
|
|
137
|
+
this._connecting = true;
|
|
138
|
+
const wallet = this._wallet;
|
|
139
|
+
const address = ((_a = wallet.tronWeb.defaultAddress) === null || _a === void 0 ? void 0 : _a.base58) || '';
|
|
140
|
+
this.setAddress(address);
|
|
141
|
+
this.setState(tronwallet_abstract_adapter_1.AdapterState.Connected);
|
|
142
|
+
this.emit('connect', this.address || '');
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
this.emit('error', error);
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
this._connecting = false;
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
disconnect() {
|
|
154
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
+
if (this.state !== tronwallet_abstract_adapter_1.AdapterState.Connected) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
this.setAddress(null);
|
|
159
|
+
this.setState(tronwallet_abstract_adapter_1.AdapterState.Disconnect);
|
|
160
|
+
this.emit('disconnect');
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
signTransaction(transaction, privateKey) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
try {
|
|
166
|
+
const wallet = yield this.checkAndGetWallet();
|
|
167
|
+
try {
|
|
168
|
+
return yield wallet.tronWeb.trx.sign(transaction, privateKey);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (error instanceof Error) {
|
|
172
|
+
throw new tronwallet_abstract_adapter_1.WalletSignTransactionError(error.message, error);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
throw new tronwallet_abstract_adapter_1.WalletSignTransactionError(error, new Error(error));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
this.emit('error', error);
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
multiSign(...args) {
|
|
186
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
187
|
+
try {
|
|
188
|
+
const wallet = yield this.checkAndGetWallet();
|
|
189
|
+
try {
|
|
190
|
+
return yield wallet.tronWeb.trx.multiSign(...args);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
if (error instanceof Error) {
|
|
194
|
+
throw new tronwallet_abstract_adapter_1.WalletSignTransactionError(error.message, error);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
throw new tronwallet_abstract_adapter_1.WalletSignTransactionError(error, new Error(error));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
this.emit('error', error);
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
signMessage(message, privateKey) {
|
|
208
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
209
|
+
try {
|
|
210
|
+
const wallet = yield this.checkAndGetWallet();
|
|
211
|
+
try {
|
|
212
|
+
return yield wallet.tronWeb.trx.signMessageV2(message, privateKey);
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
if (error instanceof Error) {
|
|
216
|
+
throw new tronwallet_abstract_adapter_1.WalletSignMessageError(error.message, error);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
throw new tronwallet_abstract_adapter_1.WalletSignMessageError(error, new Error(error));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
this.emit('error', error);
|
|
225
|
+
throw error;
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
checkAndGetWallet() {
|
|
230
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
231
|
+
this.checkIfOpenApp();
|
|
232
|
+
yield this._checkWallet();
|
|
233
|
+
if (!this.connected)
|
|
234
|
+
throw new tronwallet_abstract_adapter_1.WalletDisconnectedError();
|
|
235
|
+
const wallet = this._wallet;
|
|
236
|
+
if (!wallet || !wallet.tronWeb)
|
|
237
|
+
throw new tronwallet_abstract_adapter_1.WalletDisconnectedError();
|
|
238
|
+
return wallet;
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
checkIfOpenApp() {
|
|
242
|
+
if (this.config.openAppWithDeeplink === false) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
if ((0, utils_js_1.openTokenPocket)()) {
|
|
246
|
+
throw new tronwallet_abstract_adapter_1.WalletNotFoundError();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
checkForWalletReady() {
|
|
250
|
+
if (this.checkReadyInterval) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
let times = 0;
|
|
254
|
+
const maxTimes = Math.floor(this.config.checkTimeout / 200);
|
|
255
|
+
const check = () => {
|
|
256
|
+
var _a;
|
|
257
|
+
if ((_a = window === null || window === void 0 ? void 0 : window.tronWeb) === null || _a === void 0 ? void 0 : _a.ready) {
|
|
258
|
+
this.checkReadyInterval && clearInterval(this.checkReadyInterval);
|
|
259
|
+
this.checkReadyInterval = null;
|
|
260
|
+
this._updateWallet();
|
|
261
|
+
this.emit('connect', this.address || '');
|
|
262
|
+
}
|
|
263
|
+
else if (times > maxTimes) {
|
|
264
|
+
this.checkReadyInterval && clearInterval(this.checkReadyInterval);
|
|
265
|
+
this.checkReadyInterval = null;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
times++;
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
this.checkReadyInterval = setInterval(check, 200);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* check if wallet exists by interval, the promise only resolve when wallet detected or timeout
|
|
275
|
+
* @returns if wallet exists
|
|
276
|
+
*/
|
|
277
|
+
_checkWallet() {
|
|
278
|
+
if (this.readyState === tronwallet_abstract_adapter_1.WalletReadyState.Found) {
|
|
279
|
+
return Promise.resolve(true);
|
|
280
|
+
}
|
|
281
|
+
if (this._checkPromise) {
|
|
282
|
+
return this._checkPromise;
|
|
283
|
+
}
|
|
284
|
+
const interval = 100;
|
|
285
|
+
const maxTimes = Math.floor(this.config.checkTimeout / interval);
|
|
286
|
+
let times = 0, timer;
|
|
287
|
+
this._checkPromise = new Promise((resolve) => {
|
|
288
|
+
const check = () => {
|
|
289
|
+
times++;
|
|
290
|
+
const isSupport = (0, utils_js_1.supportTokenPocket)();
|
|
291
|
+
if (isSupport || times > maxTimes) {
|
|
292
|
+
timer && clearInterval(timer);
|
|
293
|
+
this._readyState = isSupport ? tronwallet_abstract_adapter_1.WalletReadyState.Found : tronwallet_abstract_adapter_1.WalletReadyState.NotFound;
|
|
294
|
+
this._updateWallet();
|
|
295
|
+
this.emit('readyStateChanged', this.readyState);
|
|
296
|
+
resolve(isSupport);
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
timer = setInterval(check, interval);
|
|
300
|
+
check();
|
|
301
|
+
});
|
|
302
|
+
return this._checkPromise;
|
|
303
|
+
}
|
|
304
|
+
setAddress(address) {
|
|
305
|
+
this._address = address;
|
|
306
|
+
}
|
|
307
|
+
setState(state) {
|
|
308
|
+
const preState = this.state;
|
|
309
|
+
if (state !== preState) {
|
|
310
|
+
this._state = state;
|
|
311
|
+
this.emit('stateChanged', state);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
exports.TokenPocketAdapter = TokenPocketAdapter;
|
|
316
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./adapter.js"), exports);
|
|
18
|
+
__exportStar(require("./utils.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,6CAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "commonjs" }
|
package/lib/cjs/utils.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.openTokenPocket = exports.isInTokenPocket = exports.supportTokenPocket = void 0;
|
|
4
|
+
const tronwallet_abstract_adapter_1 = require("@tronweb3/tronwallet-abstract-adapter");
|
|
5
|
+
function supportTokenPocket() {
|
|
6
|
+
return !!window.tronWeb && typeof window.tokenpocket !== 'undefined';
|
|
7
|
+
}
|
|
8
|
+
exports.supportTokenPocket = supportTokenPocket;
|
|
9
|
+
/**
|
|
10
|
+
* Detect if in TokenPocketApp
|
|
11
|
+
* There will be a `tokenpocket` object on window
|
|
12
|
+
*/
|
|
13
|
+
function isInTokenPocket() {
|
|
14
|
+
return (0, tronwallet_abstract_adapter_1.isInBrowser)() && typeof window.tokenpocket !== 'undefined';
|
|
15
|
+
}
|
|
16
|
+
exports.isInTokenPocket = isInTokenPocket;
|
|
17
|
+
function openTokenPocket() {
|
|
18
|
+
if (!supportTokenPocket() && (0, tronwallet_abstract_adapter_1.isInMobileBrowser)() && !isInTokenPocket()) {
|
|
19
|
+
const { origin, pathname, search, hash } = window.location;
|
|
20
|
+
const url = origin + pathname + search + hash;
|
|
21
|
+
const params = {
|
|
22
|
+
action: 'open',
|
|
23
|
+
actionId: Date.now() + '',
|
|
24
|
+
callbackUrl: 'http://someurl.com',
|
|
25
|
+
blockchain: 'Tron',
|
|
26
|
+
chain: 'Tron',
|
|
27
|
+
url,
|
|
28
|
+
protocol: 'TokenPocket',
|
|
29
|
+
version: '1.0',
|
|
30
|
+
};
|
|
31
|
+
window.location.href = `tpdapp://open?params=${encodeURIComponent(JSON.stringify(params))}`;
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
exports.openTokenPocket = openTokenPocket;
|
|
37
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,uFAAuF;AAEvF,SAAgB,kBAAkB;IAC9B,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAQ,MAAc,CAAC,WAAW,KAAK,WAAW,CAAC;AAClF,CAAC;AAFD,gDAEC;AAED;;;GAGG;AACH,SAAgB,eAAe;IAC3B,OAAO,IAAA,yCAAW,GAAE,IAAI,OAAQ,MAAc,CAAC,WAAW,KAAK,WAAW,CAAC;AAC/E,CAAC;AAFD,0CAEC;AAED,SAAgB,eAAe;IAC3B,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAA,+CAAiB,GAAE,IAAI,CAAC,eAAe,EAAE,EAAE;QACpE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;QAC9C,MAAM,MAAM,GAAG;YACX,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YACzB,WAAW,EAAE,oBAAoB;YACjC,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,MAAM;YACb,GAAG;YACH,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,KAAK;SACjB,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,wBAAwB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAlBD,0CAkBC"}
|