@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.
Files changed (173) hide show
  1. package/README.md +33 -2
  2. package/dist/cjs/clients/tron.cjs +176 -0
  3. package/dist/cjs/clients/tron.native.js +318 -0
  4. package/dist/cjs/clients/tron.native.js.map +1 -0
  5. package/dist/cjs/clients/useTronClient.cjs +50 -0
  6. package/dist/cjs/clients/useTronClient.native.js +63 -0
  7. package/dist/cjs/clients/useTronClient.native.js.map +1 -0
  8. package/dist/cjs/connectkit/adapters/TronAdapter.cjs +139 -0
  9. package/dist/cjs/connectkit/adapters/TronAdapter.native.js +217 -0
  10. package/dist/cjs/connectkit/adapters/TronAdapter.native.js.map +1 -0
  11. package/dist/cjs/connectkit/connectors/createWalletMessage.cjs +3 -3
  12. package/dist/cjs/connectkit/connectors/createWalletMessage.native.js +3 -3
  13. package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  14. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.cjs +2 -1
  15. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js +18 -35
  16. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  17. package/dist/cjs/connectkit/connectors/syntheticChains.cjs +10 -4
  18. package/dist/cjs/connectkit/connectors/syntheticChains.native.js +10 -4
  19. package/dist/cjs/connectkit/connectors/syntheticChains.native.js.map +1 -1
  20. package/dist/cjs/connectkit/defaultConfig.cjs +2 -1
  21. package/dist/cjs/connectkit/defaultConfig.native.js +2 -1
  22. package/dist/cjs/connectkit/defaultConfig.native.js.map +1 -1
  23. package/dist/cjs/connectkit/wallets/walletConfigs.cjs +12 -0
  24. package/dist/cjs/connectkit/wallets/walletConfigs.native.js +12 -0
  25. package/dist/cjs/connectkit/wallets/walletConfigs.native.js.map +1 -1
  26. package/dist/cjs/families/host.native.js.map +1 -1
  27. package/dist/cjs/families/tron.cjs +92 -0
  28. package/dist/cjs/families/tron.native.js +120 -0
  29. package/dist/cjs/families/tron.native.js.map +1 -0
  30. package/dist/cjs/providers/WalletProvider.cjs +3 -2
  31. package/dist/cjs/tron.cjs +46 -0
  32. package/dist/cjs/tron.native.js +49 -0
  33. package/dist/cjs/tron.native.js.map +1 -0
  34. package/dist/cjs/wagmi/host.cjs +9 -4
  35. package/dist/cjs/wagmi/host.native.js +6 -3
  36. package/dist/cjs/wagmi/host.native.js.map +1 -1
  37. package/dist/esm/clients/tron.mjs +133 -0
  38. package/dist/esm/clients/tron.mjs.map +1 -0
  39. package/dist/esm/clients/tron.native.js +272 -0
  40. package/dist/esm/clients/tron.native.js.map +1 -0
  41. package/dist/esm/clients/useTronClient.mjs +25 -0
  42. package/dist/esm/clients/useTronClient.mjs.map +1 -0
  43. package/dist/esm/clients/useTronClient.native.js +35 -0
  44. package/dist/esm/clients/useTronClient.native.js.map +1 -0
  45. package/dist/esm/connectkit/adapters/TronAdapter.mjs +111 -0
  46. package/dist/esm/connectkit/adapters/TronAdapter.mjs.map +1 -0
  47. package/dist/esm/connectkit/adapters/TronAdapter.native.js +186 -0
  48. package/dist/esm/connectkit/adapters/TronAdapter.native.js.map +1 -0
  49. package/dist/esm/connectkit/connectors/createWalletMessage.mjs +3 -3
  50. package/dist/esm/connectkit/connectors/createWalletMessage.mjs.map +1 -1
  51. package/dist/esm/connectkit/connectors/createWalletMessage.native.js +3 -3
  52. package/dist/esm/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  53. package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs +2 -1
  54. package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
  55. package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js +18 -35
  56. package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  57. package/dist/esm/connectkit/connectors/syntheticChains.mjs +8 -4
  58. package/dist/esm/connectkit/connectors/syntheticChains.mjs.map +1 -1
  59. package/dist/esm/connectkit/connectors/syntheticChains.native.js +8 -4
  60. package/dist/esm/connectkit/connectors/syntheticChains.native.js.map +1 -1
  61. package/dist/esm/connectkit/defaultConfig.mjs +2 -1
  62. package/dist/esm/connectkit/defaultConfig.mjs.map +1 -1
  63. package/dist/esm/connectkit/defaultConfig.native.js +2 -1
  64. package/dist/esm/connectkit/defaultConfig.native.js.map +1 -1
  65. package/dist/esm/connectkit/wallets/walletConfigs.mjs +12 -0
  66. package/dist/esm/connectkit/wallets/walletConfigs.mjs.map +1 -1
  67. package/dist/esm/connectkit/wallets/walletConfigs.native.js +12 -0
  68. package/dist/esm/connectkit/wallets/walletConfigs.native.js.map +1 -1
  69. package/dist/esm/families/host.mjs.map +1 -1
  70. package/dist/esm/families/host.native.js.map +1 -1
  71. package/dist/esm/families/tron.mjs +65 -0
  72. package/dist/esm/families/tron.mjs.map +1 -0
  73. package/dist/esm/families/tron.native.js +90 -0
  74. package/dist/esm/families/tron.native.js.map +1 -0
  75. package/dist/esm/providers/WalletProvider.mjs +3 -2
  76. package/dist/esm/providers/WalletProvider.mjs.map +1 -1
  77. package/dist/esm/tron.mjs +6 -0
  78. package/dist/esm/tron.mjs.map +1 -0
  79. package/dist/esm/tron.native.js +6 -0
  80. package/dist/esm/tron.native.js.map +1 -0
  81. package/dist/esm/wagmi/host.mjs +9 -4
  82. package/dist/esm/wagmi/host.mjs.map +1 -1
  83. package/dist/esm/wagmi/host.native.js +6 -3
  84. package/dist/esm/wagmi/host.native.js.map +1 -1
  85. package/dist/jsx/clients/tron.mjs +133 -0
  86. package/dist/jsx/clients/tron.mjs.map +1 -0
  87. package/dist/jsx/clients/tron.native.js +318 -0
  88. package/dist/jsx/clients/tron.native.js.map +1 -0
  89. package/dist/jsx/clients/useTronClient.mjs +25 -0
  90. package/dist/jsx/clients/useTronClient.mjs.map +1 -0
  91. package/dist/jsx/clients/useTronClient.native.js +63 -0
  92. package/dist/jsx/clients/useTronClient.native.js.map +1 -0
  93. package/dist/jsx/connectkit/adapters/TronAdapter.mjs +111 -0
  94. package/dist/jsx/connectkit/adapters/TronAdapter.mjs.map +1 -0
  95. package/dist/jsx/connectkit/adapters/TronAdapter.native.js +217 -0
  96. package/dist/jsx/connectkit/adapters/TronAdapter.native.js.map +1 -0
  97. package/dist/jsx/connectkit/connectors/createWalletMessage.mjs +3 -3
  98. package/dist/jsx/connectkit/connectors/createWalletMessage.mjs.map +1 -1
  99. package/dist/jsx/connectkit/connectors/createWalletMessage.native.js +3 -3
  100. package/dist/jsx/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  101. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs +2 -1
  102. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
  103. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js +18 -35
  104. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  105. package/dist/jsx/connectkit/connectors/syntheticChains.mjs +8 -4
  106. package/dist/jsx/connectkit/connectors/syntheticChains.mjs.map +1 -1
  107. package/dist/jsx/connectkit/connectors/syntheticChains.native.js +10 -4
  108. package/dist/jsx/connectkit/connectors/syntheticChains.native.js.map +1 -1
  109. package/dist/jsx/connectkit/defaultConfig.mjs +2 -1
  110. package/dist/jsx/connectkit/defaultConfig.mjs.map +1 -1
  111. package/dist/jsx/connectkit/defaultConfig.native.js +2 -1
  112. package/dist/jsx/connectkit/defaultConfig.native.js.map +1 -1
  113. package/dist/jsx/connectkit/wallets/walletConfigs.mjs +12 -0
  114. package/dist/jsx/connectkit/wallets/walletConfigs.mjs.map +1 -1
  115. package/dist/jsx/connectkit/wallets/walletConfigs.native.js +12 -0
  116. package/dist/jsx/connectkit/wallets/walletConfigs.native.js.map +1 -1
  117. package/dist/jsx/families/host.mjs.map +1 -1
  118. package/dist/jsx/families/host.native.js.map +1 -1
  119. package/dist/jsx/families/tron.mjs +65 -0
  120. package/dist/jsx/families/tron.mjs.map +1 -0
  121. package/dist/jsx/families/tron.native.js +120 -0
  122. package/dist/jsx/families/tron.native.js.map +1 -0
  123. package/dist/jsx/providers/WalletProvider.mjs +3 -2
  124. package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
  125. package/dist/jsx/tron.mjs +6 -0
  126. package/dist/jsx/tron.mjs.map +1 -0
  127. package/dist/jsx/tron.native.js +49 -0
  128. package/dist/jsx/tron.native.js.map +1 -0
  129. package/dist/jsx/wagmi/host.mjs +9 -4
  130. package/dist/jsx/wagmi/host.mjs.map +1 -1
  131. package/dist/jsx/wagmi/host.native.js +6 -3
  132. package/dist/jsx/wagmi/host.native.js.map +1 -1
  133. package/dist/keycloak/login.iife.js +380 -380
  134. package/package.json +13 -7
  135. package/src/clients/tron.spec.ts +118 -0
  136. package/src/clients/tron.ts +186 -0
  137. package/src/clients/useTronClient.ts +26 -0
  138. package/src/connectkit/adapters/TronAdapter.spec.ts +155 -0
  139. package/src/connectkit/adapters/TronAdapter.ts +168 -0
  140. package/src/connectkit/adapters/discover.ts +1 -1
  141. package/src/connectkit/connectors/createWalletMessage.ts +3 -3
  142. package/src/connectkit/connectors/ensureWalletConnectors.ts +2 -1
  143. package/src/connectkit/connectors/syntheticChains.ts +8 -2
  144. package/src/connectkit/defaultConfig.ts +5 -2
  145. package/src/connectkit/wallets/walletConfigs.tsx +8 -0
  146. package/src/families/host.ts +9 -2
  147. package/src/families/tron.spec.ts +118 -0
  148. package/src/families/tron.ts +63 -0
  149. package/src/providers/WalletProvider.tsx +3 -2
  150. package/src/tron.ts +26 -0
  151. package/src/wagmi/host.tsx +6 -2
  152. package/types/clients/tron.d.ts +65 -0
  153. package/types/clients/tron.d.ts.map +1 -0
  154. package/types/clients/useTronClient.d.ts +8 -0
  155. package/types/clients/useTronClient.d.ts.map +1 -0
  156. package/types/connectkit/adapters/TronAdapter.d.ts +35 -0
  157. package/types/connectkit/adapters/TronAdapter.d.ts.map +1 -0
  158. package/types/connectkit/adapters/discover.d.ts +1 -1
  159. package/types/connectkit/adapters/discover.d.ts.map +1 -1
  160. package/types/connectkit/connectors/ensureWalletConnectors.d.ts.map +1 -1
  161. package/types/connectkit/connectors/syntheticChains.d.ts +4 -0
  162. package/types/connectkit/connectors/syntheticChains.d.ts.map +1 -1
  163. package/types/connectkit/defaultConfig.d.ts.map +1 -1
  164. package/types/connectkit/wallets/walletConfigs.d.ts.map +1 -1
  165. package/types/families/host.d.ts +9 -2
  166. package/types/families/host.d.ts.map +1 -1
  167. package/types/families/tron.d.ts +15 -0
  168. package/types/families/tron.d.ts.map +1 -0
  169. package/types/providers/WalletProvider.d.ts +2 -1
  170. package/types/providers/WalletProvider.d.ts.map +1 -1
  171. package/types/tron.d.ts +5 -0
  172. package/types/tron.d.ts.map +1 -0
  173. package/types/wagmi/host.d.ts.map +1 -1
@@ -0,0 +1,133 @@
1
+ import bs58 from "bs58";
2
+ import { bytesToHex, hexToBytes, hexToString, sha256 } from "viem";
3
+ const tronGridUrls = Object.freeze({
4
+ mainnet: "https://api.trongrid.io",
5
+ nile: "https://nile.trongrid.io",
6
+ shasta: "https://api.shasta.trongrid.io"
7
+ });
8
+ const tronPrefix = 65;
9
+ const checksumOf = payload => sha256(sha256(payload, "bytes"), "bytes").slice(0, 4);
10
+ function tronAddressBytes(address) {
11
+ const value = address.trim();
12
+ if (/^(0x)?[0-9a-fA-F]+$/.test(value)) {
13
+ const bytes = hexToBytes(value.startsWith("0x") ? value : `0x${value}`);
14
+ if (bytes.length === 20) return Uint8Array.of(tronPrefix, ...bytes);
15
+ if (bytes.length === 21 && bytes[0] === tronPrefix) return bytes;
16
+ throw new Error(`not a Tron address: ${address}`);
17
+ }
18
+ let decoded;
19
+ try {
20
+ decoded = bs58.decode(value);
21
+ } catch {
22
+ throw new Error(`not a Tron address: ${address}`);
23
+ }
24
+ if (decoded.length !== 25 || decoded[0] !== tronPrefix) {
25
+ throw new Error(`not a Tron address: ${address}`);
26
+ }
27
+ const payload = decoded.slice(0, 21);
28
+ const checksum = checksumOf(payload);
29
+ if (!checksum.every((byte, index) => byte === decoded[21 + index])) {
30
+ throw new Error(`Tron address checksum mismatch: ${address}`);
31
+ }
32
+ return payload;
33
+ }
34
+ function toTronBase58(address) {
35
+ const payload = tronAddressBytes(address);
36
+ return bs58.encode(Uint8Array.of(...payload, ...checksumOf(payload)));
37
+ }
38
+ function toTronHex(address) {
39
+ return bytesToHex(tronAddressBytes(address)).slice(2);
40
+ }
41
+ function isTronAddress(address) {
42
+ try {
43
+ tronAddressBytes(address);
44
+ return true;
45
+ } catch {
46
+ return false;
47
+ }
48
+ }
49
+ class TronGridError extends Error {
50
+ status;
51
+ constructor(message, status) {
52
+ super(message);
53
+ this.name = "TronGridError";
54
+ this.status = status;
55
+ }
56
+ }
57
+ function decodeMessage(message) {
58
+ if (!message) return void 0;
59
+ if (!/^[0-9a-fA-F]+$/.test(message) || message.length % 2) return message;
60
+ try {
61
+ return hexToString(`0x${message}`);
62
+ } catch {
63
+ return message;
64
+ }
65
+ }
66
+ async function readTrc20Balance(parameters) {
67
+ const {
68
+ token,
69
+ owner,
70
+ network = "mainnet",
71
+ apiUrl,
72
+ apiKey,
73
+ signal
74
+ } = parameters;
75
+ const request = parameters.fetch ?? globalThis.fetch;
76
+ const ownerBytes = tronAddressBytes(owner);
77
+ const base = (apiUrl ?? tronGridUrls[network]).replace(/\/+$/, "");
78
+ const response = await request(`${base}/wallet/triggerconstantcontract`, {
79
+ method: "POST",
80
+ headers: {
81
+ accept: "application/json",
82
+ "content-type": "application/json",
83
+ ...(apiKey ? {
84
+ "TRON-PRO-API-KEY": apiKey
85
+ } : {})
86
+ },
87
+ body: JSON.stringify({
88
+ owner_address: toTronBase58(owner),
89
+ contract_address: toTronBase58(token),
90
+ function_selector: "balanceOf(address)",
91
+ parameter: bytesToHex(ownerBytes.slice(1)).slice(2).padStart(64, "0"),
92
+ visible: true
93
+ }),
94
+ ...(signal ? {
95
+ signal
96
+ } : {})
97
+ });
98
+ if (!response.ok) {
99
+ throw new TronGridError(`TronGrid answered ${response.status} for balanceOf`, response.status);
100
+ }
101
+ const body = await response.json();
102
+ const word = body.constant_result?.[0];
103
+ if (!body.result?.result || word === void 0) {
104
+ const reason = decodeMessage(body.result?.message) ?? body.Error ?? body.result?.code;
105
+ throw new TronGridError(`TronGrid balanceOf failed${reason ? `: ${reason}` : ""}`);
106
+ }
107
+ return word === "" ? 0n : BigInt(`0x${word}`);
108
+ }
109
+ const capabilities = ["signMessage"];
110
+ function tronClient(adapter, options = {}) {
111
+ if (!adapter.address) throw new Error("tronClient: connect a Tron wallet first");
112
+ const address = adapter.address;
113
+ const network = options.network ?? "mainnet";
114
+ return {
115
+ family: "tron",
116
+ address,
117
+ chainId: "tron",
118
+ network,
119
+ capabilities,
120
+ signMessage: message => adapter.signMessage(message),
121
+ trc20Balance: (token, owner = address, signal) => readTrc20Balance({
122
+ ...options,
123
+ network,
124
+ token,
125
+ owner,
126
+ ...(signal ? {
127
+ signal
128
+ } : {})
129
+ })
130
+ };
131
+ }
132
+ export { TronGridError, isTronAddress, readTrc20Balance, toTronBase58, toTronHex, tronAddressBytes, tronClient, tronGridUrls };
133
+ //# sourceMappingURL=tron.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bs58","bytesToHex","hexToBytes","hexToString","sha256","tronGridUrls","Object","freeze","mainnet","nile","shasta","tronPrefix","checksumOf","payload","slice","tronAddressBytes","address","value","trim","test","bytes","startsWith","length","Uint8Array","of","Error","decoded","decode","checksum","every","byte","index","toTronBase58","encode","toTronHex","isTronAddress","TronGridError","status","constructor","message","name","decodeMessage","readTrc20Balance","parameters","token","owner","network","apiUrl","apiKey","signal","request","fetch","globalThis","ownerBytes","base","replace","response","method","headers","accept","body","JSON","stringify","owner_address","contract_address","function_selector","parameter","padStart","visible","ok","json","word","constant_result","result","reason","code","BigInt","capabilities","tronClient","adapter","options","family","chainId","signMessage","trc20Balance"],"sources":["../../../src/clients/tron.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,272 @@
1
+ import bs58 from "bs58";
2
+ import { bytesToHex, hexToBytes, hexToString, sha256 } from "viem";
3
+ function _assert_this_initialized(self) {
4
+ if (self === void 0) {
5
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
6
+ }
7
+ return self;
8
+ }
9
+ function _call_super(_this, derived, args) {
10
+ derived = _get_prototype_of(derived);
11
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
12
+ }
13
+ function _class_call_check(instance, Constructor) {
14
+ if (!(instance instanceof Constructor)) {
15
+ throw new TypeError("Cannot call a class as a function");
16
+ }
17
+ }
18
+ function _construct(Parent, args, Class) {
19
+ if (_is_native_reflect_construct()) {
20
+ _construct = Reflect.construct;
21
+ } else {
22
+ _construct = function construct(Parent2, args2, Class2) {
23
+ var a = [null];
24
+ a.push.apply(a, args2);
25
+ var Constructor = Function.bind.apply(Parent2, a);
26
+ var instance = new Constructor();
27
+ if (Class2) _set_prototype_of(instance, Class2.prototype);
28
+ return instance;
29
+ };
30
+ }
31
+ return _construct.apply(null, arguments);
32
+ }
33
+ function _define_property(obj, key, value) {
34
+ if (key in obj) {
35
+ Object.defineProperty(obj, key, {
36
+ value,
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true
40
+ });
41
+ } else {
42
+ obj[key] = value;
43
+ }
44
+ return obj;
45
+ }
46
+ function _get_prototype_of(o) {
47
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {
48
+ return o2.__proto__ || Object.getPrototypeOf(o2);
49
+ };
50
+ return _get_prototype_of(o);
51
+ }
52
+ function _inherits(subClass, superClass) {
53
+ if (typeof superClass !== "function" && superClass !== null) {
54
+ throw new TypeError("Super expression must either be null or a function");
55
+ }
56
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
57
+ constructor: {
58
+ value: subClass,
59
+ writable: true,
60
+ configurable: true
61
+ }
62
+ });
63
+ if (superClass) _set_prototype_of(subClass, superClass);
64
+ }
65
+ function _is_native_function(fn) {
66
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
67
+ }
68
+ function _possible_constructor_return(self, call) {
69
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
70
+ return call;
71
+ }
72
+ return _assert_this_initialized(self);
73
+ }
74
+ function _set_prototype_of(o, p) {
75
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {
76
+ o2.__proto__ = p2;
77
+ return o2;
78
+ };
79
+ return _set_prototype_of(o, p);
80
+ }
81
+ function _type_of(obj) {
82
+ "@swc/helpers - typeof";
83
+
84
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
85
+ }
86
+ function _wrap_native_super(Class) {
87
+ var _cache = typeof Map === "function" ? /* @__PURE__ */new Map() : void 0;
88
+ _wrap_native_super = function wrapNativeSuper(Class2) {
89
+ if (Class2 === null || !_is_native_function(Class2)) return Class2;
90
+ if (typeof Class2 !== "function") {
91
+ throw new TypeError("Super expression must either be null or a function");
92
+ }
93
+ if (typeof _cache !== "undefined") {
94
+ if (_cache.has(Class2)) return _cache.get(Class2);
95
+ _cache.set(Class2, Wrapper);
96
+ }
97
+ function Wrapper() {
98
+ return _construct(Class2, arguments, _get_prototype_of(this).constructor);
99
+ }
100
+ Wrapper.prototype = Object.create(Class2.prototype, {
101
+ constructor: {
102
+ value: Wrapper,
103
+ enumerable: false,
104
+ writable: true,
105
+ configurable: true
106
+ }
107
+ });
108
+ return _set_prototype_of(Wrapper, Class2);
109
+ };
110
+ return _wrap_native_super(Class);
111
+ }
112
+ function _is_native_reflect_construct() {
113
+ try {
114
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
115
+ } catch (_) {}
116
+ return (_is_native_reflect_construct = function () {
117
+ return !!result;
118
+ })();
119
+ }
120
+ var tronGridUrls = Object.freeze({
121
+ mainnet: "https://api.trongrid.io",
122
+ nile: "https://nile.trongrid.io",
123
+ shasta: "https://api.shasta.trongrid.io"
124
+ });
125
+ var tronPrefix = 65;
126
+ var checksumOf = function checksumOf2(payload) {
127
+ return sha256(sha256(payload, "bytes"), "bytes").slice(0, 4);
128
+ };
129
+ function tronAddressBytes(address) {
130
+ var value = address.trim();
131
+ if (/^(0x)?[0-9a-fA-F]+$/.test(value)) {
132
+ var bytes = hexToBytes(value.startsWith("0x") ? value : `0x${value}`);
133
+ if (bytes.length === 20) return Uint8Array.of(tronPrefix, ...bytes);
134
+ if (bytes.length === 21 && bytes[0] === tronPrefix) return bytes;
135
+ throw new Error(`not a Tron address: ${address}`);
136
+ }
137
+ var decoded;
138
+ try {
139
+ decoded = bs58.decode(value);
140
+ } catch (unused) {
141
+ throw new Error(`not a Tron address: ${address}`);
142
+ }
143
+ if (decoded.length !== 25 || decoded[0] !== tronPrefix) {
144
+ throw new Error(`not a Tron address: ${address}`);
145
+ }
146
+ var payload = decoded.slice(0, 21);
147
+ var checksum = checksumOf(payload);
148
+ if (!checksum.every(function (byte, index) {
149
+ return byte === decoded[21 + index];
150
+ })) {
151
+ throw new Error(`Tron address checksum mismatch: ${address}`);
152
+ }
153
+ return payload;
154
+ }
155
+ function toTronBase58(address) {
156
+ var payload = tronAddressBytes(address);
157
+ return bs58.encode(Uint8Array.of(...payload, ...checksumOf(payload)));
158
+ }
159
+ function toTronHex(address) {
160
+ return bytesToHex(tronAddressBytes(address)).slice(2);
161
+ }
162
+ function isTronAddress(address) {
163
+ try {
164
+ tronAddressBytes(address);
165
+ return true;
166
+ } catch (unused) {
167
+ return false;
168
+ }
169
+ }
170
+ var TronGridError = /* @__PURE__ */function (Error1) {
171
+ "use strict";
172
+
173
+ _inherits(TronGridError2, Error1);
174
+ function TronGridError2(message, status) {
175
+ _class_call_check(this, TronGridError2);
176
+ var _this;
177
+ _this = _call_super(this, TronGridError2, [message]), _define_property(_this, "status", void 0);
178
+ _this.name = "TronGridError";
179
+ _this.status = status;
180
+ return _this;
181
+ }
182
+ return TronGridError2;
183
+ }(_wrap_native_super(Error));
184
+ function decodeMessage(message) {
185
+ if (!message) return void 0;
186
+ if (!/^[0-9a-fA-F]+$/.test(message) || message.length % 2) return message;
187
+ try {
188
+ return hexToString(`0x${message}`);
189
+ } catch (unused) {
190
+ return message;
191
+ }
192
+ }
193
+ async function readTrc20Balance(parameters) {
194
+ var _parameters_fetch;
195
+ var _body_constant_result, _body_result;
196
+ var {
197
+ token,
198
+ owner,
199
+ network = "mainnet",
200
+ apiUrl,
201
+ apiKey,
202
+ signal
203
+ } = parameters;
204
+ var request = (_parameters_fetch = parameters.fetch) !== null && _parameters_fetch !== void 0 ? _parameters_fetch : globalThis.fetch;
205
+ var ownerBytes = tronAddressBytes(owner);
206
+ var base = (apiUrl !== null && apiUrl !== void 0 ? apiUrl : tronGridUrls[network]).replace(/\/+$/, "");
207
+ var response = await request(`${base}/wallet/triggerconstantcontract`, {
208
+ method: "POST",
209
+ headers: {
210
+ accept: "application/json",
211
+ "content-type": "application/json",
212
+ ...(apiKey ? {
213
+ "TRON-PRO-API-KEY": apiKey
214
+ } : {})
215
+ },
216
+ body: JSON.stringify({
217
+ owner_address: toTronBase58(owner),
218
+ contract_address: toTronBase58(token),
219
+ function_selector: "balanceOf(address)",
220
+ parameter: bytesToHex(ownerBytes.slice(1)).slice(2).padStart(64, "0"),
221
+ visible: true
222
+ }),
223
+ ...(signal ? {
224
+ signal
225
+ } : {})
226
+ });
227
+ if (!response.ok) {
228
+ throw new TronGridError(`TronGrid answered ${response.status} for balanceOf`, response.status);
229
+ }
230
+ var body = await response.json();
231
+ var word = (_body_constant_result = body.constant_result) === null || _body_constant_result === void 0 ? void 0 : _body_constant_result[0];
232
+ if (!((_body_result = body.result) === null || _body_result === void 0 ? void 0 : _body_result.result) || word === void 0) {
233
+ var _ref, _decodeMessage;
234
+ var _body_result1, _body_result2;
235
+ 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;
236
+ throw new TronGridError(`TronGrid balanceOf failed${reason ? `: ${reason}` : ""}`);
237
+ }
238
+ return word === "" ? 0n : BigInt(`0x${word}`);
239
+ }
240
+ var capabilities = ["signMessage"];
241
+ function tronClient(adapter) {
242
+ var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
243
+ var _options_network;
244
+ if (!adapter.address) throw new Error("tronClient: connect a Tron wallet first");
245
+ var address = adapter.address;
246
+ var network = (_options_network = options.network) !== null && _options_network !== void 0 ? _options_network : "mainnet";
247
+ return {
248
+ family: "tron",
249
+ address,
250
+ chainId: "tron",
251
+ network,
252
+ capabilities,
253
+ signMessage: function signMessage(message) {
254
+ return adapter.signMessage(message);
255
+ },
256
+ trc20Balance: function trc20Balance(token) {
257
+ var owner = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : address,
258
+ signal = arguments.length > 2 ? arguments[2] : void 0;
259
+ return readTrc20Balance({
260
+ ...options,
261
+ network,
262
+ token,
263
+ owner,
264
+ ...(signal ? {
265
+ signal
266
+ } : {})
267
+ });
268
+ }
269
+ };
270
+ }
271
+ export { TronGridError, isTronAddress, readTrc20Balance, toTronBase58, toTronHex, tronAddressBytes, tronClient, tronGridUrls };
272
+ //# sourceMappingURL=tron.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bs58","bytesToHex","hexToBytes","hexToString","sha256","_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","obj","key","value","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,25 @@
1
+ import { useMemo } from "react";
2
+ import { useAccount } from "wagmi";
3
+ import { connectorAdapter } from "./adapter.mjs";
4
+ import { useOptionalConnection } from "../core/react.mjs";
5
+ import { TronAdapter } from "../connectkit/adapters/TronAdapter.mjs";
6
+ import { tronClient } from "./tron.mjs";
7
+ function useTronClient() {
8
+ const connection = useOptionalConnection();
9
+ const {
10
+ connector,
11
+ address
12
+ } = useAccount();
13
+ return useMemo(() => {
14
+ if (connection) {
15
+ return connection.family === "tron" ? connection.client ?? void 0 : void 0;
16
+ }
17
+ const adapter = connectorAdapter(connector, "tron");
18
+ if (!adapter?.address) return void 0;
19
+ return tronClient(adapter, adapter instanceof TronAdapter ? {
20
+ network: adapter.network
21
+ } : {});
22
+ }, [connection, connector, address]);
23
+ }
24
+ export { useTronClient };
25
+ //# sourceMappingURL=useTronClient.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useAccount","connectorAdapter","useOptionalConnection","TronAdapter","tronClient","useTronClient","connection","connector","address","family","client","adapter","network"],"sources":["../../../src/clients/useTronClient.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,UAAA,QAAkB;AAC3B,SAASC,gBAAA,QAAwB;AACjC,SAASC,qBAAA,QAA6B;AACtC,SAASC,WAAA,QAAmB;AAC5B,SAASC,UAAA,QAAmC;AAOrC,SAASC,cAAA,EAAwC;EACtD,MAAMC,UAAA,GAAaJ,qBAAA,CAAsB;EACzC,MAAM;IAAEK,SAAA;IAAWC;EAAQ,IAAIR,UAAA,CAAW;EAC1C,OAAOD,OAAA,CAAQ,MAAM;IACnB,IAAIO,UAAA,EAAY;MACd,OAAOA,UAAA,CAAWG,MAAA,KAAW,SACvBH,UAAA,CAAWI,MAAA,IAAgC,SAC7C;IACN;IACA,MAAMC,OAAA,GAAUV,gBAAA,CAAiBM,SAAA,EAAW,MAAM;IAClD,IAAI,CAACI,OAAA,EAASH,OAAA,EAAS,OAAO;IAC9B,OAAOJ,UAAA,CAAWO,OAAA,EAASA,OAAA,YAAmBR,WAAA,GAAc;MAAES,OAAA,EAASD,OAAA,CAAQC;IAAQ,IAAI,CAAC,CAAC;EAC/F,GAAG,CAACN,UAAA,EAAYC,SAAA,EAAWC,OAAO,CAAC;AACrC","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import { useMemo } from "react";
2
+ import { useAccount } from "wagmi";
3
+ import { connectorAdapter } from "./adapter.native.js";
4
+ import { useOptionalConnection } from "../core/react.native.js";
5
+ import { TronAdapter } from "../connectkit/adapters/TronAdapter.native.js";
6
+ import { tronClient } from "./tron.native.js";
7
+ function _instanceof(left, right) {
8
+ "@swc/helpers - instanceof";
9
+
10
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
11
+ return !!right[Symbol.hasInstance](left);
12
+ } else {
13
+ return left instanceof right;
14
+ }
15
+ }
16
+ function useTronClient() {
17
+ var connection = useOptionalConnection();
18
+ var {
19
+ connector,
20
+ address
21
+ } = useAccount();
22
+ return useMemo(function () {
23
+ if (connection) {
24
+ var _connection_client;
25
+ return connection.family === "tron" ? (_connection_client = connection.client) !== null && _connection_client !== void 0 ? _connection_client : void 0 : void 0;
26
+ }
27
+ var adapter = connectorAdapter(connector, "tron");
28
+ if (!(adapter === null || adapter === void 0 ? void 0 : adapter.address)) return void 0;
29
+ return tronClient(adapter, _instanceof(adapter, TronAdapter) ? {
30
+ network: adapter.network
31
+ } : {});
32
+ }, [connection, connector, address]);
33
+ }
34
+ export { useTronClient };
35
+ //# sourceMappingURL=useTronClient.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useAccount","connectorAdapter","useOptionalConnection","TronAdapter","tronClient","_instanceof","left","right","Symbol","hasInstance","useTronClient","connection","connector","address"],"sources":["../../../src/clients/useTronClient.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,UAAA,QAAkB;AAC3B,SAASC,gBAAA,QAAwB;AACjC,SAASC,qBAAA,QAA6B;AACtC,SAASC,WAAA,QAAmB;AAC5B,SAASC,UAAA,QAAmC;AAOrC,SAASC,YAAAC,IAAwC,EAAAC,KAAA;EACtD,2BAAmB;;EACnB,IAAAA,KAAQ,YAAW,OAAQC,MAAI,gBAAW,IAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IAC1C,OAAO,EAAAF,KAAQ,CAAAC,MAAM,CAAAC,WAAA,EAAAH,IAAA;EACnB,OAAI;IACF,OAAAA,IAAO,YAAWC,KAAA;EAEd;AAEN;AACA,SAAKG,aAASA,CAAA;EACd,IAAAC,UAAO,GAAAT,qBAAoB;EAC7B,IAAI;IAAAU,SAAA;IAAYC;EAAA,IAAWb,UAAQ;EACrC,OAAAD,OAAA","ignoreList":[]}
@@ -0,0 +1,111 @@
1
+ const page = () => typeof window === "undefined" ? void 0 : window;
2
+ const tronWebOf = w => w.tron?.tronWeb || w.tronLink?.tronWeb || w.tronWeb || void 0;
3
+ const accountOf = w => tronWebOf(w)?.defaultAddress?.base58 || null;
4
+ function tronNetworkOf(host) {
5
+ if (host?.includes("nile")) return "nile";
6
+ if (host?.includes("shasta")) return "shasta";
7
+ return "mainnet";
8
+ }
9
+ function hasTronWallet() {
10
+ const w = page();
11
+ return Boolean(w?.tron || w?.tronLink);
12
+ }
13
+ class TronAdapter {
14
+ chain = "tron";
15
+ address = null;
16
+ isConnected = false;
17
+ get network() {
18
+ const w = page();
19
+ return tronNetworkOf(w ? tronWebOf(w)?.fullNode?.host : void 0);
20
+ }
21
+ get networkId() {
22
+ return `tron:${this.network}`;
23
+ }
24
+ async connect() {
25
+ const w = page();
26
+ if (!w?.tron && !w?.tronLink) {
27
+ throw new Error("No Tron wallet found. Install TronLink.");
28
+ }
29
+ if (w.tron) {
30
+ await w.tron.request({
31
+ method: "eth_requestAccounts"
32
+ });
33
+ } else if (w.tronLink) {
34
+ const answer = await w.tronLink.request({
35
+ method: "tron_requestAccounts"
36
+ });
37
+ if (!answer) throw new Error("TronLink is locked. Unlock it and try again.");
38
+ if (answer.code !== void 0 && answer.code !== 200) {
39
+ throw new Error(answer.message || "TronLink refused the connection");
40
+ }
41
+ }
42
+ const address = accountOf(w);
43
+ if (!address) throw new Error("TronLink returned no account");
44
+ this.address = address;
45
+ this.isConnected = true;
46
+ }
47
+ /**
48
+ * Takes the account TronLink already shares with this page, without a
49
+ * prompt. False when it shares none; throws while TronLink has not
50
+ * injected itself yet.
51
+ */
52
+ async restore() {
53
+ const w = page();
54
+ if (!w?.tron && !w?.tronLink && !w?.tronWeb) throw new Error("No Tron wallet found yet.");
55
+ const address = accountOf(w);
56
+ this.address = address;
57
+ this.isConnected = address !== null;
58
+ return address !== null;
59
+ }
60
+ /** TronLink's account switches and disconnects; the account is read back from tronWeb on each. */
61
+ subscribe(listener) {
62
+ const w = page();
63
+ if (!w) return () => {};
64
+ const update = () => {
65
+ const address = accountOf(w);
66
+ this.address = address;
67
+ this.isConnected = address !== null;
68
+ listener();
69
+ };
70
+ const provider = w.tron;
71
+ if (provider?.on) {
72
+ const onAccounts = () => update();
73
+ provider.on("accountsChanged", onAccounts);
74
+ return () => provider.removeListener?.("accountsChanged", onAccounts);
75
+ }
76
+ if (typeof w.addEventListener !== "function") return () => {};
77
+ const onMessage = event => {
78
+ const action = event.data?.message?.action;
79
+ if (action === "accountsChanged" || action === "setAccount" || action === "disconnect" || action === "disconnectWeb") {
80
+ update();
81
+ }
82
+ };
83
+ w.addEventListener("message", onMessage);
84
+ return () => w.removeEventListener?.("message", onMessage);
85
+ }
86
+ async disconnect() {
87
+ this.address = null;
88
+ this.isConnected = false;
89
+ }
90
+ async buildMessage(_opts) {
91
+ throw new Error("Tron sign-in is not supported yet");
92
+ }
93
+ /** TronLink's `signMessageV2`: the 0x hex signature over the TIP-191 prefixed message. */
94
+ async signMessage(message) {
95
+ const w = page();
96
+ const tronWeb = w ? tronWebOf(w) : void 0;
97
+ if (!this.address || !tronWeb) throw new Error("connect a Tron wallet first");
98
+ return tronWeb.trx.signMessageV2(message);
99
+ }
100
+ }
101
+ function discoverTronWallets() {
102
+ if (!hasTronWallet()) return [];
103
+ return [{
104
+ id: "wallet:tron:tronlink",
105
+ name: "TronLink",
106
+ ecosystem: "tron",
107
+ adapter: new TronAdapter()
108
+ }];
109
+ }
110
+ export { TronAdapter, discoverTronWallets, hasTronWallet, tronNetworkOf };
111
+ //# sourceMappingURL=TronAdapter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["page","window","tronWebOf","w","tron","tronWeb","tronLink","accountOf","defaultAddress","base58","tronNetworkOf","host","includes","hasTronWallet","Boolean","TronAdapter","chain","address","isConnected","network","fullNode","networkId","connect","Error","request","method","answer","code","message","restore","subscribe","listener","update","provider","on","onAccounts","removeListener","addEventListener","onMessage","event","action","data","removeEventListener","disconnect","buildMessage","_opts","signMessage","trx","signMessageV2","discoverTronWallets","id","name","ecosystem","adapter"],"sources":["../../../../src/connectkit/adapters/TronAdapter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}