@multiplatform.one/web3 8.3.0 → 8.5.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/README.md +33 -2
- package/dist/cjs/clients/tron.cjs +176 -0
- package/dist/cjs/clients/tron.native.js +318 -0
- package/dist/cjs/clients/tron.native.js.map +1 -0
- package/dist/cjs/clients/useTronClient.cjs +50 -0
- package/dist/cjs/clients/useTronClient.native.js +63 -0
- package/dist/cjs/clients/useTronClient.native.js.map +1 -0
- package/dist/cjs/connectkit/adapters/TronAdapter.cjs +139 -0
- package/dist/cjs/connectkit/adapters/TronAdapter.native.js +217 -0
- package/dist/cjs/connectkit/adapters/TronAdapter.native.js.map +1 -0
- package/dist/cjs/connectkit/connectors/createWalletMessage.cjs +3 -3
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js +3 -3
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/ensureWalletConnectors.cjs +2 -1
- package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js +18 -35
- package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/syntheticChains.cjs +10 -4
- package/dist/cjs/connectkit/connectors/syntheticChains.native.js +10 -4
- package/dist/cjs/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/cjs/connectkit/defaultConfig.cjs +2 -1
- package/dist/cjs/connectkit/defaultConfig.native.js +2 -1
- package/dist/cjs/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/cjs/connectkit/wallets/walletConfigs.cjs +12 -0
- package/dist/cjs/connectkit/wallets/walletConfigs.native.js +12 -0
- package/dist/cjs/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/cjs/families/host.native.js.map +1 -1
- package/dist/cjs/families/tron.cjs +92 -0
- package/dist/cjs/families/tron.native.js +120 -0
- package/dist/cjs/families/tron.native.js.map +1 -0
- package/dist/cjs/providers/WalletProvider.cjs +3 -2
- package/dist/cjs/tron.cjs +46 -0
- package/dist/cjs/tron.native.js +49 -0
- package/dist/cjs/tron.native.js.map +1 -0
- package/dist/cjs/wagmi/host.cjs +9 -4
- package/dist/cjs/wagmi/host.native.js +6 -3
- package/dist/cjs/wagmi/host.native.js.map +1 -1
- package/dist/esm/clients/tron.mjs +133 -0
- package/dist/esm/clients/tron.mjs.map +1 -0
- package/dist/esm/clients/tron.native.js +272 -0
- package/dist/esm/clients/tron.native.js.map +1 -0
- package/dist/esm/clients/useTronClient.mjs +25 -0
- package/dist/esm/clients/useTronClient.mjs.map +1 -0
- package/dist/esm/clients/useTronClient.native.js +35 -0
- package/dist/esm/clients/useTronClient.native.js.map +1 -0
- package/dist/esm/connectkit/adapters/TronAdapter.mjs +111 -0
- package/dist/esm/connectkit/adapters/TronAdapter.mjs.map +1 -0
- package/dist/esm/connectkit/adapters/TronAdapter.native.js +186 -0
- package/dist/esm/connectkit/adapters/TronAdapter.native.js.map +1 -0
- package/dist/esm/connectkit/connectors/createWalletMessage.mjs +3 -3
- package/dist/esm/connectkit/connectors/createWalletMessage.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.native.js +3 -3
- package/dist/esm/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs +2 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js +18 -35
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/syntheticChains.mjs +8 -4
- package/dist/esm/connectkit/connectors/syntheticChains.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/syntheticChains.native.js +8 -4
- package/dist/esm/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/esm/connectkit/defaultConfig.mjs +2 -1
- package/dist/esm/connectkit/defaultConfig.mjs.map +1 -1
- package/dist/esm/connectkit/defaultConfig.native.js +2 -1
- package/dist/esm/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/esm/connectkit/wallets/walletConfigs.mjs +12 -0
- package/dist/esm/connectkit/wallets/walletConfigs.mjs.map +1 -1
- package/dist/esm/connectkit/wallets/walletConfigs.native.js +12 -0
- package/dist/esm/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/esm/families/host.mjs.map +1 -1
- package/dist/esm/families/host.native.js.map +1 -1
- package/dist/esm/families/tron.mjs +65 -0
- package/dist/esm/families/tron.mjs.map +1 -0
- package/dist/esm/families/tron.native.js +90 -0
- package/dist/esm/families/tron.native.js.map +1 -0
- package/dist/esm/providers/WalletProvider.mjs +3 -2
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/tron.mjs +6 -0
- package/dist/esm/tron.mjs.map +1 -0
- package/dist/esm/tron.native.js +6 -0
- package/dist/esm/tron.native.js.map +1 -0
- package/dist/esm/wagmi/host.mjs +9 -4
- package/dist/esm/wagmi/host.mjs.map +1 -1
- package/dist/esm/wagmi/host.native.js +6 -3
- package/dist/esm/wagmi/host.native.js.map +1 -1
- package/dist/jsx/clients/tron.mjs +133 -0
- package/dist/jsx/clients/tron.mjs.map +1 -0
- package/dist/jsx/clients/tron.native.js +318 -0
- package/dist/jsx/clients/tron.native.js.map +1 -0
- package/dist/jsx/clients/useTronClient.mjs +25 -0
- package/dist/jsx/clients/useTronClient.mjs.map +1 -0
- package/dist/jsx/clients/useTronClient.native.js +63 -0
- package/dist/jsx/clients/useTronClient.native.js.map +1 -0
- package/dist/jsx/connectkit/adapters/TronAdapter.mjs +111 -0
- package/dist/jsx/connectkit/adapters/TronAdapter.mjs.map +1 -0
- package/dist/jsx/connectkit/adapters/TronAdapter.native.js +217 -0
- package/dist/jsx/connectkit/adapters/TronAdapter.native.js.map +1 -0
- package/dist/jsx/connectkit/connectors/createWalletMessage.mjs +3 -3
- package/dist/jsx/connectkit/connectors/createWalletMessage.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/createWalletMessage.native.js +3 -3
- package/dist/jsx/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs +2 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js +18 -35
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/syntheticChains.mjs +8 -4
- package/dist/jsx/connectkit/connectors/syntheticChains.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/syntheticChains.native.js +10 -4
- package/dist/jsx/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/jsx/connectkit/defaultConfig.mjs +2 -1
- package/dist/jsx/connectkit/defaultConfig.mjs.map +1 -1
- package/dist/jsx/connectkit/defaultConfig.native.js +2 -1
- package/dist/jsx/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/jsx/connectkit/wallets/walletConfigs.mjs +12 -0
- package/dist/jsx/connectkit/wallets/walletConfigs.mjs.map +1 -1
- package/dist/jsx/connectkit/wallets/walletConfigs.native.js +12 -0
- package/dist/jsx/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/jsx/families/host.mjs.map +1 -1
- package/dist/jsx/families/host.native.js.map +1 -1
- package/dist/jsx/families/tron.mjs +65 -0
- package/dist/jsx/families/tron.mjs.map +1 -0
- package/dist/jsx/families/tron.native.js +120 -0
- package/dist/jsx/families/tron.native.js.map +1 -0
- package/dist/jsx/providers/WalletProvider.mjs +3 -2
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/tron.mjs +6 -0
- package/dist/jsx/tron.mjs.map +1 -0
- package/dist/jsx/tron.native.js +49 -0
- package/dist/jsx/tron.native.js.map +1 -0
- package/dist/jsx/wagmi/host.mjs +9 -4
- package/dist/jsx/wagmi/host.mjs.map +1 -1
- package/dist/jsx/wagmi/host.native.js +6 -3
- package/dist/jsx/wagmi/host.native.js.map +1 -1
- package/dist/keycloak/login.iife.js +380 -380
- package/package.json +13 -7
- package/src/clients/tron.spec.ts +118 -0
- package/src/clients/tron.ts +186 -0
- package/src/clients/useTronClient.ts +26 -0
- package/src/connectkit/adapters/TronAdapter.spec.ts +155 -0
- package/src/connectkit/adapters/TronAdapter.ts +168 -0
- package/src/connectkit/adapters/discover.ts +1 -1
- package/src/connectkit/connectors/createWalletMessage.ts +3 -3
- package/src/connectkit/connectors/ensureWalletConnectors.ts +2 -1
- package/src/connectkit/connectors/syntheticChains.ts +8 -2
- package/src/connectkit/defaultConfig.ts +5 -2
- package/src/connectkit/wallets/walletConfigs.tsx +8 -0
- package/src/families/host.ts +9 -2
- package/src/families/tron.spec.ts +118 -0
- package/src/families/tron.ts +63 -0
- package/src/providers/WalletProvider.tsx +3 -2
- package/src/tron.ts +26 -0
- package/src/wagmi/host.tsx +6 -2
- package/types/clients/tron.d.ts +65 -0
- package/types/clients/tron.d.ts.map +1 -0
- package/types/clients/useTronClient.d.ts +8 -0
- package/types/clients/useTronClient.d.ts.map +1 -0
- package/types/connectkit/adapters/TronAdapter.d.ts +35 -0
- package/types/connectkit/adapters/TronAdapter.d.ts.map +1 -0
- package/types/connectkit/adapters/discover.d.ts +1 -1
- package/types/connectkit/adapters/discover.d.ts.map +1 -1
- package/types/connectkit/connectors/ensureWalletConnectors.d.ts.map +1 -1
- package/types/connectkit/connectors/syntheticChains.d.ts +4 -0
- package/types/connectkit/connectors/syntheticChains.d.ts.map +1 -1
- package/types/connectkit/defaultConfig.d.ts.map +1 -1
- package/types/connectkit/wallets/walletConfigs.d.ts.map +1 -1
- package/types/families/host.d.ts +9 -2
- package/types/families/host.d.ts.map +1 -1
- package/types/families/tron.d.ts +15 -0
- package/types/families/tron.d.ts.map +1 -0
- package/types/providers/WalletProvider.d.ts +2 -1
- package/types/providers/WalletProvider.d.ts.map +1 -1
- package/types/tron.d.ts +5 -0
- package/types/tron.d.ts.map +1 -0
- package/types/wagmi/host.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -26,8 +26,8 @@ Peers: `react`, `@tanstack/react-query`.
|
|
|
26
26
|
- **Subpaths** — `./web` (the root without the tamagui components, for a
|
|
27
27
|
plain web bundler, below), `./native` (WebView wallet bridge), `./connectkit`,
|
|
28
28
|
`./message` (the wallet sign-in messages), `./keycloak` (wallet login
|
|
29
|
-
against the Keycloak wallet SPI), `./
|
|
30
|
-
plugins, below)
|
|
29
|
+
against the Keycloak wallet SPI), `./tron` (the Tron family, web only,
|
|
30
|
+
below), `./vite` and `./esbuild` (bundler plugins, below)
|
|
31
31
|
|
|
32
32
|
## Wallet families and `useConnection()`
|
|
33
33
|
|
|
@@ -162,6 +162,37 @@ signs Solana through the WebView bridge, so the root never imports
|
|
|
162
162
|
through `solanaMessageClient`, so a login page carries no kit.
|
|
163
163
|
`tests/clients/importGraph.spec.ts` holds both lines, for native and web.
|
|
164
164
|
|
|
165
|
+
### Tron
|
|
166
|
+
|
|
167
|
+
The Tron family is the web-only `@multiplatform.one/web3/tron` subpath. It is
|
|
168
|
+
not a built-in family: pass it to `Web3Provider` and the connect modal lists
|
|
169
|
+
TronLink when it is installed.
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
import { Web3Provider, eth } from "@multiplatform.one/web3";
|
|
173
|
+
import { readTrc20Balance, tron, useTronClient } from "@multiplatform.one/web3/tron";
|
|
174
|
+
|
|
175
|
+
<Web3Provider config={config} families={[eth(), tron()]}>
|
|
176
|
+
<App />
|
|
177
|
+
</Web3Provider>;
|
|
178
|
+
|
|
179
|
+
const trx = useTronClient();
|
|
180
|
+
const balance = await trx?.trc20Balance(qcc);
|
|
181
|
+
const nile = await readTrc20Balance({ network: "nile", token: qcc, owner });
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
`useTronClient()` returns `{ family: "tron", address, network, signMessage, trc20Balance }`
|
|
185
|
+
with the base58 address TronLink shows. `trc20Balance(token, owner?)` posts
|
|
186
|
+
`balanceOf` to TronGrid's `triggerconstantcontract` on the network TronLink's
|
|
187
|
+
node is on (`mainnet`, `nile` or `shasta`) and returns the raw `bigint`.
|
|
188
|
+
`readTrc20Balance` does the same with no wallet; `apiUrl` and `apiKey` point it
|
|
189
|
+
at another node or past TronGrid's keyless rate limit. Addresses go in as
|
|
190
|
+
base58, 41-prefixed hex or a 20-byte `0x` hex (`toTronBase58`, `toTronHex`).
|
|
191
|
+
There is no tronweb dependency. Tron has no Keycloak sign-in and no WebView
|
|
192
|
+
bridge namespace yet, so it is web only and `tests/clients/importGraph.spec.ts`
|
|
193
|
+
holds the native bundle free of it. `TRONGRID_LIVE=1` runs
|
|
194
|
+
`tests/clients/tron.trongrid.spec.ts` against mainnet and Nile.
|
|
195
|
+
|
|
165
196
|
### EVM reads without a wallet
|
|
166
197
|
|
|
167
198
|
Reads that must work before a wallet connects, such as prices, sale state or
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: true
|
|
30
|
+
}) : target, mod));
|
|
31
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: true
|
|
33
|
+
}), mod);
|
|
34
|
+
var tron_exports = {};
|
|
35
|
+
__export(tron_exports, {
|
|
36
|
+
TronGridError: () => TronGridError,
|
|
37
|
+
isTronAddress: () => isTronAddress,
|
|
38
|
+
readTrc20Balance: () => readTrc20Balance,
|
|
39
|
+
toTronBase58: () => toTronBase58,
|
|
40
|
+
toTronHex: () => toTronHex,
|
|
41
|
+
tronAddressBytes: () => tronAddressBytes,
|
|
42
|
+
tronClient: () => tronClient,
|
|
43
|
+
tronGridUrls: () => tronGridUrls
|
|
44
|
+
});
|
|
45
|
+
module.exports = __toCommonJS(tron_exports);
|
|
46
|
+
var import_bs58 = __toESM(require("bs58"));
|
|
47
|
+
var import_viem = require("viem");
|
|
48
|
+
const tronGridUrls = Object.freeze({
|
|
49
|
+
mainnet: "https://api.trongrid.io",
|
|
50
|
+
nile: "https://nile.trongrid.io",
|
|
51
|
+
shasta: "https://api.shasta.trongrid.io"
|
|
52
|
+
});
|
|
53
|
+
const tronPrefix = 65;
|
|
54
|
+
const checksumOf = payload => (0, import_viem.sha256)((0, import_viem.sha256)(payload, "bytes"), "bytes").slice(0, 4);
|
|
55
|
+
function tronAddressBytes(address) {
|
|
56
|
+
const value = address.trim();
|
|
57
|
+
if (/^(0x)?[0-9a-fA-F]+$/.test(value)) {
|
|
58
|
+
const bytes = (0, import_viem.hexToBytes)(value.startsWith("0x") ? value : `0x${value}`);
|
|
59
|
+
if (bytes.length === 20) return Uint8Array.of(tronPrefix, ...bytes);
|
|
60
|
+
if (bytes.length === 21 && bytes[0] === tronPrefix) return bytes;
|
|
61
|
+
throw new Error(`not a Tron address: ${address}`);
|
|
62
|
+
}
|
|
63
|
+
let decoded;
|
|
64
|
+
try {
|
|
65
|
+
decoded = import_bs58.default.decode(value);
|
|
66
|
+
} catch {
|
|
67
|
+
throw new Error(`not a Tron address: ${address}`);
|
|
68
|
+
}
|
|
69
|
+
if (decoded.length !== 25 || decoded[0] !== tronPrefix) {
|
|
70
|
+
throw new Error(`not a Tron address: ${address}`);
|
|
71
|
+
}
|
|
72
|
+
const payload = decoded.slice(0, 21);
|
|
73
|
+
const checksum = checksumOf(payload);
|
|
74
|
+
if (!checksum.every((byte, index) => byte === decoded[21 + index])) {
|
|
75
|
+
throw new Error(`Tron address checksum mismatch: ${address}`);
|
|
76
|
+
}
|
|
77
|
+
return payload;
|
|
78
|
+
}
|
|
79
|
+
function toTronBase58(address) {
|
|
80
|
+
const payload = tronAddressBytes(address);
|
|
81
|
+
return import_bs58.default.encode(Uint8Array.of(...payload, ...checksumOf(payload)));
|
|
82
|
+
}
|
|
83
|
+
function toTronHex(address) {
|
|
84
|
+
return (0, import_viem.bytesToHex)(tronAddressBytes(address)).slice(2);
|
|
85
|
+
}
|
|
86
|
+
function isTronAddress(address) {
|
|
87
|
+
try {
|
|
88
|
+
tronAddressBytes(address);
|
|
89
|
+
return true;
|
|
90
|
+
} catch {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
class TronGridError extends Error {
|
|
95
|
+
status;
|
|
96
|
+
constructor(message, status) {
|
|
97
|
+
super(message);
|
|
98
|
+
this.name = "TronGridError";
|
|
99
|
+
this.status = status;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function decodeMessage(message) {
|
|
103
|
+
if (!message) return void 0;
|
|
104
|
+
if (!/^[0-9a-fA-F]+$/.test(message) || message.length % 2) return message;
|
|
105
|
+
try {
|
|
106
|
+
return (0, import_viem.hexToString)(`0x${message}`);
|
|
107
|
+
} catch {
|
|
108
|
+
return message;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function readTrc20Balance(parameters) {
|
|
112
|
+
const {
|
|
113
|
+
token,
|
|
114
|
+
owner,
|
|
115
|
+
network = "mainnet",
|
|
116
|
+
apiUrl,
|
|
117
|
+
apiKey,
|
|
118
|
+
signal
|
|
119
|
+
} = parameters;
|
|
120
|
+
const request = parameters.fetch ?? globalThis.fetch;
|
|
121
|
+
const ownerBytes = tronAddressBytes(owner);
|
|
122
|
+
const base = (apiUrl ?? tronGridUrls[network]).replace(/\/+$/, "");
|
|
123
|
+
const response = await request(`${base}/wallet/triggerconstantcontract`, {
|
|
124
|
+
method: "POST",
|
|
125
|
+
headers: {
|
|
126
|
+
accept: "application/json",
|
|
127
|
+
"content-type": "application/json",
|
|
128
|
+
...(apiKey ? {
|
|
129
|
+
"TRON-PRO-API-KEY": apiKey
|
|
130
|
+
} : {})
|
|
131
|
+
},
|
|
132
|
+
body: JSON.stringify({
|
|
133
|
+
owner_address: toTronBase58(owner),
|
|
134
|
+
contract_address: toTronBase58(token),
|
|
135
|
+
function_selector: "balanceOf(address)",
|
|
136
|
+
parameter: (0, import_viem.bytesToHex)(ownerBytes.slice(1)).slice(2).padStart(64, "0"),
|
|
137
|
+
visible: true
|
|
138
|
+
}),
|
|
139
|
+
...(signal ? {
|
|
140
|
+
signal
|
|
141
|
+
} : {})
|
|
142
|
+
});
|
|
143
|
+
if (!response.ok) {
|
|
144
|
+
throw new TronGridError(`TronGrid answered ${response.status} for balanceOf`, response.status);
|
|
145
|
+
}
|
|
146
|
+
const body = await response.json();
|
|
147
|
+
const word = body.constant_result?.[0];
|
|
148
|
+
if (!body.result?.result || word === void 0) {
|
|
149
|
+
const reason = decodeMessage(body.result?.message) ?? body.Error ?? body.result?.code;
|
|
150
|
+
throw new TronGridError(`TronGrid balanceOf failed${reason ? `: ${reason}` : ""}`);
|
|
151
|
+
}
|
|
152
|
+
return word === "" ? 0n : BigInt(`0x${word}`);
|
|
153
|
+
}
|
|
154
|
+
const capabilities = ["signMessage"];
|
|
155
|
+
function tronClient(adapter, options = {}) {
|
|
156
|
+
if (!adapter.address) throw new Error("tronClient: connect a Tron wallet first");
|
|
157
|
+
const address = adapter.address;
|
|
158
|
+
const network = options.network ?? "mainnet";
|
|
159
|
+
return {
|
|
160
|
+
family: "tron",
|
|
161
|
+
address,
|
|
162
|
+
chainId: "tron",
|
|
163
|
+
network,
|
|
164
|
+
capabilities,
|
|
165
|
+
signMessage: message => adapter.signMessage(message),
|
|
166
|
+
trc20Balance: (token, owner = address, signal) => readTrc20Balance({
|
|
167
|
+
...options,
|
|
168
|
+
network,
|
|
169
|
+
token,
|
|
170
|
+
owner,
|
|
171
|
+
...(signal ? {
|
|
172
|
+
signal
|
|
173
|
+
} : {})
|
|
174
|
+
})
|
|
175
|
+
};
|
|
176
|
+
}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
18
|
+
get: () => from[key],
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
25
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
}), mod);
|
|
36
|
+
var tron_exports = {};
|
|
37
|
+
__export(tron_exports, {
|
|
38
|
+
TronGridError: () => TronGridError,
|
|
39
|
+
isTronAddress: () => isTronAddress,
|
|
40
|
+
readTrc20Balance: () => readTrc20Balance,
|
|
41
|
+
toTronBase58: () => toTronBase58,
|
|
42
|
+
toTronHex: () => toTronHex,
|
|
43
|
+
tronAddressBytes: () => tronAddressBytes,
|
|
44
|
+
tronClient: () => tronClient,
|
|
45
|
+
tronGridUrls: () => tronGridUrls
|
|
46
|
+
});
|
|
47
|
+
module.exports = __toCommonJS(tron_exports);
|
|
48
|
+
var import_bs58 = __toESM(require("bs58"));
|
|
49
|
+
var import_viem = require("viem");
|
|
50
|
+
function _assert_this_initialized(self) {
|
|
51
|
+
if (self === void 0) {
|
|
52
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
53
|
+
}
|
|
54
|
+
return self;
|
|
55
|
+
}
|
|
56
|
+
function _call_super(_this, derived, args) {
|
|
57
|
+
derived = _get_prototype_of(derived);
|
|
58
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
59
|
+
}
|
|
60
|
+
function _class_call_check(instance, Constructor) {
|
|
61
|
+
if (!(instance instanceof Constructor)) {
|
|
62
|
+
throw new TypeError("Cannot call a class as a function");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function _construct(Parent, args, Class) {
|
|
66
|
+
if (_is_native_reflect_construct()) {
|
|
67
|
+
_construct = Reflect.construct;
|
|
68
|
+
} else {
|
|
69
|
+
_construct = function construct(Parent2, args2, Class2) {
|
|
70
|
+
var a = [null];
|
|
71
|
+
a.push.apply(a, args2);
|
|
72
|
+
var Constructor = Function.bind.apply(Parent2, a);
|
|
73
|
+
var instance = new Constructor();
|
|
74
|
+
if (Class2) _set_prototype_of(instance, Class2.prototype);
|
|
75
|
+
return instance;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return _construct.apply(null, arguments);
|
|
79
|
+
}
|
|
80
|
+
function _define_property(obj, key, value) {
|
|
81
|
+
if (key in obj) {
|
|
82
|
+
Object.defineProperty(obj, key, {
|
|
83
|
+
value,
|
|
84
|
+
enumerable: true,
|
|
85
|
+
configurable: true,
|
|
86
|
+
writable: true
|
|
87
|
+
});
|
|
88
|
+
} else {
|
|
89
|
+
obj[key] = value;
|
|
90
|
+
}
|
|
91
|
+
return obj;
|
|
92
|
+
}
|
|
93
|
+
function _get_prototype_of(o) {
|
|
94
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {
|
|
95
|
+
return o2.__proto__ || Object.getPrototypeOf(o2);
|
|
96
|
+
};
|
|
97
|
+
return _get_prototype_of(o);
|
|
98
|
+
}
|
|
99
|
+
function _inherits(subClass, superClass) {
|
|
100
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
101
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
102
|
+
}
|
|
103
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
104
|
+
constructor: {
|
|
105
|
+
value: subClass,
|
|
106
|
+
writable: true,
|
|
107
|
+
configurable: true
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
111
|
+
}
|
|
112
|
+
function _is_native_function(fn) {
|
|
113
|
+
return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
|
114
|
+
}
|
|
115
|
+
function _possible_constructor_return(self, call) {
|
|
116
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
117
|
+
return call;
|
|
118
|
+
}
|
|
119
|
+
return _assert_this_initialized(self);
|
|
120
|
+
}
|
|
121
|
+
function _set_prototype_of(o, p) {
|
|
122
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {
|
|
123
|
+
o2.__proto__ = p2;
|
|
124
|
+
return o2;
|
|
125
|
+
};
|
|
126
|
+
return _set_prototype_of(o, p);
|
|
127
|
+
}
|
|
128
|
+
function _type_of(obj) {
|
|
129
|
+
"@swc/helpers - typeof";
|
|
130
|
+
|
|
131
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
132
|
+
}
|
|
133
|
+
function _wrap_native_super(Class) {
|
|
134
|
+
var _cache = typeof Map === "function" ? /* @__PURE__ */new Map() : void 0;
|
|
135
|
+
_wrap_native_super = function wrapNativeSuper(Class2) {
|
|
136
|
+
if (Class2 === null || !_is_native_function(Class2)) return Class2;
|
|
137
|
+
if (typeof Class2 !== "function") {
|
|
138
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
139
|
+
}
|
|
140
|
+
if (typeof _cache !== "undefined") {
|
|
141
|
+
if (_cache.has(Class2)) return _cache.get(Class2);
|
|
142
|
+
_cache.set(Class2, Wrapper);
|
|
143
|
+
}
|
|
144
|
+
function Wrapper() {
|
|
145
|
+
return _construct(Class2, arguments, _get_prototype_of(this).constructor);
|
|
146
|
+
}
|
|
147
|
+
Wrapper.prototype = Object.create(Class2.prototype, {
|
|
148
|
+
constructor: {
|
|
149
|
+
value: Wrapper,
|
|
150
|
+
enumerable: false,
|
|
151
|
+
writable: true,
|
|
152
|
+
configurable: true
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return _set_prototype_of(Wrapper, Class2);
|
|
156
|
+
};
|
|
157
|
+
return _wrap_native_super(Class);
|
|
158
|
+
}
|
|
159
|
+
function _is_native_reflect_construct() {
|
|
160
|
+
try {
|
|
161
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
162
|
+
} catch (_) {}
|
|
163
|
+
return (_is_native_reflect_construct = function () {
|
|
164
|
+
return !!result;
|
|
165
|
+
})();
|
|
166
|
+
}
|
|
167
|
+
var tronGridUrls = Object.freeze({
|
|
168
|
+
mainnet: "https://api.trongrid.io",
|
|
169
|
+
nile: "https://nile.trongrid.io",
|
|
170
|
+
shasta: "https://api.shasta.trongrid.io"
|
|
171
|
+
});
|
|
172
|
+
var tronPrefix = 65;
|
|
173
|
+
var checksumOf = function checksumOf2(payload) {
|
|
174
|
+
return (0, import_viem.sha256)((0, import_viem.sha256)(payload, "bytes"), "bytes").slice(0, 4);
|
|
175
|
+
};
|
|
176
|
+
function tronAddressBytes(address) {
|
|
177
|
+
var value = address.trim();
|
|
178
|
+
if (/^(0x)?[0-9a-fA-F]+$/.test(value)) {
|
|
179
|
+
var bytes = (0, import_viem.hexToBytes)(value.startsWith("0x") ? value : `0x${value}`);
|
|
180
|
+
if (bytes.length === 20) return Uint8Array.of(tronPrefix, ...bytes);
|
|
181
|
+
if (bytes.length === 21 && bytes[0] === tronPrefix) return bytes;
|
|
182
|
+
throw new Error(`not a Tron address: ${address}`);
|
|
183
|
+
}
|
|
184
|
+
var decoded;
|
|
185
|
+
try {
|
|
186
|
+
decoded = import_bs58.default.decode(value);
|
|
187
|
+
} catch (unused) {
|
|
188
|
+
throw new Error(`not a Tron address: ${address}`);
|
|
189
|
+
}
|
|
190
|
+
if (decoded.length !== 25 || decoded[0] !== tronPrefix) {
|
|
191
|
+
throw new Error(`not a Tron address: ${address}`);
|
|
192
|
+
}
|
|
193
|
+
var payload = decoded.slice(0, 21);
|
|
194
|
+
var checksum = checksumOf(payload);
|
|
195
|
+
if (!checksum.every(function (byte, index) {
|
|
196
|
+
return byte === decoded[21 + index];
|
|
197
|
+
})) {
|
|
198
|
+
throw new Error(`Tron address checksum mismatch: ${address}`);
|
|
199
|
+
}
|
|
200
|
+
return payload;
|
|
201
|
+
}
|
|
202
|
+
function toTronBase58(address) {
|
|
203
|
+
var payload = tronAddressBytes(address);
|
|
204
|
+
return import_bs58.default.encode(Uint8Array.of(...payload, ...checksumOf(payload)));
|
|
205
|
+
}
|
|
206
|
+
function toTronHex(address) {
|
|
207
|
+
return (0, import_viem.bytesToHex)(tronAddressBytes(address)).slice(2);
|
|
208
|
+
}
|
|
209
|
+
function isTronAddress(address) {
|
|
210
|
+
try {
|
|
211
|
+
tronAddressBytes(address);
|
|
212
|
+
return true;
|
|
213
|
+
} catch (unused) {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
var TronGridError = /* @__PURE__ */function (Error1) {
|
|
218
|
+
"use strict";
|
|
219
|
+
|
|
220
|
+
_inherits(TronGridError2, Error1);
|
|
221
|
+
function TronGridError2(message, status) {
|
|
222
|
+
_class_call_check(this, TronGridError2);
|
|
223
|
+
var _this;
|
|
224
|
+
_this = _call_super(this, TronGridError2, [message]), _define_property(_this, "status", void 0);
|
|
225
|
+
_this.name = "TronGridError";
|
|
226
|
+
_this.status = status;
|
|
227
|
+
return _this;
|
|
228
|
+
}
|
|
229
|
+
return TronGridError2;
|
|
230
|
+
}(_wrap_native_super(Error));
|
|
231
|
+
function decodeMessage(message) {
|
|
232
|
+
if (!message) return void 0;
|
|
233
|
+
if (!/^[0-9a-fA-F]+$/.test(message) || message.length % 2) return message;
|
|
234
|
+
try {
|
|
235
|
+
return (0, import_viem.hexToString)(`0x${message}`);
|
|
236
|
+
} catch (unused) {
|
|
237
|
+
return message;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
async function readTrc20Balance(parameters) {
|
|
241
|
+
var _parameters_fetch;
|
|
242
|
+
var _body_constant_result, _body_result;
|
|
243
|
+
var {
|
|
244
|
+
token,
|
|
245
|
+
owner,
|
|
246
|
+
network = "mainnet",
|
|
247
|
+
apiUrl,
|
|
248
|
+
apiKey,
|
|
249
|
+
signal
|
|
250
|
+
} = parameters;
|
|
251
|
+
var request = (_parameters_fetch = parameters.fetch) !== null && _parameters_fetch !== void 0 ? _parameters_fetch : globalThis.fetch;
|
|
252
|
+
var ownerBytes = tronAddressBytes(owner);
|
|
253
|
+
var base = (apiUrl !== null && apiUrl !== void 0 ? apiUrl : tronGridUrls[network]).replace(/\/+$/, "");
|
|
254
|
+
var response = await request(`${base}/wallet/triggerconstantcontract`, {
|
|
255
|
+
method: "POST",
|
|
256
|
+
headers: {
|
|
257
|
+
accept: "application/json",
|
|
258
|
+
"content-type": "application/json",
|
|
259
|
+
...(apiKey ? {
|
|
260
|
+
"TRON-PRO-API-KEY": apiKey
|
|
261
|
+
} : {})
|
|
262
|
+
},
|
|
263
|
+
body: JSON.stringify({
|
|
264
|
+
owner_address: toTronBase58(owner),
|
|
265
|
+
contract_address: toTronBase58(token),
|
|
266
|
+
function_selector: "balanceOf(address)",
|
|
267
|
+
parameter: (0, import_viem.bytesToHex)(ownerBytes.slice(1)).slice(2).padStart(64, "0"),
|
|
268
|
+
visible: true
|
|
269
|
+
}),
|
|
270
|
+
...(signal ? {
|
|
271
|
+
signal
|
|
272
|
+
} : {})
|
|
273
|
+
});
|
|
274
|
+
if (!response.ok) {
|
|
275
|
+
throw new TronGridError(`TronGrid answered ${response.status} for balanceOf`, response.status);
|
|
276
|
+
}
|
|
277
|
+
var body = await response.json();
|
|
278
|
+
var word = (_body_constant_result = body.constant_result) === null || _body_constant_result === void 0 ? void 0 : _body_constant_result[0];
|
|
279
|
+
if (!((_body_result = body.result) === null || _body_result === void 0 ? void 0 : _body_result.result) || word === void 0) {
|
|
280
|
+
var _ref, _decodeMessage;
|
|
281
|
+
var _body_result1, _body_result2;
|
|
282
|
+
var reason = (_ref = (_decodeMessage = decodeMessage((_body_result1 = body.result) === null || _body_result1 === void 0 ? void 0 : _body_result1.message)) !== null && _decodeMessage !== void 0 ? _decodeMessage : body.Error) !== null && _ref !== void 0 ? _ref : (_body_result2 = body.result) === null || _body_result2 === void 0 ? void 0 : _body_result2.code;
|
|
283
|
+
throw new TronGridError(`TronGrid balanceOf failed${reason ? `: ${reason}` : ""}`);
|
|
284
|
+
}
|
|
285
|
+
return word === "" ? 0n : BigInt(`0x${word}`);
|
|
286
|
+
}
|
|
287
|
+
var capabilities = ["signMessage"];
|
|
288
|
+
function tronClient(adapter) {
|
|
289
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
290
|
+
var _options_network;
|
|
291
|
+
if (!adapter.address) throw new Error("tronClient: connect a Tron wallet first");
|
|
292
|
+
var address = adapter.address;
|
|
293
|
+
var network = (_options_network = options.network) !== null && _options_network !== void 0 ? _options_network : "mainnet";
|
|
294
|
+
return {
|
|
295
|
+
family: "tron",
|
|
296
|
+
address,
|
|
297
|
+
chainId: "tron",
|
|
298
|
+
network,
|
|
299
|
+
capabilities,
|
|
300
|
+
signMessage: function signMessage(message) {
|
|
301
|
+
return adapter.signMessage(message);
|
|
302
|
+
},
|
|
303
|
+
trc20Balance: function trc20Balance(token) {
|
|
304
|
+
var owner = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : address,
|
|
305
|
+
signal = arguments.length > 2 ? arguments[2] : void 0;
|
|
306
|
+
return readTrc20Balance({
|
|
307
|
+
...options,
|
|
308
|
+
network,
|
|
309
|
+
token,
|
|
310
|
+
owner,
|
|
311
|
+
...(signal ? {
|
|
312
|
+
signal
|
|
313
|
+
} : {})
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=tron.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","tron_exports","__export","TronGridError","isTronAddress","readTrc20Balance","toTronBase58","toTronHex","tronAddressBytes","tronClient","tronGridUrls","module","exports","import_bs58","__toESM","require","import_viem","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_define_property","bs58","obj","key","Object","defineProperty","enumerable","configurable","writable","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","Symbol","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper"],"sources":["../../../src/clients/tron.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var useTronClient_exports = {};
|
|
24
|
+
__export(useTronClient_exports, {
|
|
25
|
+
useTronClient: () => useTronClient
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(useTronClient_exports);
|
|
28
|
+
var import_react = require("react");
|
|
29
|
+
var import_wagmi = require("wagmi");
|
|
30
|
+
var import_adapter = require("./adapter.cjs");
|
|
31
|
+
var import_react2 = require("../core/react.cjs");
|
|
32
|
+
var import_TronAdapter = require("../connectkit/adapters/TronAdapter.cjs");
|
|
33
|
+
var import_tron = require("./tron.cjs");
|
|
34
|
+
function useTronClient() {
|
|
35
|
+
const connection = (0, import_react2.useOptionalConnection)();
|
|
36
|
+
const {
|
|
37
|
+
connector,
|
|
38
|
+
address
|
|
39
|
+
} = (0, import_wagmi.useAccount)();
|
|
40
|
+
return (0, import_react.useMemo)(() => {
|
|
41
|
+
if (connection) {
|
|
42
|
+
return connection.family === "tron" ? connection.client ?? void 0 : void 0;
|
|
43
|
+
}
|
|
44
|
+
const adapter = (0, import_adapter.connectorAdapter)(connector, "tron");
|
|
45
|
+
if (!adapter?.address) return void 0;
|
|
46
|
+
return (0, import_tron.tronClient)(adapter, adapter instanceof import_TronAdapter.TronAdapter ? {
|
|
47
|
+
network: adapter.network
|
|
48
|
+
} : {});
|
|
49
|
+
}, [connection, connector, address]);
|
|
50
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var useTronClient_exports = {};
|
|
26
|
+
__export(useTronClient_exports, {
|
|
27
|
+
useTronClient: () => useTronClient
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(useTronClient_exports);
|
|
30
|
+
var import_react = require("react");
|
|
31
|
+
var import_wagmi = require("wagmi");
|
|
32
|
+
var import_adapter = require("./adapter.native.js");
|
|
33
|
+
var import_react2 = require("../core/react.native.js");
|
|
34
|
+
var import_TronAdapter = require("../connectkit/adapters/TronAdapter.native.js");
|
|
35
|
+
var import_tron = require("./tron.native.js");
|
|
36
|
+
function _instanceof(left, right) {
|
|
37
|
+
"@swc/helpers - instanceof";
|
|
38
|
+
|
|
39
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
40
|
+
return !!right[Symbol.hasInstance](left);
|
|
41
|
+
} else {
|
|
42
|
+
return left instanceof right;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function useTronClient() {
|
|
46
|
+
var connection = (0, import_react2.useOptionalConnection)();
|
|
47
|
+
var {
|
|
48
|
+
connector,
|
|
49
|
+
address
|
|
50
|
+
} = (0, import_wagmi.useAccount)();
|
|
51
|
+
return (0, import_react.useMemo)(function () {
|
|
52
|
+
if (connection) {
|
|
53
|
+
var _connection_client;
|
|
54
|
+
return connection.family === "tron" ? (_connection_client = connection.client) !== null && _connection_client !== void 0 ? _connection_client : void 0 : void 0;
|
|
55
|
+
}
|
|
56
|
+
var adapter = (0, import_adapter.connectorAdapter)(connector, "tron");
|
|
57
|
+
if (!(adapter === null || adapter === void 0 ? void 0 : adapter.address)) return void 0;
|
|
58
|
+
return (0, import_tron.tronClient)(adapter, _instanceof(adapter, import_TronAdapter.TronAdapter) ? {
|
|
59
|
+
network: adapter.network
|
|
60
|
+
} : {});
|
|
61
|
+
}, [connection, connector, address]);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=useTronClient.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useTronClient_exports","__export","useTronClient","module","exports","import_react","require","import_wagmi","import_adapter","import_react2","import_TronAdapter","import_tron","_instanceof","left","right","Symbol","hasInstance","connection","useOptionalConnection","connector","address","useAccount"],"sources":["../../../src/clients/useTronClient.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AAAAC,QAAA,CAAAD,qBAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAwB,CAAAK,qBAAA;AACxB,IAAAK,YAAA,GAA2BC,OAAA;AAC3B,IAAAC,YAAA,GAAAD,OAAiC;AACjC,IAAAE,cAAA,GAAsCF,OAAA;AACtC,IAAAG,aAAA,GAAAH,OAA4B;AAC5B,IAAAI,kBAA4C,GAAAJ,OAAA;AAOrC,IAAAK,WAAS,GAAAL,OAAwC;AACtD,SAAMM,YAAAC,IAAa,EAAAC,KAAA;EACnB,2BAA2B;;EAC3B,IAAAA,KAAA,IAAO,eAAAC,MAAQ,KAAM,eAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACnB,OAAI,EAAAF,KAAA,CAAAC,MAAY,CAAAC,WAAA,EAAAH,IAAA;EACd;IAGF,OAAAA,IAAA,YAAAC,KAAA;EACA;AACA;AACA,SAAAZ,aAAOA,CAAA;EACT,IAAIe,UAAA,GAAY,IAAAR,aAAkB,CAACS,qBAAA;EACrC;IAAAC,SAAA;IAAAC;EAAA,QAAAb,YAAA,CAAAc,UAAA","ignoreList":[]}
|