@hot-labs/kit 1.0.33

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 (300) hide show
  1. package/.eslintrc.cjs +11 -0
  2. package/.github/workflows/deploy-example.yml +55 -0
  3. package/.github/workflows/release.yml +74 -0
  4. package/.prettierrc +4 -0
  5. package/.prototools +2 -0
  6. package/.vscode/settings.json +3 -0
  7. package/CHANGELOG.md +1 -0
  8. package/README.md +67 -0
  9. package/build/GoogleConnector.d.ts +20 -0
  10. package/build/GoogleConnector.js +76 -0
  11. package/build/GoogleConnector.js.map +1 -0
  12. package/build/HotConnector.d.ts +91 -0
  13. package/build/HotConnector.js +285 -0
  14. package/build/HotConnector.js.map +1 -0
  15. package/build/OmniConnector.d.ts +95 -0
  16. package/build/OmniConnector.js +123 -0
  17. package/build/OmniConnector.js.map +1 -0
  18. package/build/OmniWallet.d.ts +57 -0
  19. package/build/OmniWallet.js +56 -0
  20. package/build/OmniWallet.js.map +1 -0
  21. package/build/cosmos/connector.d.ts +53 -0
  22. package/build/cosmos/connector.js +207 -0
  23. package/build/cosmos/connector.js.map +1 -0
  24. package/build/cosmos/wallet.d.ts +28 -0
  25. package/build/cosmos/wallet.js +59 -0
  26. package/build/cosmos/wallet.js.map +1 -0
  27. package/build/events.d.ts +42 -0
  28. package/build/events.js +64 -0
  29. package/build/events.js.map +1 -0
  30. package/build/evm/abi.d.ts +17 -0
  31. package/build/evm/abi.js +38 -0
  32. package/build/evm/abi.js.map +1 -0
  33. package/build/evm/connector.d.ts +35 -0
  34. package/build/evm/connector.js +124 -0
  35. package/build/evm/connector.js.map +1 -0
  36. package/build/evm/wallet.d.ts +47 -0
  37. package/build/evm/wallet.js +136 -0
  38. package/build/evm/wallet.js.map +1 -0
  39. package/build/exchange.d.ts +63 -0
  40. package/build/exchange.js +384 -0
  41. package/build/exchange.js.map +1 -0
  42. package/build/hot-wallet/evm.d.ts +1 -0
  43. package/build/hot-wallet/evm.js +33 -0
  44. package/build/hot-wallet/evm.js.map +1 -0
  45. package/build/hot-wallet/hot.d.ts +3 -0
  46. package/build/hot-wallet/hot.js +40 -0
  47. package/build/hot-wallet/hot.js.map +1 -0
  48. package/build/hot-wallet/index.d.ts +4 -0
  49. package/build/hot-wallet/index.js +5 -0
  50. package/build/hot-wallet/index.js.map +1 -0
  51. package/build/hot-wallet/solana/account.d.ts +11 -0
  52. package/build/hot-wallet/solana/account.js +42 -0
  53. package/build/hot-wallet/solana/account.js.map +1 -0
  54. package/build/hot-wallet/solana/index.d.ts +1 -0
  55. package/build/hot-wallet/solana/index.js +85 -0
  56. package/build/hot-wallet/solana/index.js.map +1 -0
  57. package/build/hot-wallet/solana/register.d.ts +2 -0
  58. package/build/hot-wallet/solana/register.js +41 -0
  59. package/build/hot-wallet/solana/register.js.map +1 -0
  60. package/build/hot-wallet/solana/solana-wallet.d.ts +34 -0
  61. package/build/hot-wallet/solana/solana-wallet.js +223 -0
  62. package/build/hot-wallet/solana/solana-wallet.js.map +1 -0
  63. package/build/hot-wallet/solana/utils.d.ts +32 -0
  64. package/build/hot-wallet/solana/utils.js +36 -0
  65. package/build/hot-wallet/solana/utils.js.map +1 -0
  66. package/build/hot-wallet/stellar.d.ts +38 -0
  67. package/build/hot-wallet/stellar.js +32 -0
  68. package/build/hot-wallet/stellar.js.map +1 -0
  69. package/build/hot-wallet/ton.d.ts +1 -0
  70. package/build/hot-wallet/ton.js +49 -0
  71. package/build/hot-wallet/ton.js.map +1 -0
  72. package/build/hot-wallet/wallet.d.ts +1 -0
  73. package/build/hot-wallet/wallet.js +40 -0
  74. package/build/hot-wallet/wallet.js.map +1 -0
  75. package/build/index.d.ts +24 -0
  76. package/build/index.js +25 -0
  77. package/build/index.js.map +1 -0
  78. package/build/near/connector.d.ts +28 -0
  79. package/build/near/connector.js +56 -0
  80. package/build/near/connector.js.map +1 -0
  81. package/build/near/wallet.d.ts +62 -0
  82. package/build/near/wallet.js +233 -0
  83. package/build/near/wallet.js.map +1 -0
  84. package/build/omni/Intents.d.ts +93 -0
  85. package/build/omni/Intents.js +395 -0
  86. package/build/omni/Intents.js.map +1 -0
  87. package/build/omni/bridge.d.ts +3 -0
  88. package/build/omni/bridge.js +34 -0
  89. package/build/omni/bridge.js.map +1 -0
  90. package/build/omni/config.d.ts +99 -0
  91. package/build/omni/config.js +126 -0
  92. package/build/omni/config.js.map +1 -0
  93. package/build/omni/defaultTokens.d.ts +17 -0
  94. package/build/omni/defaultTokens.js +1079 -0
  95. package/build/omni/defaultTokens.js.map +1 -0
  96. package/build/omni/index.d.ts +8 -0
  97. package/build/omni/index.js +9 -0
  98. package/build/omni/index.js.map +1 -0
  99. package/build/omni/nearRpc.d.ts +24 -0
  100. package/build/omni/nearRpc.js +167 -0
  101. package/build/omni/nearRpc.js.map +1 -0
  102. package/build/omni/recipient.d.ts +10 -0
  103. package/build/omni/recipient.js +40 -0
  104. package/build/omni/recipient.js.map +1 -0
  105. package/build/omni/token.d.ts +36 -0
  106. package/build/omni/token.js +136 -0
  107. package/build/omni/token.js.map +1 -0
  108. package/build/omni/tokens.d.ts +14 -0
  109. package/build/omni/tokens.js +57 -0
  110. package/build/omni/tokens.js.map +1 -0
  111. package/build/omni/types.d.ts +41 -0
  112. package/build/omni/types.js +2 -0
  113. package/build/omni/types.js.map +1 -0
  114. package/build/omni/utils.d.ts +24 -0
  115. package/build/omni/utils.js +150 -0
  116. package/build/omni/utils.js.map +1 -0
  117. package/build/settings.d.ts +5 -0
  118. package/build/settings.js +6 -0
  119. package/build/settings.js.map +1 -0
  120. package/build/solana/connector.d.ts +31 -0
  121. package/build/solana/connector.js +138 -0
  122. package/build/solana/connector.js.map +1 -0
  123. package/build/solana/protocol.d.ts +25 -0
  124. package/build/solana/protocol.js +56 -0
  125. package/build/solana/protocol.js.map +1 -0
  126. package/build/solana/wallet.d.ts +47 -0
  127. package/build/solana/wallet.js +188 -0
  128. package/build/solana/wallet.js.map +1 -0
  129. package/build/solana/wallets.d.ts +102 -0
  130. package/build/solana/wallets.js +150 -0
  131. package/build/solana/wallets.js.map +1 -0
  132. package/build/stellar/connector.d.ts +25 -0
  133. package/build/stellar/connector.js +56 -0
  134. package/build/stellar/connector.js.map +1 -0
  135. package/build/stellar/wallet.d.ts +70 -0
  136. package/build/stellar/wallet.js +225 -0
  137. package/build/stellar/wallet.js.map +1 -0
  138. package/build/storage.d.ts +10 -0
  139. package/build/storage.js +12 -0
  140. package/build/storage.js.map +1 -0
  141. package/build/ton/connector.d.ts +25 -0
  142. package/build/ton/connector.js +119 -0
  143. package/build/ton/connector.js.map +1 -0
  144. package/build/ton/utils.d.ts +45 -0
  145. package/build/ton/utils.js +64 -0
  146. package/build/ton/utils.js.map +1 -0
  147. package/build/ton/wallet.d.ts +70 -0
  148. package/build/ton/wallet.js +154 -0
  149. package/build/ton/wallet.js.map +1 -0
  150. package/build/ui/Popup.d.ts +10 -0
  151. package/build/ui/Popup.js +38 -0
  152. package/build/ui/Popup.js.map +1 -0
  153. package/build/ui/connect/AuthPopup.d.ts +2 -0
  154. package/build/ui/connect/AuthPopup.js +48 -0
  155. package/build/ui/connect/AuthPopup.js.map +1 -0
  156. package/build/ui/connect/ConnectWallet.d.ts +9 -0
  157. package/build/ui/connect/ConnectWallet.js +22 -0
  158. package/build/ui/connect/ConnectWallet.js.map +1 -0
  159. package/build/ui/connect/LogoutPopup.d.ts +10 -0
  160. package/build/ui/connect/LogoutPopup.js +8 -0
  161. package/build/ui/connect/LogoutPopup.js.map +1 -0
  162. package/build/ui/connect/WCPopup.d.ts +13 -0
  163. package/build/ui/connect/WCPopup.js +81 -0
  164. package/build/ui/connect/WCPopup.js.map +1 -0
  165. package/build/ui/connect/WCRequest.d.ts +9 -0
  166. package/build/ui/connect/WCRequest.js +13 -0
  167. package/build/ui/connect/WCRequest.js.map +1 -0
  168. package/build/ui/connect/WalletPicker.d.ts +11 -0
  169. package/build/ui/connect/WalletPicker.js +48 -0
  170. package/build/ui/connect/WalletPicker.js.map +1 -0
  171. package/build/ui/icons/arrow-right.d.ts +1 -0
  172. package/build/ui/icons/arrow-right.js +5 -0
  173. package/build/ui/icons/arrow-right.js.map +1 -0
  174. package/build/ui/icons/exchange.d.ts +6 -0
  175. package/build/ui/icons/exchange.js +6 -0
  176. package/build/ui/icons/exchange.js.map +1 -0
  177. package/build/ui/icons/logout.d.ts +1 -0
  178. package/build/ui/icons/logout.js +3 -0
  179. package/build/ui/icons/logout.js.map +1 -0
  180. package/build/ui/icons/pending.d.ts +1 -0
  181. package/build/ui/icons/pending.js +5 -0
  182. package/build/ui/icons/pending.js.map +1 -0
  183. package/build/ui/icons/qr.d.ts +1 -0
  184. package/build/ui/icons/qr.js +5 -0
  185. package/build/ui/icons/qr.js.map +1 -0
  186. package/build/ui/icons/search.d.ts +1 -0
  187. package/build/ui/icons/search.js +5 -0
  188. package/build/ui/icons/search.js.map +1 -0
  189. package/build/ui/icons/switch.d.ts +1 -0
  190. package/build/ui/icons/switch.js +5 -0
  191. package/build/ui/icons/switch.js.map +1 -0
  192. package/build/ui/icons/wallet.d.ts +1 -0
  193. package/build/ui/icons/wallet.js +5 -0
  194. package/build/ui/icons/wallet.js.map +1 -0
  195. package/build/ui/payment/Bridge.d.ts +27 -0
  196. package/build/ui/payment/Bridge.js +340 -0
  197. package/build/ui/payment/Bridge.js.map +1 -0
  198. package/build/ui/payment/DepositQR.d.ts +9 -0
  199. package/build/ui/payment/DepositQR.js +56 -0
  200. package/build/ui/payment/DepositQR.js.map +1 -0
  201. package/build/ui/payment/Payment.d.ts +16 -0
  202. package/build/ui/payment/Payment.js +50 -0
  203. package/build/ui/payment/Payment.js.map +1 -0
  204. package/build/ui/payment/Profile.d.ts +7 -0
  205. package/build/ui/payment/Profile.js +88 -0
  206. package/build/ui/payment/Profile.js.map +1 -0
  207. package/build/ui/payment/SelectRecipient.d.ts +14 -0
  208. package/build/ui/payment/SelectRecipient.js +68 -0
  209. package/build/ui/payment/SelectRecipient.js.map +1 -0
  210. package/build/ui/payment/SelectSender.d.ts +13 -0
  211. package/build/ui/payment/SelectSender.js +23 -0
  212. package/build/ui/payment/SelectSender.js.map +1 -0
  213. package/build/ui/payment/SelectToken.d.ts +13 -0
  214. package/build/ui/payment/SelectToken.js +92 -0
  215. package/build/ui/payment/SelectToken.js.map +1 -0
  216. package/build/ui/payment/TokenCard.d.ts +23 -0
  217. package/build/ui/payment/TokenCard.js +50 -0
  218. package/build/ui/payment/TokenCard.js.map +1 -0
  219. package/build/ui/router.d.ts +37 -0
  220. package/build/ui/router.js +56 -0
  221. package/build/ui/router.js.map +1 -0
  222. package/build/ui/styles.d.ts +11 -0
  223. package/build/ui/styles.js +273 -0
  224. package/build/ui/styles.js.map +1 -0
  225. package/package.json +60 -0
  226. package/skill.md +989 -0
  227. package/src/GoogleConnector.ts +102 -0
  228. package/src/HotConnector.ts +344 -0
  229. package/src/OmniConnector.ts +161 -0
  230. package/src/OmniWallet.ts +94 -0
  231. package/src/cosmos/connector.ts +242 -0
  232. package/src/cosmos/wallet.ts +77 -0
  233. package/src/events.ts +66 -0
  234. package/src/evm/abi.ts +39 -0
  235. package/src/evm/connector.ts +139 -0
  236. package/src/evm/wallet.ts +156 -0
  237. package/src/exchange.ts +426 -0
  238. package/src/hot-wallet/evm.ts +38 -0
  239. package/src/hot-wallet/hot.ts +39 -0
  240. package/src/hot-wallet/index.ts +4 -0
  241. package/src/hot-wallet/solana/account.ts +52 -0
  242. package/src/hot-wallet/solana/index.ts +98 -0
  243. package/src/hot-wallet/solana/register.ts +48 -0
  244. package/src/hot-wallet/solana/solana-wallet.ts +280 -0
  245. package/src/hot-wallet/solana/utils.ts +56 -0
  246. package/src/hot-wallet/stellar.ts +39 -0
  247. package/src/hot-wallet/ton.ts +56 -0
  248. package/src/hot-wallet/wallet.ts +44 -0
  249. package/src/index.ts +30 -0
  250. package/src/near/connector.ts +71 -0
  251. package/src/near/wallet.ts +255 -0
  252. package/src/omni/Intents.ts +454 -0
  253. package/src/omni/bridge.ts +38 -0
  254. package/src/omni/config.ts +130 -0
  255. package/src/omni/defaultTokens.ts +1078 -0
  256. package/src/omni/index.ts +8 -0
  257. package/src/omni/nearRpc.ts +187 -0
  258. package/src/omni/recipient.ts +41 -0
  259. package/src/omni/token.ts +125 -0
  260. package/src/omni/tokens.ts +68 -0
  261. package/src/omni/types.ts +46 -0
  262. package/src/omni/utils.ts +163 -0
  263. package/src/settings.ts +5 -0
  264. package/src/solana/connector.ts +151 -0
  265. package/src/solana/protocol.ts +66 -0
  266. package/src/solana/wallet.ts +230 -0
  267. package/src/solana/wallets.ts +243 -0
  268. package/src/stellar/connector.ts +69 -0
  269. package/src/stellar/wallet.ts +267 -0
  270. package/src/storage.ts +19 -0
  271. package/src/ton/connector.ts +138 -0
  272. package/src/ton/utils.ts +73 -0
  273. package/src/ton/wallet.ts +178 -0
  274. package/src/ui/Popup.tsx +62 -0
  275. package/src/ui/connect/AuthPopup.tsx +78 -0
  276. package/src/ui/connect/ConnectWallet.tsx +63 -0
  277. package/src/ui/connect/LogoutPopup.tsx +20 -0
  278. package/src/ui/connect/WCPopup.tsx +122 -0
  279. package/src/ui/connect/WCRequest.tsx +28 -0
  280. package/src/ui/connect/WalletPicker.tsx +92 -0
  281. package/src/ui/icons/arrow-right.tsx +8 -0
  282. package/src/ui/icons/exchange.tsx +17 -0
  283. package/src/ui/icons/logout.tsx +18 -0
  284. package/src/ui/icons/pending.tsx +18 -0
  285. package/src/ui/icons/qr.tsx +12 -0
  286. package/src/ui/icons/search.tsx +18 -0
  287. package/src/ui/icons/switch.tsx +10 -0
  288. package/src/ui/icons/wallet.tsx +18 -0
  289. package/src/ui/payment/Bridge.tsx +582 -0
  290. package/src/ui/payment/DepositQR.tsx +88 -0
  291. package/src/ui/payment/Payment.tsx +78 -0
  292. package/src/ui/payment/Profile.tsx +140 -0
  293. package/src/ui/payment/SelectRecipient.tsx +111 -0
  294. package/src/ui/payment/SelectSender.tsx +60 -0
  295. package/src/ui/payment/SelectToken.tsx +134 -0
  296. package/src/ui/payment/TokenCard.tsx +83 -0
  297. package/src/ui/router.tsx +92 -0
  298. package/src/ui/styles.ts +284 -0
  299. package/tsconfig.json +22 -0
  300. package/vite.config.ts +17 -0
@@ -0,0 +1,85 @@
1
+ import { Transaction, VersionedTransaction, PublicKey } from "@solana/web3.js";
2
+ import { isInjected, requestHot } from "../hot";
3
+ import { registerWallet } from "./register";
4
+ import { GhostWallet } from "./solana-wallet";
5
+ const deserializeTransaction = (base64) => {
6
+ let buf = Buffer.alloc(0);
7
+ if (Buffer.isBuffer(base64)) {
8
+ buf = Buffer.from(base64);
9
+ }
10
+ else {
11
+ const parts = base64.split(",");
12
+ if (parts.every((t) => !isNaN(Number(t))))
13
+ buf = Buffer.from(new Uint8Array(parts.map((t) => Number(t))));
14
+ else
15
+ buf = Buffer.from(base64, "base64");
16
+ }
17
+ try {
18
+ return VersionedTransaction.deserialize(buf);
19
+ }
20
+ catch (e) {
21
+ return Transaction.from(buf);
22
+ }
23
+ };
24
+ const hotSolana = {
25
+ publicKey: null,
26
+ async connect(options) {
27
+ const { publicKey } = await requestHot("solana:connect", options);
28
+ hotSolana.publicKey = new PublicKey(publicKey);
29
+ return { publicKey: hotSolana.publicKey };
30
+ },
31
+ async disconnect() {
32
+ return await requestHot("solana:disconnect", {});
33
+ },
34
+ async signAllTransactions(transactions) {
35
+ const result = await requestHot("solana:signAllTransactions", {
36
+ transactions: transactions.map((t) => t.serialize().toString("base64")),
37
+ });
38
+ return result.transactions.map((t) => deserializeTransaction(t));
39
+ },
40
+ async signTransaction(transaction) {
41
+ const result = await requestHot("solana:signAllTransactions", {
42
+ transactions: [transaction.serialize().toString("base64")],
43
+ });
44
+ return deserializeTransaction(result.transactions[0]);
45
+ },
46
+ async signAndSendTransaction(transaction, options) {
47
+ const result = await requestHot("solana:signAndSendTransaction", {
48
+ transaction: transaction.serialize().toString("base64"),
49
+ options,
50
+ });
51
+ return { signature: result.signature };
52
+ },
53
+ async signIn(input) {
54
+ throw "Not supported";
55
+ return await requestHot("solana:signIn", input);
56
+ },
57
+ async signMessage(message) {
58
+ const result = await requestHot("solana:signMessage", { message: Buffer.from(message).toString("base64") });
59
+ return { signature: Buffer.from(result.signature, "base64") };
60
+ },
61
+ off() {
62
+ //HOT.unsubscribe(`solana:${event}`, listener);
63
+ },
64
+ on() {
65
+ // HOT.subscribe(`solana:${event}`, listener);
66
+ },
67
+ };
68
+ /*
69
+ HOT.subscribe("solana:accountChanged", (publicKey: string | null) => {
70
+ hotSolana.publicKey = publicKey ? new PublicKey(publicKey) : null;
71
+ });
72
+ */
73
+ if (isInjected()) {
74
+ registerWallet(new GhostWallet(hotSolana));
75
+ // New wallets no longer need to register wallet globals - and can
76
+ // ignore the code below. However if you have legacy apps relying on globals,
77
+ // this is the safest way to attach the reference to the window, guarding against errors.
78
+ try {
79
+ Object.defineProperty(window, "hotSolana", { value: hotSolana });
80
+ }
81
+ catch (error) {
82
+ //
83
+ }
84
+ }
85
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hot-wallet/solana/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Wallet } from "@wallet-standard/base";
2
+ export declare function registerWallet(wallet: Wallet): void;
@@ -0,0 +1,41 @@
1
+ export function registerWallet(wallet) {
2
+ const callback = ({ register }) => register(wallet);
3
+ try {
4
+ window.dispatchEvent(new RegisterWalletEvent(callback));
5
+ }
6
+ catch (error) {
7
+ console.error(error);
8
+ }
9
+ try {
10
+ window.addEventListener("wallet-standard:app-ready", ({ detail: api }) => callback(api));
11
+ }
12
+ catch (error) {
13
+ console.error(error);
14
+ }
15
+ }
16
+ class RegisterWalletEvent extends Event {
17
+ #detail;
18
+ get detail() {
19
+ return this.#detail;
20
+ }
21
+ get type() {
22
+ return "wallet-standard:register-wallet";
23
+ }
24
+ constructor(callback) {
25
+ super("wallet-standard:register-wallet", { bubbles: false, cancelable: false, composed: false });
26
+ this.#detail = callback;
27
+ }
28
+ /** @deprecated */
29
+ preventDefault() {
30
+ throw new Error("preventDefault cannot be called");
31
+ }
32
+ /** @deprecated */
33
+ stopImmediatePropagation() {
34
+ throw new Error("stopImmediatePropagation cannot be called");
35
+ }
36
+ /** @deprecated */
37
+ stopPropagation() {
38
+ throw new Error("stopPropagation cannot be called");
39
+ }
40
+ }
41
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/hot-wallet/solana/register.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,QAAQ,GAAsC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvF,IAAI,CAAC;QACF,MAA6B,CAAC,aAAa,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACF,MAA6B,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,mBAAoB,SAAQ,KAAK;IAC5B,OAAO,CAAoC;IAEpD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,iCAA0C,CAAC;IACpD,CAAC;IAED,YAAY,QAA2C;QACrD,KAAK,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACjG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,kBAAkB;IAClB,cAAc;QACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB;IAClB,wBAAwB;QACtB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB;IAClB,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ import { type SolanaSignAndSendTransactionFeature, type SolanaSignAndSendTransactionMethod, type SolanaSignInFeature, type SolanaSignInMethod, type SolanaSignMessageFeature, type SolanaSignMessageMethod, type SolanaSignTransactionFeature, type SolanaSignTransactionMethod } from "@solana/wallet-standard-features";
2
+ import type { Wallet } from "@wallet-standard/base";
3
+ import { type StandardConnectFeature, type StandardConnectMethod, type StandardDisconnectFeature, type StandardDisconnectMethod, type StandardEventsFeature, type StandardEventsListeners, type StandardEventsNames, type StandardEventsOnMethod } from "@wallet-standard/features";
4
+ import { GhostWalletAccount } from "./account";
5
+ import { GhostFeature } from "./utils";
6
+ export declare class GhostWallet implements Wallet {
7
+ _account: GhostWalletAccount | null;
8
+ readonly _listeners: {
9
+ [E in StandardEventsNames]?: StandardEventsListeners[E][];
10
+ };
11
+ readonly _version: "1.0.0";
12
+ readonly _name: "HOT Wallet";
13
+ readonly _icon = "https://storage.herewallet.app/logo.png";
14
+ readonly _ghost: any;
15
+ get version(): "1.0.0";
16
+ get name(): "HOT Wallet";
17
+ get icon(): any;
18
+ get chains(): ("solana:mainnet" | "solana:mainnet-beta")[];
19
+ get features(): StandardConnectFeature & StandardDisconnectFeature & StandardEventsFeature & SolanaSignAndSendTransactionFeature & SolanaSignTransactionFeature & SolanaSignMessageFeature & SolanaSignInFeature & GhostFeature;
20
+ get accounts(): GhostWalletAccount[];
21
+ constructor(ghost: any);
22
+ _on: StandardEventsOnMethod;
23
+ _emit<E extends StandardEventsNames>(event: E, ...args: Parameters<StandardEventsListeners[E]>): void;
24
+ _off<E extends StandardEventsNames>(event: E, listener: StandardEventsListeners[E]): void;
25
+ _connected: () => void;
26
+ _disconnected: () => void;
27
+ _reconnected: () => void;
28
+ _connect: StandardConnectMethod;
29
+ _disconnect: StandardDisconnectMethod;
30
+ _signAndSendTransaction: SolanaSignAndSendTransactionMethod;
31
+ _signTransaction: SolanaSignTransactionMethod;
32
+ _signMessage: SolanaSignMessageMethod;
33
+ _signIn: SolanaSignInMethod;
34
+ }
@@ -0,0 +1,223 @@
1
+ import { SolanaSignAndSendTransaction, SolanaSignIn, SolanaSignMessage, SolanaSignTransaction, } from "@solana/wallet-standard-features";
2
+ import { VersionedTransaction } from "@solana/web3.js";
3
+ import { StandardConnect, StandardDisconnect, StandardEvents, } from "@wallet-standard/features";
4
+ import { base58 } from "@scure/base";
5
+ import { GhostWalletAccount } from "./account";
6
+ import { SOLANA_CHAINS, GhostNamespace, isVersionedTransaction, isSolanaChain, bytesEqual } from "./utils";
7
+ export class GhostWallet {
8
+ _account = null;
9
+ _listeners = {};
10
+ _version = "1.0.0";
11
+ _name = "HOT Wallet";
12
+ _icon = "https://storage.herewallet.app/logo.png";
13
+ _ghost;
14
+ get version() {
15
+ return this._version;
16
+ }
17
+ get name() {
18
+ return this._name;
19
+ }
20
+ get icon() {
21
+ return this._icon;
22
+ }
23
+ get chains() {
24
+ return SOLANA_CHAINS.slice();
25
+ }
26
+ get features() {
27
+ return {
28
+ [StandardConnect]: {
29
+ version: "1.0.0",
30
+ connect: this._connect,
31
+ },
32
+ [StandardDisconnect]: {
33
+ version: "1.0.0",
34
+ disconnect: this._disconnect,
35
+ },
36
+ [StandardEvents]: {
37
+ version: "1.0.0",
38
+ on: this._on,
39
+ },
40
+ [SolanaSignAndSendTransaction]: {
41
+ version: "1.0.0",
42
+ supportedTransactionVersions: ["legacy", 0],
43
+ signAndSendTransaction: this._signAndSendTransaction,
44
+ },
45
+ [SolanaSignTransaction]: {
46
+ version: "1.0.0",
47
+ supportedTransactionVersions: ["legacy", 0],
48
+ signTransaction: this._signTransaction,
49
+ },
50
+ [SolanaSignMessage]: {
51
+ version: "1.0.0",
52
+ signMessage: this._signMessage,
53
+ },
54
+ [SolanaSignIn]: {
55
+ version: "1.0.0",
56
+ signIn: this._signIn,
57
+ },
58
+ [GhostNamespace]: {
59
+ ghost: this._ghost,
60
+ },
61
+ };
62
+ }
63
+ get accounts() {
64
+ return this._account ? [this._account] : [];
65
+ }
66
+ constructor(ghost) {
67
+ this._ghost = ghost;
68
+ ghost.on("connect", this._connected, this);
69
+ ghost.on("disconnect", this._disconnected, this);
70
+ ghost.on("accountChanged", this._reconnected, this);
71
+ this._connected();
72
+ }
73
+ _on = (event, listener) => {
74
+ this._listeners[event]?.push(listener) || (this._listeners[event] = [listener]);
75
+ return () => this._off(event, listener);
76
+ };
77
+ _emit(event, ...args) {
78
+ // eslint-disable-next-line prefer-spread
79
+ this._listeners[event]?.forEach((listener) => listener.apply(null, args));
80
+ }
81
+ _off(event, listener) {
82
+ this._listeners[event] = this._listeners[event]?.filter((existingListener) => listener !== existingListener);
83
+ }
84
+ _connected = () => {
85
+ const address = this._ghost.publicKey?.toBase58();
86
+ if (address) {
87
+ const publicKey = this._ghost.publicKey.toBytes();
88
+ const account = this._account;
89
+ if (!account || account.address !== address || !bytesEqual(account.publicKey, publicKey)) {
90
+ this._account = new GhostWalletAccount({ address, publicKey });
91
+ this._emit("change", { accounts: this.accounts });
92
+ }
93
+ }
94
+ };
95
+ _disconnected = () => {
96
+ if (this._account) {
97
+ this._account = null;
98
+ this._emit("change", { accounts: this.accounts });
99
+ }
100
+ };
101
+ _reconnected = () => {
102
+ if (this._ghost.publicKey) {
103
+ this._connected();
104
+ }
105
+ else {
106
+ this._disconnected();
107
+ }
108
+ };
109
+ _connect = async ({ silent } = {}) => {
110
+ if (!this._account)
111
+ await this._ghost.connect(silent ? { onlyIfTrusted: true } : undefined);
112
+ this._connected();
113
+ return { accounts: this.accounts };
114
+ };
115
+ _disconnect = async () => {
116
+ await this._ghost.disconnect();
117
+ };
118
+ _signAndSendTransaction = async (...inputs) => {
119
+ if (!this._account)
120
+ throw new Error("not connected");
121
+ const outputs = [];
122
+ if (inputs.length === 1) {
123
+ const { transaction, account, options } = inputs[0];
124
+ const { minContextSlot, preflightCommitment, skipPreflight, maxRetries } = options || {};
125
+ if (account !== this._account)
126
+ throw new Error("invalid account");
127
+ const { signature } = await this._ghost.signAndSendTransaction(VersionedTransaction.deserialize(transaction), {
128
+ preflightCommitment,
129
+ minContextSlot,
130
+ maxRetries,
131
+ skipPreflight,
132
+ });
133
+ outputs.push({ signature: base58.decode(signature) });
134
+ }
135
+ else if (inputs.length > 1) {
136
+ for (const input of inputs) {
137
+ outputs.push(...(await this._signAndSendTransaction(input)));
138
+ }
139
+ }
140
+ return outputs;
141
+ };
142
+ _signTransaction = async (...inputs) => {
143
+ if (!this._account)
144
+ throw new Error("not connected");
145
+ const outputs = [];
146
+ if (inputs.length === 1) {
147
+ const { transaction, account, chain } = inputs[0];
148
+ if (account !== this._account)
149
+ throw new Error("invalid account");
150
+ if (chain && !isSolanaChain(chain))
151
+ throw new Error("invalid chain");
152
+ const signedTransaction = await this._ghost.signTransaction(VersionedTransaction.deserialize(transaction));
153
+ const serializedTransaction = isVersionedTransaction(signedTransaction)
154
+ ? signedTransaction.serialize()
155
+ : signedTransaction.serialize({
156
+ requireAllSignatures: false,
157
+ verifySignatures: false,
158
+ });
159
+ outputs.push({ signedTransaction: serializedTransaction });
160
+ }
161
+ else if (inputs.length > 1) {
162
+ let chain = undefined;
163
+ for (const input of inputs) {
164
+ if (input.account !== this._account)
165
+ throw new Error("invalid account");
166
+ if (input.chain) {
167
+ if (!isSolanaChain(input.chain))
168
+ throw new Error("invalid chain");
169
+ if (chain) {
170
+ if (input.chain !== chain)
171
+ throw new Error("conflicting chain");
172
+ }
173
+ else {
174
+ chain = input.chain;
175
+ }
176
+ }
177
+ }
178
+ const transactions = inputs.map(({ transaction }) => VersionedTransaction.deserialize(transaction));
179
+ const signedTransactions = await this._ghost.signAllTransactions(transactions);
180
+ outputs.push(...signedTransactions.map((signedTransaction) => {
181
+ const serializedTransaction = isVersionedTransaction(signedTransaction)
182
+ ? signedTransaction.serialize()
183
+ : signedTransaction.serialize({
184
+ requireAllSignatures: false,
185
+ verifySignatures: false,
186
+ });
187
+ return { signedTransaction: serializedTransaction };
188
+ }));
189
+ }
190
+ return outputs;
191
+ };
192
+ _signMessage = async (...inputs) => {
193
+ if (!this._account)
194
+ throw new Error("not connected");
195
+ const outputs = [];
196
+ if (inputs.length === 1) {
197
+ const { message, account } = inputs[0];
198
+ if (account !== this._account)
199
+ throw new Error("invalid account");
200
+ const { signature } = await this._ghost.signMessage(message);
201
+ outputs.push({ signedMessage: message, signature });
202
+ }
203
+ else if (inputs.length > 1) {
204
+ for (const input of inputs) {
205
+ outputs.push(...(await this._signMessage(input)));
206
+ }
207
+ }
208
+ return outputs;
209
+ };
210
+ _signIn = async (...inputs) => {
211
+ const outputs = [];
212
+ if (inputs.length > 1) {
213
+ for (const input of inputs) {
214
+ outputs.push(await this._ghost.signIn(input));
215
+ }
216
+ }
217
+ else {
218
+ return [await this._ghost.signIn(inputs[0])];
219
+ }
220
+ return outputs;
221
+ };
222
+ }
223
+ //# sourceMappingURL=solana-wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-wallet.js","sourceRoot":"","sources":["../../../src/hot-wallet/solana/solana-wallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { Transaction, VersionedTransaction } from "@solana/web3.js";
2
+ import type { IdentifierString } from "@wallet-standard/base";
3
+ interface Indexed<T> {
4
+ length: number;
5
+ [index: number]: T;
6
+ }
7
+ export declare function bytesEqual(a: Uint8Array, b: Uint8Array): boolean;
8
+ export declare function arraysEqual<T>(a: Indexed<T>, b: Indexed<T>): boolean;
9
+ export declare const GhostNamespace = "hot:";
10
+ export type GhostFeature = {
11
+ [GhostNamespace]: {
12
+ ghost: any;
13
+ };
14
+ };
15
+ /** Solana Mainnet (beta) cluster, e.g. https://api.mainnet-beta.solana.com */
16
+ export declare const SOLANA_MAINNET_CHAIN = "solana:mainnet";
17
+ /** Solana Devnet cluster, e.g. https://api.devnet.solana.com */
18
+ export declare const SOLANA_DEVNET_CHAIN = "solana:devnet";
19
+ /** Solana Testnet cluster, e.g. https://api.testnet.solana.com */
20
+ export declare const SOLANA_TESTNET_CHAIN = "solana:testnet";
21
+ /** Solana Localnet cluster, e.g. http://localhost:8899 */
22
+ export declare const SOLANA_LOCALNET_CHAIN = "solana:localnet";
23
+ /** Array of all Solana clusters */
24
+ export declare const SOLANA_CHAINS: readonly ["solana:mainnet", "solana:mainnet-beta"];
25
+ /** Type of all Solana clusters */
26
+ export type SolanaChain = (typeof SOLANA_CHAINS)[number];
27
+ /**
28
+ * Check if a chain corresponds with one of the Solana clusters.
29
+ */
30
+ export declare function isSolanaChain(chain: IdentifierString): chain is SolanaChain;
31
+ export declare function isVersionedTransaction(transaction: Transaction | VersionedTransaction): transaction is VersionedTransaction;
32
+ export {};
@@ -0,0 +1,36 @@
1
+ export function bytesEqual(a, b) {
2
+ return arraysEqual(a, b);
3
+ }
4
+ export function arraysEqual(a, b) {
5
+ if (a === b)
6
+ return true;
7
+ const length = a.length;
8
+ if (length !== b.length)
9
+ return false;
10
+ for (let i = 0; i < length; i++) {
11
+ if (a[i] !== b[i])
12
+ return false;
13
+ }
14
+ return true;
15
+ }
16
+ export const GhostNamespace = "hot:";
17
+ /** Solana Mainnet (beta) cluster, e.g. https://api.mainnet-beta.solana.com */
18
+ export const SOLANA_MAINNET_CHAIN = "solana:mainnet";
19
+ /** Solana Devnet cluster, e.g. https://api.devnet.solana.com */
20
+ export const SOLANA_DEVNET_CHAIN = "solana:devnet";
21
+ /** Solana Testnet cluster, e.g. https://api.testnet.solana.com */
22
+ export const SOLANA_TESTNET_CHAIN = "solana:testnet";
23
+ /** Solana Localnet cluster, e.g. http://localhost:8899 */
24
+ export const SOLANA_LOCALNET_CHAIN = "solana:localnet";
25
+ /** Array of all Solana clusters */
26
+ export const SOLANA_CHAINS = ["solana:mainnet", "solana:mainnet-beta"];
27
+ /**
28
+ * Check if a chain corresponds with one of the Solana clusters.
29
+ */
30
+ export function isSolanaChain(chain) {
31
+ return SOLANA_CHAINS.includes(chain);
32
+ }
33
+ export function isVersionedTransaction(transaction) {
34
+ return "version" in transaction;
35
+ }
36
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/hot-wallet/solana/utils.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CAAC,CAAa,EAAE,CAAa;IACrD,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,CAAa,EAAE,CAAa;IACzD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AAGrC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAErD,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAEnD,kEAAkE;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAErD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEvD,mCAAmC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,gBAAgB,EAAE,qBAAqB,CAAU,CAAC;AAKhF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAuB;IACnD,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAoB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAA+C;IACpF,OAAO,SAAS,IAAI,WAAW,CAAC;AAClC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { type ModuleInterface, ModuleType } from "@creit.tech/stellar-wallets-kit";
2
+ export declare const HOTWALLET_ID: string;
3
+ /**
4
+ * **IMPORTANT**: This module requires that you have a "global" and a "Buffer" polyfill in your app, if not provided then this module will break your app.
5
+ */
6
+ export declare class HotWalletModule implements ModuleInterface {
7
+ moduleType: ModuleType;
8
+ productId: string;
9
+ productName: string;
10
+ productUrl: string;
11
+ productIcon: string;
12
+ isAvailable(): Promise<boolean>;
13
+ getAddress(): Promise<{
14
+ address: string;
15
+ }>;
16
+ signTransaction(xdr: string, opts?: {
17
+ address?: string;
18
+ }): Promise<{
19
+ signedTxXdr: string;
20
+ signerAddress?: string;
21
+ }>;
22
+ signAuthEntry(authEntry: string, opts?: {
23
+ address?: string;
24
+ }): Promise<{
25
+ signedAuthEntry: string;
26
+ signerAddress?: string;
27
+ }>;
28
+ signMessage(message: string, opts?: {
29
+ address?: string;
30
+ }): Promise<{
31
+ signedMessage: string;
32
+ signerAddress?: string;
33
+ }>;
34
+ getNetwork(): Promise<{
35
+ network: string;
36
+ networkPassphrase: string;
37
+ }>;
38
+ }
@@ -0,0 +1,32 @@
1
+ import { ModuleType, WalletNetwork } from "@creit.tech/stellar-wallets-kit";
2
+ import { requestHot } from "./hot";
3
+ export const HOTWALLET_ID = "hot-wallet";
4
+ /**
5
+ * **IMPORTANT**: This module requires that you have a "global" and a "Buffer" polyfill in your app, if not provided then this module will break your app.
6
+ */
7
+ export class HotWalletModule {
8
+ moduleType = ModuleType.HOT_WALLET;
9
+ productId = HOTWALLET_ID;
10
+ productName = "HOT Wallet";
11
+ productUrl = "https://hot-labs.org/wallet";
12
+ productIcon = "https://storage.herewallet.app/logo.png";
13
+ async isAvailable() {
14
+ return true;
15
+ }
16
+ async getAddress() {
17
+ return await requestHot("stellar:getAddress", {});
18
+ }
19
+ async signTransaction(xdr, opts) {
20
+ return await requestHot("stellar:signTransaction", { xdr, accountToSign: opts?.address });
21
+ }
22
+ async signAuthEntry(authEntry, opts) {
23
+ return await requestHot("stellar:signAuthEntry", { authEntry, accountToSign: opts?.address });
24
+ }
25
+ async signMessage(message, opts) {
26
+ return await requestHot("stellar:signMessage", { message, accountToSign: opts?.address });
27
+ }
28
+ async getNetwork() {
29
+ return { network: "mainnet", networkPassphrase: WalletNetwork.PUBLIC };
30
+ }
31
+ }
32
+ //# sourceMappingURL=stellar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellar.js","sourceRoot":"","sources":["../../src/hot-wallet/stellar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,UAAU,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,MAAM,CAAC,MAAM,YAAY,GAAW,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,UAAU,GAAe,UAAU,CAAC,UAAU,CAAC;IAC/C,SAAS,GAAW,YAAY,CAAC;IACjC,WAAW,GAAW,YAAY,CAAC;IACnC,UAAU,GAAW,6BAA6B,CAAC;IACnD,WAAW,GAAW,yCAAyC,CAAC;IAEhE,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,MAAM,UAAU,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,IAA2B;QAC5D,OAAO,MAAM,UAAU,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,IAA2B;QAChE,OAAO,MAAM,UAAU,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAA2B;QAC5D,OAAO,MAAM,UAAU,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,49 @@
1
+ import { isInjected, requestHot } from "./hot";
2
+ if (isInjected()) {
3
+ // @ts-expect-error: hotWallet is not defined
4
+ window.hotWallet = {
5
+ tonconnect: {
6
+ deviceInfo: {
7
+ appName: "hot",
8
+ appVersion: "1",
9
+ maxProtocolVersion: 2,
10
+ platform: "ios",
11
+ features: [
12
+ "SendTransaction",
13
+ {
14
+ name: "SendTransaction",
15
+ maxMessages: 255,
16
+ extraCurrencySupported: false,
17
+ },
18
+ {
19
+ name: "SignData",
20
+ types: ["text", "binary", "cell"],
21
+ },
22
+ ],
23
+ },
24
+ walletInfo: {
25
+ name: "hotWallet",
26
+ image: "https://storage.herewallet.app/logo.png",
27
+ about_url: "https://hot-labs.org",
28
+ },
29
+ protocolVersion: 2,
30
+ isWalletBrowser: true,
31
+ connect: (_, request) => {
32
+ return requestHot("ton:connect", request);
33
+ },
34
+ restoreConnection: () => {
35
+ return requestHot("ton:restoreConnection", {});
36
+ },
37
+ disconnect: () => {
38
+ return requestHot("ton:disconnect", {});
39
+ },
40
+ send: async (request) => {
41
+ return requestHot("ton:send", request);
42
+ },
43
+ listen: () => {
44
+ return function () { };
45
+ },
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=ton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton.js","sourceRoot":"","sources":["../../src/hot-wallet/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE/C,IAAI,UAAU,EAAE,EAAE,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,SAAS,GAAG;QACjB,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,GAAG;gBACf,kBAAkB,EAAE,CAAC;gBACrB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE;oBACR,iBAAiB;oBACjB;wBACE,IAAI,EAAE,iBAAiB;wBACvB,WAAW,EAAE,GAAG;wBAChB,sBAAsB,EAAE,KAAK;qBAC9B;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;qBAClC;iBACF;aACF;YAED,UAAU,EAAE;gBACV,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,yCAAyC;gBAChD,SAAS,EAAE,sBAAsB;aAClC;YAED,eAAe,EAAE,CAAC;YAClB,eAAe,EAAE,IAAI;YAErB,OAAO,EAAE,CAAC,CAAS,EAAE,OAAY,EAAE,EAAE;gBACnC,OAAO,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,iBAAiB,EAAE,GAAG,EAAE;gBACtB,OAAO,UAAU,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,UAAU,EAAE,GAAG,EAAE;gBACf,OAAO,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,EAAE,KAAK,EAAE,OAAY,EAAE,EAAE;gBAC3B,OAAO,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,EAAE,GAAG,EAAE;gBACX,OAAO,cAAa,CAAC,CAAC;YACxB,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const requestWebWallet: (chain?: number, address?: string) => (method: string, request: any) => Promise<any>;