@sign-global/tokentable 0.3.0 → 0.4.0-beta.2

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 (148) hide show
  1. package/.github/workflows/beta.yml +28 -0
  2. package/dist/cjs/airdrop/AirdropClient.d.ts +46 -0
  3. package/dist/cjs/airdrop/AirdropClient.js +251 -0
  4. package/dist/cjs/airdrop/AirdropClient.js.map +1 -0
  5. package/dist/cjs/airdrop/SignatureAirdropClient.d.ts +24 -0
  6. package/dist/cjs/airdrop/SignatureAirdropClient.js +109 -0
  7. package/dist/cjs/airdrop/SignatureAirdropClient.js.map +1 -0
  8. package/dist/cjs/airdrop/common/index.d.ts +1 -1
  9. package/dist/cjs/airdrop/constants/index.d.ts +4 -0
  10. package/dist/cjs/airdrop/constants/index.js +5 -1
  11. package/dist/cjs/airdrop/constants/index.js.map +1 -1
  12. package/dist/cjs/airdrop/core/evm/contracts/AirdropSignatureClient.d.ts +15 -0
  13. package/dist/cjs/airdrop/core/evm/contracts/AirdropSignatureClient.js +51 -0
  14. package/dist/cjs/airdrop/core/evm/contracts/AirdropSignatureClient.js.map +1 -0
  15. package/dist/cjs/airdrop/core/evm/contracts/abis/FungibleTokenECDSADistributor.json +564 -0
  16. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/WalletBase.d.ts +32 -0
  17. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/WalletBase.js +71 -0
  18. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/WalletBase.js.map +1 -0
  19. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/WalletFactory.d.ts +8 -0
  20. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/WalletFactory.js +38 -0
  21. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/WalletFactory.js.map +1 -0
  22. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/index.d.ts +2 -0
  23. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/index.js +21 -0
  24. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/index.js.map +1 -0
  25. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.d.ts +26 -0
  26. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js +70 -0
  27. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js.map +1 -0
  28. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/index.d.ts +9 -0
  29. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js +35 -0
  30. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js.map +1 -0
  31. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/index.d.ts +3 -0
  32. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/index.js +14 -0
  33. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/index.js.map +1 -0
  34. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/solana/index.d.ts +27 -0
  35. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js +119 -0
  36. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js.map +1 -0
  37. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.d.ts +23 -0
  38. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js +117 -0
  39. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js.map +1 -0
  40. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/index.d.ts +9 -0
  41. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/index.js +29 -0
  42. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/providers/ton/index.js.map +1 -0
  43. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/types.d.ts +38 -0
  44. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/types.js +30 -0
  45. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/types.js.map +1 -0
  46. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/utils/index.d.ts +8 -0
  47. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/utils/index.js +41 -0
  48. package/dist/cjs/airdrop/core/useWeb3ConnectWallet/utils/index.js.map +1 -0
  49. package/dist/cjs/airdrop/index.d.ts +4 -46
  50. package/dist/cjs/airdrop/index.js +22 -241
  51. package/dist/cjs/airdrop/index.js.map +1 -1
  52. package/dist/cjs/airdrop/services/index.d.ts +15 -0
  53. package/dist/cjs/airdrop/services/index.js +16 -1
  54. package/dist/cjs/airdrop/services/index.js.map +1 -1
  55. package/dist/cjs/airdrop/types/index.d.ts +19 -4
  56. package/dist/cjs/airdrop/types/index.js +7 -1
  57. package/dist/cjs/airdrop/types/index.js.map +1 -1
  58. package/dist/cjs/index.d.ts +1 -1
  59. package/dist/cjs/index.js +7 -1
  60. package/dist/cjs/index.js.map +1 -1
  61. package/dist/cjs/utils/utils.d.ts +1 -0
  62. package/dist/cjs/utils/utils.js +2 -1
  63. package/dist/cjs/utils/utils.js.map +1 -1
  64. package/dist/esm/airdrop/AirdropClient.d.ts +46 -0
  65. package/dist/esm/airdrop/AirdropClient.js +247 -0
  66. package/dist/esm/airdrop/AirdropClient.js.map +1 -0
  67. package/dist/esm/airdrop/SignatureAirdropClient.d.ts +24 -0
  68. package/dist/esm/airdrop/SignatureAirdropClient.js +105 -0
  69. package/dist/esm/airdrop/SignatureAirdropClient.js.map +1 -0
  70. package/dist/esm/airdrop/common/index.d.ts +1 -1
  71. package/dist/esm/airdrop/constants/index.d.ts +4 -0
  72. package/dist/esm/airdrop/constants/index.js +4 -0
  73. package/dist/esm/airdrop/constants/index.js.map +1 -1
  74. package/dist/esm/airdrop/core/evm/contracts/AirdropSignatureClient.d.ts +15 -0
  75. package/dist/esm/airdrop/core/evm/contracts/AirdropSignatureClient.js +44 -0
  76. package/dist/esm/airdrop/core/evm/contracts/AirdropSignatureClient.js.map +1 -0
  77. package/dist/esm/airdrop/core/evm/contracts/abis/FungibleTokenECDSADistributor.json +564 -0
  78. package/dist/esm/airdrop/core/useWeb3ConnectWallet/WalletBase.d.ts +32 -0
  79. package/dist/esm/airdrop/core/useWeb3ConnectWallet/WalletBase.js +67 -0
  80. package/dist/esm/airdrop/core/useWeb3ConnectWallet/WalletBase.js.map +1 -0
  81. package/dist/esm/airdrop/core/useWeb3ConnectWallet/WalletFactory.d.ts +8 -0
  82. package/dist/esm/airdrop/core/useWeb3ConnectWallet/WalletFactory.js +34 -0
  83. package/dist/esm/airdrop/core/useWeb3ConnectWallet/WalletFactory.js.map +1 -0
  84. package/dist/esm/airdrop/core/useWeb3ConnectWallet/index.d.ts +2 -0
  85. package/dist/esm/airdrop/core/useWeb3ConnectWallet/index.js +3 -0
  86. package/dist/esm/airdrop/core/useWeb3ConnectWallet/index.js.map +1 -0
  87. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.d.ts +26 -0
  88. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js +65 -0
  89. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.js.map +1 -0
  90. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/index.d.ts +9 -0
  91. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js +29 -0
  92. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/evm/index.js.map +1 -0
  93. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/index.d.ts +3 -0
  94. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/index.js +5 -0
  95. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/index.js.map +1 -0
  96. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/solana/index.d.ts +27 -0
  97. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js +109 -0
  98. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/solana/index.js.map +1 -0
  99. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.d.ts +23 -0
  100. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js +112 -0
  101. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.js.map +1 -0
  102. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/index.d.ts +9 -0
  103. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/index.js +24 -0
  104. package/dist/esm/airdrop/core/useWeb3ConnectWallet/providers/ton/index.js.map +1 -0
  105. package/dist/esm/airdrop/core/useWeb3ConnectWallet/types.d.ts +38 -0
  106. package/dist/esm/airdrop/core/useWeb3ConnectWallet/types.js +27 -0
  107. package/dist/esm/airdrop/core/useWeb3ConnectWallet/types.js.map +1 -0
  108. package/dist/esm/airdrop/core/useWeb3ConnectWallet/utils/index.d.ts +8 -0
  109. package/dist/esm/airdrop/core/useWeb3ConnectWallet/utils/index.js +35 -0
  110. package/dist/esm/airdrop/core/useWeb3ConnectWallet/utils/index.js.map +1 -0
  111. package/dist/esm/airdrop/index.d.ts +4 -46
  112. package/dist/esm/airdrop/index.js +4 -239
  113. package/dist/esm/airdrop/index.js.map +1 -1
  114. package/dist/esm/airdrop/services/index.d.ts +15 -0
  115. package/dist/esm/airdrop/services/index.js +12 -0
  116. package/dist/esm/airdrop/services/index.js.map +1 -1
  117. package/dist/esm/airdrop/types/index.d.ts +19 -4
  118. package/dist/esm/airdrop/types/index.js +6 -0
  119. package/dist/esm/airdrop/types/index.js.map +1 -1
  120. package/dist/esm/index.d.ts +1 -1
  121. package/dist/esm/index.js +1 -1
  122. package/dist/esm/index.js.map +1 -1
  123. package/dist/esm/utils/utils.d.ts +1 -0
  124. package/dist/esm/utils/utils.js +1 -0
  125. package/dist/esm/utils/utils.js.map +1 -1
  126. package/package.json +15 -3
  127. package/src/airdrop/AirdropClient.ts +307 -0
  128. package/src/airdrop/SignatureAirdropClient.ts +120 -0
  129. package/src/airdrop/constants/index.ts +5 -0
  130. package/src/airdrop/core/evm/contracts/AirdropSignatureClient.ts +59 -0
  131. package/src/airdrop/core/evm/contracts/abis/FungibleTokenECDSADistributor.json +564 -0
  132. package/src/airdrop/core/useWeb3ConnectWallet/WalletBase.ts +92 -0
  133. package/src/airdrop/core/useWeb3ConnectWallet/WalletFactory.tsx +35 -0
  134. package/src/airdrop/core/useWeb3ConnectWallet/index.ts +3 -0
  135. package/src/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.ts +90 -0
  136. package/src/airdrop/core/useWeb3ConnectWallet/providers/evm/index.tsx +43 -0
  137. package/src/airdrop/core/useWeb3ConnectWallet/providers/index.ts +4 -0
  138. package/src/airdrop/core/useWeb3ConnectWallet/providers/solana/index.tsx +141 -0
  139. package/src/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.ts +149 -0
  140. package/src/airdrop/core/useWeb3ConnectWallet/providers/ton/index.tsx +41 -0
  141. package/src/airdrop/core/useWeb3ConnectWallet/types.ts +45 -0
  142. package/src/airdrop/core/useWeb3ConnectWallet/utils/index.ts +61 -0
  143. package/src/airdrop/index.ts +4 -304
  144. package/src/airdrop/services/index.ts +29 -1
  145. package/src/airdrop/types/index.ts +23 -5
  146. package/src/index.ts +9 -1
  147. package/src/utils/utils.ts +2 -0
  148. package/tsconfig.json +2 -2
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletFactory = void 0;
4
+ const evm_1 = require("./providers/evm");
5
+ const types_1 = require("./types");
6
+ const ton_1 = require("./providers/ton");
7
+ const solana_1 = require("./providers/solana");
8
+ class WalletFactory {
9
+ static instances = {};
10
+ static getWallet(type, userAddress) {
11
+ if (!this.instances[type]) {
12
+ let WalletClass;
13
+ switch (type) {
14
+ case types_1.ChainType.Evm:
15
+ WalletClass = evm_1.EvmWallet;
16
+ break;
17
+ case types_1.ChainType.Ton:
18
+ WalletClass = ton_1.TonWallet;
19
+ break;
20
+ // case ChainType.Starknet:
21
+ // WalletClass = StarknetWallet;
22
+ // break;
23
+ case types_1.ChainType.Solana:
24
+ WalletClass = solana_1.SolWallet;
25
+ break;
26
+ default:
27
+ throw new Error('Unsupported wallet type');
28
+ }
29
+ if (!WalletClass) {
30
+ throw new Error('Unsupported wallet type');
31
+ }
32
+ this.instances[type] = new WalletClass(type, userAddress);
33
+ }
34
+ return this.instances[type];
35
+ }
36
+ }
37
+ exports.WalletFactory = WalletFactory;
38
+ //# sourceMappingURL=WalletFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletFactory.js","sourceRoot":"","sources":["../../../../../src/airdrop/core/useWeb3ConnectWallet/WalletFactory.tsx"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,mCAAoC;AACpC,yCAA4C;AAC5C,+CAA+C;AAE/C,MAAsB,aAAa;IACzB,MAAM,CAAC,SAAS,GAAsD,EAAE,CAAC;IACjF,MAAM,CAAC,SAAS,CAAC,IAAe,EAAE,WAAoB;QACpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,WAAW,CAAC;YAChB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,iBAAS,CAAC,GAAG;oBAChB,WAAW,GAAG,eAAS,CAAC;oBACxB,MAAM;gBACR,KAAK,iBAAS,CAAC,GAAG;oBAChB,WAAW,GAAG,eAAS,CAAC;oBACxB,MAAM;gBACR,2BAA2B;gBAC3B,kCAAkC;gBAClC,WAAW;gBACX,KAAK,iBAAS,CAAC,MAAM;oBACnB,WAAW,GAAG,kBAAS,CAAC;oBACxB,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;;AA5BH,sCA6BC"}
@@ -0,0 +1,2 @@
1
+ export { WalletFactory } from './WalletFactory';
2
+ export * from './providers';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.WalletFactory = void 0;
18
+ var WalletFactory_1 = require("./WalletFactory");
19
+ Object.defineProperty(exports, "WalletFactory", { enumerable: true, get: function () { return WalletFactory_1.WalletFactory; } });
20
+ __exportStar(require("./providers"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/airdrop/core/useWeb3ConnectWallet/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,8CAA4B"}
@@ -0,0 +1,26 @@
1
+ import { useConnectModal } from '@rainbow-me/rainbowkit';
2
+ import { ResolvedRegister, useAccount, useWalletClient } from 'wagmi';
3
+ import { WalletBase } from '../../WalletBase';
4
+ import { EventEmitter } from 'events';
5
+ import { ISignResult } from '../../types';
6
+ export declare const eventBus: EventEmitter<[never]>;
7
+ export interface EVMStoreType {
8
+ account: ReturnType<typeof useAccount> | null;
9
+ connectModal: ReturnType<typeof useConnectModal> | undefined;
10
+ walletClient: ReturnType<typeof useWalletClient> | undefined;
11
+ config: ResolvedRegister['config'] | undefined;
12
+ counter: number;
13
+ }
14
+ export declare const evmStore: EVMStoreType;
15
+ export declare const getEventKey: () => string;
16
+ export declare class EvmWallet extends WalletBase<EVMStoreType> {
17
+ get isConnected(): boolean;
18
+ connect(): void;
19
+ disconnect(): Promise<void>;
20
+ sign(_message: string): Promise<{
21
+ message: string;
22
+ signature: `0x${string}`;
23
+ }>;
24
+ signin(statement?: string): Promise<ISignResult>;
25
+ getStore(): EVMStoreType;
26
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvmWallet = exports.getEventKey = exports.evmStore = exports.eventBus = void 0;
4
+ const WalletBase_1 = require("../../WalletBase");
5
+ const actions_1 = require("wagmi/actions");
6
+ const events_1 = require("events");
7
+ const utils_1 = require("../../utils");
8
+ exports.eventBus = new events_1.EventEmitter();
9
+ const EVM_EVENT_KEY = 'evm_signin';
10
+ exports.evmStore = {
11
+ account: null,
12
+ connectModal: undefined,
13
+ walletClient: undefined,
14
+ config: undefined,
15
+ counter: 0
16
+ };
17
+ const getEventKey = () => {
18
+ return `${EVM_EVENT_KEY}_${exports.evmStore.counter}`;
19
+ };
20
+ exports.getEventKey = getEventKey;
21
+ class EvmWallet extends WalletBase_1.WalletBase {
22
+ get isConnected() {
23
+ return !!(exports.evmStore.account?.address && exports.evmStore.account?.isConnected);
24
+ }
25
+ connect() {
26
+ exports.evmStore?.connectModal?.openConnectModal?.();
27
+ }
28
+ async disconnect() {
29
+ await (0, actions_1.disconnect)(exports.evmStore.config);
30
+ }
31
+ async sign(_message) {
32
+ const sign = await (0, actions_1.signMessage)(exports.evmStore.config, {
33
+ message: _message
34
+ });
35
+ return {
36
+ message: _message,
37
+ signature: sign
38
+ };
39
+ }
40
+ async signin(statement) {
41
+ return new Promise((resolve) => {
42
+ const signCallback = (data) => {
43
+ this.address = data.address;
44
+ this.chainId = data.chainId;
45
+ const msg = (0, utils_1.prepareSignMessage)({ statement, chainId: data.chainId, address: data.address });
46
+ const fullMessage = (0, utils_1.get4361Message)(msg);
47
+ const res = this.sign(fullMessage);
48
+ resolve(res);
49
+ };
50
+ const account = (0, actions_1.getAccount)(exports.evmStore.config);
51
+ this.provider = exports.evmStore.walletClient;
52
+ if (this.isConnected) {
53
+ signCallback(account);
54
+ return;
55
+ }
56
+ exports.evmStore.counter++;
57
+ this.connect();
58
+ const eventKey = (0, exports.getEventKey)();
59
+ exports.eventBus.once(eventKey, (data) => {
60
+ console.log('listen event key success, event key = %s, data = %j', eventKey, data);
61
+ signCallback(data);
62
+ });
63
+ });
64
+ }
65
+ getStore() {
66
+ return exports.evmStore;
67
+ }
68
+ }
69
+ exports.EvmWallet = EvmWallet;
70
+ //# sourceMappingURL=EvmWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmWallet.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/evm/EvmWallet.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAC9C,2CAAoE;AACpE,mCAAsC;AAEtC,uCAAiE;AAEpD,QAAA,QAAQ,GAAG,IAAI,qBAAY,EAAE,CAAC;AAE3C,MAAM,aAAa,GAAG,YAAY,CAAC;AAUtB,QAAA,QAAQ,GAAiB;IACpC,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,CAAC;CACX,CAAC;AAEK,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,OAAO,GAAG,aAAa,IAAI,gBAAQ,CAAC,OAAO,EAAE,CAAC;AAChD,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEF,MAAa,SAAU,SAAQ,uBAAwB;IACrD,IAAI,WAAW;QACb,OAAO,CAAC,CAAC,CAAC,gBAAQ,CAAC,OAAO,EAAE,OAAO,IAAI,gBAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACL,gBAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAA,oBAAU,EAAC,gBAAQ,CAAC,MAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAW,EAAC,gBAAQ,CAAC,MAAO,EAAE;YAC/C,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,SAAkB;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,CAAC,IAAmC,EAAE,EAAE;gBAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAQ,EAAE,CAAC,CAAC;gBAC9F,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;gBAExC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAEnC,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,gBAAQ,CAAC,MAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,gBAAQ,CAAC,YAAY,CAAC;YAEtC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,gBAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAA,mBAAW,GAAE,CAAC;YAC/B,gBAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACnF,YAAY,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO,gBAAQ,CAAC;IAClB,CAAC;CACF;AAzDD,8BAyDC"}
@@ -0,0 +1,9 @@
1
+ import '@rainbow-me/rainbowkit/styles.css';
2
+ import { ResolvedRegister } from 'wagmi';
3
+ import { ReactNode } from 'react';
4
+ export { EvmWallet } from './EvmWallet';
5
+ export declare const EVMConnector: () => null;
6
+ export declare const EvmProvider: ({ children, config }: {
7
+ children: ReactNode;
8
+ config: ResolvedRegister["config"];
9
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvmProvider = exports.EVMConnector = exports.EvmWallet = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ require("@rainbow-me/rainbowkit/styles.css");
6
+ const rainbowkit_1 = require("@rainbow-me/rainbowkit");
7
+ const wagmi_1 = require("wagmi");
8
+ const react_1 = require("react");
9
+ const EvmWallet_1 = require("./EvmWallet");
10
+ var EvmWallet_2 = require("./EvmWallet");
11
+ Object.defineProperty(exports, "EvmWallet", { enumerable: true, get: function () { return EvmWallet_2.EvmWallet; } });
12
+ const EVMConnector = () => {
13
+ const connectModal = (0, rainbowkit_1.useConnectModal)();
14
+ const walletClient = (0, wagmi_1.useWalletClient)();
15
+ const account = (0, wagmi_1.useAccount)();
16
+ EvmWallet_1.evmStore.connectModal = connectModal;
17
+ EvmWallet_1.evmStore.walletClient = walletClient;
18
+ EvmWallet_1.evmStore.account = account;
19
+ (0, react_1.useEffect)(() => {
20
+ if (account.isConnected) {
21
+ const eventKey = (0, EvmWallet_1.getEventKey)();
22
+ EvmWallet_1.eventBus.emit(eventKey, account);
23
+ }
24
+ }, [account]);
25
+ return null;
26
+ };
27
+ exports.EVMConnector = EVMConnector;
28
+ const EvmProvider = ({ children, config }) => {
29
+ EvmWallet_1.evmStore.config = config;
30
+ return ((0, jsx_runtime_1.jsx)(wagmi_1.WagmiProvider, { config: config, children: (0, jsx_runtime_1.jsxs)(rainbowkit_1.RainbowKitProvider, { theme: (0, rainbowkit_1.lightTheme)({
31
+ accentColor: '#DD8D58'
32
+ }), children: [children, (0, jsx_runtime_1.jsx)(exports.EVMConnector, {})] }) }));
33
+ };
34
+ exports.EvmProvider = EvmProvider;
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/evm/index.tsx"],"names":[],"mappings":";;;;AAAA,6CAA2C;AAC3C,uDAAyF;AACzF,iCAAqF;AACrF,iCAA6C;AAE7C,2CAA8D;AAE9D,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAEX,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,YAAY,GAAG,IAAA,4BAAe,GAAE,CAAC;IACvC,MAAM,YAAY,GAAG,IAAA,uBAAe,GAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;IAE7B,oBAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,oBAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,oBAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAE3B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAA,uBAAW,GAAE,CAAC;YAC/B,oBAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB;AAEK,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAA+D,EAAE,EAAE;IAC/G,oBAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CACL,uBAAC,qBAAa,IAAC,MAAM,EAAE,MAAM,YAC3B,wBAAC,+BAAkB,IACjB,KAAK,EAAE,IAAA,uBAAU,EAAC;gBAChB,WAAW,EAAE,SAAS;aACvB,CAAC,aAED,QAAQ,EACT,uBAAC,oBAAY,KAAG,IACG,GACP,CACjB,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,WAAW,eActB"}
@@ -0,0 +1,3 @@
1
+ export { EvmWallet, EvmProvider } from './evm';
2
+ export { SolWallet, SolanaProvider } from './solana';
3
+ export { TonWallet, TonProvider } from './ton';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TonProvider = exports.TonWallet = exports.SolanaProvider = exports.SolWallet = exports.EvmProvider = exports.EvmWallet = void 0;
4
+ var evm_1 = require("./evm");
5
+ Object.defineProperty(exports, "EvmWallet", { enumerable: true, get: function () { return evm_1.EvmWallet; } });
6
+ Object.defineProperty(exports, "EvmProvider", { enumerable: true, get: function () { return evm_1.EvmProvider; } });
7
+ var solana_1 = require("./solana");
8
+ Object.defineProperty(exports, "SolWallet", { enumerable: true, get: function () { return solana_1.SolWallet; } });
9
+ Object.defineProperty(exports, "SolanaProvider", { enumerable: true, get: function () { return solana_1.SolanaProvider; } });
10
+ // export { StarknetWallet } from './starknet';
11
+ var ton_1 = require("./ton");
12
+ Object.defineProperty(exports, "TonWallet", { enumerable: true, get: function () { return ton_1.TonWallet; } });
13
+ Object.defineProperty(exports, "TonProvider", { enumerable: true, get: function () { return ton_1.TonProvider; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/index.ts"],"names":[],"mappings":";;;AAAA,6BAA+C;AAAtC,gGAAA,SAAS,OAAA;AAAE,kGAAA,WAAW,OAAA;AAC/B,mCAAqD;AAA5C,mGAAA,SAAS,OAAA;AAAE,wGAAA,cAAc,OAAA;AAClC,+CAA+C;AAC/C,6BAA+C;AAAtC,gGAAA,SAAS,OAAA;AAAE,kGAAA,WAAW,OAAA"}
@@ -0,0 +1,27 @@
1
+ import { ReactNode } from 'react';
2
+ import { WalletBase } from '../../WalletBase';
3
+ import { useWalletModal } from '@solana/wallet-adapter-react-ui';
4
+ import '@solana/wallet-adapter-react-ui/styles.css';
5
+ import { ISignResult } from '../../types';
6
+ import { useWallet } from '@solana/wallet-adapter-react';
7
+ import EventEmitter from 'events';
8
+ interface SolStoreType {
9
+ connectModal: ReturnType<typeof useWalletModal> | null;
10
+ account: ReturnType<typeof useWallet> | null;
11
+ counter: number;
12
+ }
13
+ export declare const eventBus: EventEmitter<[never]>;
14
+ export declare const getEventKey: () => string;
15
+ export declare class SolWallet extends WalletBase<SolStoreType> {
16
+ getStore(): SolStoreType;
17
+ get isConnected(): boolean;
18
+ connect(): void;
19
+ disconnect(): void;
20
+ sign(message: string): Promise<ISignResult>;
21
+ signin(statement?: string): Promise<ISignResult>;
22
+ }
23
+ export declare const SolConnector: () => null;
24
+ export declare const SolanaProvider: ({ children }: {
25
+ children: ReactNode;
26
+ }) => import("react/jsx-runtime").JSX.Element;
27
+ export {};
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SolanaProvider = exports.SolConnector = exports.SolWallet = exports.getEventKey = exports.eventBus = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const WalletBase_1 = require("../../WalletBase");
10
+ const wallet_adapter_react_ui_1 = require("@solana/wallet-adapter-react-ui");
11
+ require("@solana/wallet-adapter-react-ui/styles.css");
12
+ const wallet_adapter_react_1 = require("@solana/wallet-adapter-react");
13
+ const wallet_adapter_wallets_1 = require("@solana/wallet-adapter-wallets");
14
+ const web3_js_1 = require("@solana/web3.js");
15
+ const bs58_1 = __importDefault(require("bs58"));
16
+ const utils_1 = require("../../utils");
17
+ const events_1 = __importDefault(require("events"));
18
+ const solStore = {
19
+ connectModal: null,
20
+ account: null,
21
+ counter: 0
22
+ };
23
+ exports.eventBus = new events_1.default();
24
+ const SOL_EVENT_KEY = 'sol_signin';
25
+ const getEventKey = () => {
26
+ return `${SOL_EVENT_KEY}_${solStore.counter}`;
27
+ };
28
+ exports.getEventKey = getEventKey;
29
+ class SolWallet extends WalletBase_1.WalletBase {
30
+ getStore() {
31
+ return solStore;
32
+ }
33
+ get isConnected() {
34
+ return !!solStore.account?.connected;
35
+ }
36
+ connect() {
37
+ solStore.connectModal?.setVisible(true);
38
+ }
39
+ disconnect() {
40
+ solStore.account?.disconnect();
41
+ }
42
+ async sign(message) {
43
+ try {
44
+ const provider = solStore.account;
45
+ const encodedMessage = new TextEncoder().encode(message);
46
+ const signedMessage = await provider.signMessage?.(encodedMessage);
47
+ console.log(signedMessage, 'signedMessage');
48
+ return {
49
+ message,
50
+ signature: bs58_1.default.encode(signedMessage)
51
+ };
52
+ }
53
+ catch (error) {
54
+ console.error(error);
55
+ throw error;
56
+ }
57
+ }
58
+ signin(statement) {
59
+ return new Promise((resolve) => {
60
+ const signCallback = (data) => {
61
+ this.publicKey = data.publicKey?.toString();
62
+ this.address = this.publicKey;
63
+ this.chainId = 1;
64
+ const msg = (0, utils_1.prepareSignMessage)({ statement, chainId: '1', address: this.address });
65
+ const fullMessage = (0, utils_1.get4361Message)(msg);
66
+ const res = this.sign(fullMessage);
67
+ resolve(res);
68
+ };
69
+ // const account = getAccount(evmStore.config!);
70
+ // this.provider = evmStore.walletClient;
71
+ if (this.isConnected) {
72
+ console.log(solStore);
73
+ signCallback(solStore.account);
74
+ return;
75
+ }
76
+ solStore.counter++;
77
+ this.connect();
78
+ const eventKey = (0, exports.getEventKey)();
79
+ console.log(eventKey);
80
+ exports.eventBus.once(eventKey, (data) => {
81
+ console.log('listen event key success, event key = %s, data = %j', eventKey, data);
82
+ signCallback(data);
83
+ });
84
+ });
85
+ }
86
+ }
87
+ exports.SolWallet = SolWallet;
88
+ const SolConnector = () => {
89
+ const walletModal = (0, wallet_adapter_react_ui_1.useWalletModal)();
90
+ const wallet = (0, wallet_adapter_react_1.useWallet)();
91
+ (0, react_1.useEffect)(() => {
92
+ console.log(wallet, 'wallet');
93
+ if (wallet.wallet) {
94
+ if (wallet.connected) {
95
+ const eventKey = (0, exports.getEventKey)();
96
+ exports.eventBus.emit(eventKey, wallet);
97
+ }
98
+ else {
99
+ wallet.connect().catch((error) => {
100
+ console.error(error);
101
+ });
102
+ }
103
+ }
104
+ }, [wallet]);
105
+ solStore.connectModal = walletModal;
106
+ solStore.account = wallet;
107
+ return null;
108
+ };
109
+ exports.SolConnector = SolConnector;
110
+ const SolanaProvider = ({ children }) => {
111
+ const endpoint = (0, web3_js_1.clusterApiUrl)('mainnet-beta');
112
+ const wallets = (0, react_1.useMemo)(() => [new wallet_adapter_wallets_1.PhantomWalletAdapter()], []);
113
+ const onError = (0, react_1.useCallback)((error) => {
114
+ console.error(error);
115
+ }, []);
116
+ return ((0, jsx_runtime_1.jsx)(wallet_adapter_react_1.ConnectionProvider, { endpoint: endpoint, children: (0, jsx_runtime_1.jsx)(wallet_adapter_react_1.WalletProvider, { wallets: wallets, onError: onError, children: (0, jsx_runtime_1.jsxs)(wallet_adapter_react_ui_1.WalletModalProvider, { children: [(0, jsx_runtime_1.jsx)(exports.SolConnector, {}), children] }) }) }));
117
+ };
118
+ exports.SolanaProvider = SolanaProvider;
119
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/solana/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { useTonConnectUI, useTonWallet, useTonConnectModal, TonConnectUIProviderProps } from '@tonconnect/ui-react';
2
+ import { WalletBase } from '../../WalletBase';
3
+ import { ISignResult } from '../../types';
4
+ import { EventEmitter } from 'events';
5
+ export interface TonStoreType {
6
+ account: ReturnType<typeof useTonWallet> | null;
7
+ connectModal: ReturnType<typeof useTonConnectModal> | undefined;
8
+ walletClient: ReturnType<typeof useTonConnectUI>[0] | undefined;
9
+ config: TonConnectUIProviderProps | undefined;
10
+ counter: number;
11
+ }
12
+ export declare const tonStore: TonStoreType;
13
+ export declare const eventBus: EventEmitter<[never]>;
14
+ export declare const getEventKey: () => string;
15
+ export declare class TonWallet extends WalletBase<TonStoreType> {
16
+ get isConnected(): boolean;
17
+ connect(): void;
18
+ disconnect(): Promise<void>;
19
+ private getPublicKey;
20
+ sign(originMsg: string): Promise<ISignResult>;
21
+ signin(statement?: string): Promise<ISignResult>;
22
+ getStore(): TonStoreType;
23
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TonWallet = exports.getEventKey = exports.eventBus = exports.tonStore = void 0;
4
+ const WalletBase_1 = require("../../WalletBase");
5
+ const utils_1 = require("../../utils");
6
+ const utils_web_1 = require("@ethsign/utils-web");
7
+ const ui_1 = require("@tonconnect/ui");
8
+ const events_1 = require("events");
9
+ const ton_core_1 = require("ton-core");
10
+ exports.tonStore = {
11
+ account: null,
12
+ connectModal: undefined,
13
+ walletClient: undefined,
14
+ config: undefined,
15
+ counter: 0
16
+ };
17
+ exports.eventBus = new events_1.EventEmitter();
18
+ const getEventKey = () => {
19
+ return `ton_sign_${exports.tonStore.counter}`;
20
+ };
21
+ exports.getEventKey = getEventKey;
22
+ class TonWallet extends WalletBase_1.WalletBase {
23
+ get isConnected() {
24
+ return !!exports.tonStore.account?.account;
25
+ }
26
+ connect() {
27
+ exports.tonStore?.connectModal?.open?.();
28
+ }
29
+ async disconnect() {
30
+ await exports.tonStore.walletClient?.disconnect();
31
+ }
32
+ getPublicKey(stateInit) {
33
+ const state_init = ton_core_1.Cell.fromBase64(stateInit);
34
+ const bits = state_init.refs[1].bits;
35
+ const pubKey = bits.toString().substring(16, 80).toLowerCase();
36
+ return pubKey;
37
+ }
38
+ async sign(originMsg) {
39
+ const message = await (0, utils_web_1.hashSha256)(originMsg);
40
+ const tonConnectUI = exports.tonStore.walletClient;
41
+ // const walletInfo = tonConnectUI?.wallet;
42
+ const authType = '';
43
+ // if (walletInfo?.jsBridgeKey && walletInfo?.openMethod !== 'qrcode') {
44
+ // authType = walletInfo.jsBridgeKey;
45
+ // }
46
+ console.log(this.isConnected, tonConnectUI, 'connected');
47
+ if (this.isConnected) {
48
+ await tonConnectUI.disconnect();
49
+ }
50
+ exports.tonStore.counter++;
51
+ if (authType) {
52
+ const wallets = await tonConnectUI.getWallets();
53
+ const currentWallet = wallets.find((wallet) => [wallet.name, wallet.appName].includes(authType));
54
+ console.log(wallets, currentWallet, 'ww');
55
+ const link = tonConnectUI.connector.connect({
56
+ bridgeUrl: currentWallet.bridgeUrl,
57
+ universalLink: currentWallet.universalLink
58
+ }, {
59
+ tonProof: message
60
+ });
61
+ // tonspace在tg内部打开
62
+ window.open(link);
63
+ }
64
+ else {
65
+ console.log('first time, call setConnectRequestParameters');
66
+ tonConnectUI.setConnectRequestParameters({
67
+ state: 'ready',
68
+ value: {
69
+ tonProof: message // 不能有空格,特殊字符
70
+ }
71
+ });
72
+ this.connect();
73
+ }
74
+ const connectedWallet = await new Promise((resolve) => {
75
+ const eventKey = (0, exports.getEventKey)();
76
+ console.log('start listen event key, key = %s', eventKey);
77
+ exports.eventBus.once(eventKey, (data) => {
78
+ console.log('listen event key success, event key = %s, data = %j', eventKey, data);
79
+ resolve(data);
80
+ });
81
+ });
82
+ this.provider = exports.tonStore.walletClient;
83
+ const proof = connectedWallet.connectItems?.tonProof?.proof;
84
+ this.publicKey = connectedWallet.account.publicKey || this.getPublicKey(connectedWallet.account.walletStateInit); //使用walletStateInit,publicKey由后端计算
85
+ this.address = (0, ui_1.toUserFriendlyAddress)(connectedWallet.account.address);
86
+ this.chainId = connectedWallet.account.chain;
87
+ this.network = this.chainId === ui_1.CHAIN.MAINNET ? 'TON_MAINNET' : 'TON_TESTNET';
88
+ const fullMessage = JSON.stringify({
89
+ timestamp: proof.timestamp,
90
+ payload: proof.payload,
91
+ domain: proof.domain
92
+ });
93
+ const signature = proof.signature;
94
+ return {
95
+ message: JSON.stringify({
96
+ fullMessage,
97
+ message: originMsg
98
+ }),
99
+ signature,
100
+ tonProof: message
101
+ };
102
+ }
103
+ async signin(statement) {
104
+ const fullMessage = {
105
+ statement: statement || 'Welcome to EthSign',
106
+ issuedAt: new Date().toISOString(),
107
+ nonce: (0, utils_1.getCustomNaNoId)()
108
+ };
109
+ const signRes = await this.sign(JSON.stringify(fullMessage, null, ' '));
110
+ return signRes;
111
+ }
112
+ getStore() {
113
+ return exports.tonStore;
114
+ }
115
+ }
116
+ exports.TonWallet = TonWallet;
117
+ //# sourceMappingURL=TonWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TonWallet.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/ton/TonWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { TonConnectUIProviderProps } from '@tonconnect/ui-react';
3
+ import { TonWallet } from './TonWallet';
4
+ export { TonWallet };
5
+ export declare const TonConnector: () => null;
6
+ export declare const TonProvider: ({ children, config }: {
7
+ children: ReactNode;
8
+ config: TonConnectUIProviderProps;
9
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TonProvider = exports.TonConnector = exports.TonWallet = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const ui_react_1 = require("@tonconnect/ui-react");
7
+ const TonWallet_1 = require("./TonWallet");
8
+ Object.defineProperty(exports, "TonWallet", { enumerable: true, get: function () { return TonWallet_1.TonWallet; } });
9
+ const TonConnector = () => {
10
+ const wallet = (0, ui_react_1.useTonWallet)();
11
+ const [tonConnectUI] = (0, ui_react_1.useTonConnectUI)();
12
+ const connectModal = (0, ui_react_1.useTonConnectModal)();
13
+ TonWallet_1.tonStore.connectModal = connectModal;
14
+ TonWallet_1.tonStore.walletClient = tonConnectUI;
15
+ TonWallet_1.tonStore.account = wallet;
16
+ (0, react_1.useEffect)(() => {
17
+ if (wallet) {
18
+ TonWallet_1.eventBus.emit((0, TonWallet_1.getEventKey)(), wallet);
19
+ }
20
+ }, [wallet]);
21
+ return null;
22
+ };
23
+ exports.TonConnector = TonConnector;
24
+ const TonProvider = ({ children, config }) => {
25
+ TonWallet_1.tonStore.config = config;
26
+ return ((0, jsx_runtime_1.jsxs)(ui_react_1.TonConnectUIProvider, { ...config, children: [children, (0, jsx_runtime_1.jsx)(exports.TonConnector, {})] }));
27
+ };
28
+ exports.TonProvider = TonProvider;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/airdrop/core/useWeb3ConnectWallet/providers/ton/index.tsx"],"names":[],"mappings":";;;;AAAA,iCAA6C;AAC7C,mDAM8B;AAE9B,2CAAyE;AAEhE,0FAFiC,qBAAS,OAEjC;AAEX,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,MAAM,GAAG,IAAA,uBAAY,GAAE,CAAC;IAC9B,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,0BAAe,GAAE,CAAC;IACzC,MAAM,YAAY,GAAG,IAAA,6BAAkB,GAAE,CAAC;IAE1C,oBAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,oBAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,oBAAQ,CAAC,OAAO,GAAG,MAAM,CAAC;IAE1B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,oBAAQ,CAAC,IAAI,CAAC,IAAA,uBAAW,GAAE,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhBW,QAAA,YAAY,gBAgBvB;AAEK,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAA8D,EAAE,EAAE;IAC9G,oBAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAEzB,OAAO,CACL,wBAAC,+BAAoB,OAAK,MAAM,aAC7B,QAAQ,EACT,uBAAC,oBAAY,KAAG,IACK,CACxB,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,WAAW,eAStB"}
@@ -0,0 +1,38 @@
1
+ export declare enum WalletType {
2
+ EVM = "evm",
3
+ BITCOIN = "bitcoin",
4
+ SOLANA = "solana",
5
+ TON = "ton",
6
+ APTOS = "aptos",
7
+ PARTICLE = "particle-evm",
8
+ OKX = "okx",
9
+ Cyber = "cyber",
10
+ StarkNet = "starknet",
11
+ WALLETCONNECT = "walletconnect",
12
+ Cardano = "cardano"
13
+ }
14
+ export declare enum ChainType {
15
+ Evm = "evm",
16
+ Ton = "ton",
17
+ Solana = "solana"
18
+ }
19
+ export declare enum ExtendedWalletType {
20
+ UNISAT = "unisat",
21
+ OKXBTC = "okx_btc"
22
+ }
23
+ export type ProviderType = WalletType | ExtendedWalletType;
24
+ export type ISignResult = {
25
+ message: string;
26
+ signature: string;
27
+ [key: string]: any;
28
+ } | undefined;
29
+ export interface ISignInMessage {
30
+ domain?: string;
31
+ version?: string;
32
+ nonce: string;
33
+ issuedAt: string;
34
+ statement: string;
35
+ chainId?: number | string;
36
+ uri?: string;
37
+ address?: string;
38
+ }