@swapper-finance/deposit-sdk 0.1.5 → 0.2.1

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 (47) hide show
  1. package/dist/SwapperIframe.d.ts +3 -0
  2. package/dist/SwapperIframe.d.ts.map +1 -1
  3. package/dist/SwapperIframe.js +233 -1
  4. package/dist/SwapperIframe.js.map +1 -1
  5. package/dist/SwapperModal.d.ts.map +1 -1
  6. package/dist/SwapperModal.js +175 -1
  7. package/dist/SwapperModal.js.map +1 -1
  8. package/dist/SwapperWalletProvider.d.ts +31 -0
  9. package/dist/SwapperWalletProvider.d.ts.map +1 -0
  10. package/dist/SwapperWalletProvider.js +139 -0
  11. package/dist/SwapperWalletProvider.js.map +1 -0
  12. package/dist/adapters.d.ts +64 -0
  13. package/dist/adapters.d.ts.map +1 -0
  14. package/dist/adapters.js +136 -0
  15. package/dist/adapters.js.map +1 -0
  16. package/dist/index.d.ts +5 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +7 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/{types.d.ts → types/config.d.ts} +15 -17
  21. package/dist/types/config.d.ts.map +1 -0
  22. package/dist/types/config.js +8 -0
  23. package/dist/types/config.js.map +1 -0
  24. package/dist/types/events.d.ts +6 -0
  25. package/dist/types/events.d.ts.map +1 -0
  26. package/dist/types/events.js +2 -0
  27. package/dist/types/events.js.map +1 -0
  28. package/dist/types/index.d.ts +5 -0
  29. package/dist/types/index.d.ts.map +1 -0
  30. package/dist/types/index.js +5 -0
  31. package/dist/types/index.js.map +1 -0
  32. package/dist/types/styles.d.ts +12 -0
  33. package/dist/types/styles.d.ts.map +1 -0
  34. package/dist/types/styles.js +2 -0
  35. package/dist/types/styles.js.map +1 -0
  36. package/dist/types/wallet.d.ts +75 -0
  37. package/dist/types/wallet.d.ts.map +1 -0
  38. package/dist/types/wallet.js +11 -0
  39. package/dist/types/wallet.js.map +1 -0
  40. package/package.json +2 -3
  41. package/dist/externalWallet.d.ts +0 -7
  42. package/dist/externalWallet.d.ts.map +0 -1
  43. package/dist/externalWallet.js +0 -27
  44. package/dist/externalWallet.js.map +0 -1
  45. package/dist/types.d.ts.map +0 -1
  46. package/dist/types.js +0 -1
  47. package/dist/types.js.map +0 -1
@@ -0,0 +1,139 @@
1
+ import { SWAPPER_WALLET_MSGS, } from "./types";
2
+ const DEFAULT_ORIGIN = "https://deposit.swapper.finance";
3
+ function resolveOrigin(iframe, explicit) {
4
+ if (explicit)
5
+ return explicit;
6
+ try {
7
+ return new URL(iframe.src).origin;
8
+ }
9
+ catch {
10
+ return DEFAULT_ORIGIN;
11
+ }
12
+ }
13
+ export class SwapperWalletProvider {
14
+ constructor(options) {
15
+ this.isReady = false;
16
+ this.isConnected = false;
17
+ this.iframe = options.iframe;
18
+ this.iframeOrigin = resolveOrigin(options.iframe, options.iframeOrigin);
19
+ this.onTransactionRequest = options.onTransactionRequest;
20
+ this.onChainSwitchRequest = options.onChainSwitchRequest;
21
+ this.autoConnectConfig = options.autoConnect;
22
+ this.messageListener = this.handleMessage.bind(this);
23
+ window.addEventListener("message", this.messageListener);
24
+ }
25
+ handleMessage(event) {
26
+ if (event.origin !== this.iframeOrigin)
27
+ return;
28
+ if (!event.data || typeof event.data !== "object")
29
+ return;
30
+ const { type } = event.data;
31
+ switch (type) {
32
+ case SWAPPER_WALLET_MSGS.WALLET_READY:
33
+ this.isReady = true;
34
+ if (this.autoConnectConfig) {
35
+ this.connectWallet(this.autoConnectConfig.address, this.autoConnectConfig.chainId);
36
+ }
37
+ break;
38
+ case SWAPPER_WALLET_MSGS.TX_REQUEST:
39
+ this.handleTxRequest(event.data);
40
+ break;
41
+ case SWAPPER_WALLET_MSGS.CHAIN_SWITCH_REQUEST:
42
+ this.handleChainSwitchRequest(event.data);
43
+ break;
44
+ }
45
+ }
46
+ async handleTxRequest(msg) {
47
+ try {
48
+ const result = await this.onTransactionRequest(msg.transaction);
49
+ this.postMessage({
50
+ type: SWAPPER_WALLET_MSGS.TX_RESPONSE,
51
+ requestId: msg.requestId,
52
+ hash: result.hash,
53
+ });
54
+ }
55
+ catch (err) {
56
+ this.postMessage({
57
+ type: SWAPPER_WALLET_MSGS.TX_RESPONSE,
58
+ requestId: msg.requestId,
59
+ error: err instanceof Error ? err.message : String(err),
60
+ });
61
+ }
62
+ }
63
+ async handleChainSwitchRequest(msg) {
64
+ try {
65
+ await this.onChainSwitchRequest(Number(msg.chainId));
66
+ this.chainId = Number(msg.chainId);
67
+ this.postMessage({
68
+ type: SWAPPER_WALLET_MSGS.CHAIN_SWITCH_RESPONSE,
69
+ requestId: msg.requestId,
70
+ });
71
+ this.postMessage({
72
+ type: SWAPPER_WALLET_MSGS.WALLET_CHAIN_CHANGED,
73
+ chainId: msg.chainId,
74
+ });
75
+ }
76
+ catch (err) {
77
+ this.postMessage({
78
+ type: SWAPPER_WALLET_MSGS.CHAIN_SWITCH_RESPONSE,
79
+ requestId: msg.requestId,
80
+ error: err instanceof Error ? err.message : String(err),
81
+ });
82
+ }
83
+ }
84
+ postMessage(message) {
85
+ this.iframe.contentWindow?.postMessage(message, this.iframeOrigin);
86
+ }
87
+ connectWallet(address, chainId) {
88
+ this.isConnected = true;
89
+ this.address = address;
90
+ this.chainId = chainId;
91
+ this.postMessage({
92
+ type: SWAPPER_WALLET_MSGS.WALLET_CONNECT,
93
+ address,
94
+ chainId: String(chainId),
95
+ });
96
+ }
97
+ disconnectWallet() {
98
+ this.isConnected = false;
99
+ this.address = undefined;
100
+ this.chainId = undefined;
101
+ this.postMessage({
102
+ type: SWAPPER_WALLET_MSGS.WALLET_DISCONNECT,
103
+ });
104
+ }
105
+ notifyChainChanged(chainId) {
106
+ this.chainId = chainId;
107
+ this.postMessage({
108
+ type: SWAPPER_WALLET_MSGS.WALLET_CHAIN_CHANGED,
109
+ chainId: String(chainId),
110
+ });
111
+ }
112
+ setAutoConnect(config) {
113
+ this.autoConnectConfig = config;
114
+ if (config && this.isReady) {
115
+ this.connectWallet(config.address, config.chainId);
116
+ }
117
+ }
118
+ getIsReady() {
119
+ return this.isReady;
120
+ }
121
+ getIsConnected() {
122
+ return this.isConnected;
123
+ }
124
+ getAddress() {
125
+ return this.address;
126
+ }
127
+ getChainId() {
128
+ return this.chainId;
129
+ }
130
+ destroy() {
131
+ window.removeEventListener("message", this.messageListener);
132
+ this.isReady = false;
133
+ this.isConnected = false;
134
+ this.address = undefined;
135
+ this.chainId = undefined;
136
+ this.autoConnectConfig = undefined;
137
+ }
138
+ }
139
+ //# sourceMappingURL=SwapperWalletProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapperWalletProvider.js","sourceRoot":"","sources":["../src/SwapperWalletProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { SwapperSigner, WalletTransaction } from "./types/wallet";
2
+ export interface EthersV5SignerLike {
3
+ getAddress(): Promise<string>;
4
+ getChainId(): Promise<number>;
5
+ sendTransaction(tx: Record<string, unknown>): Promise<{
6
+ hash: string;
7
+ }>;
8
+ provider?: {
9
+ send(method: string, params: unknown[]): Promise<unknown>;
10
+ };
11
+ }
12
+ export interface EthersV6SignerLike {
13
+ getAddress(): Promise<string>;
14
+ sendTransaction(tx: Record<string, unknown>): Promise<{
15
+ hash: string;
16
+ }>;
17
+ provider: {
18
+ getNetwork(): Promise<{
19
+ chainId: bigint;
20
+ }>;
21
+ send(method: string, params: unknown[]): Promise<unknown>;
22
+ };
23
+ }
24
+ export interface ViemWalletClientLike {
25
+ getAddresses(): Promise<string[]>;
26
+ getChainId(): Promise<number>;
27
+ sendTransaction(args: Record<string, unknown>): Promise<string>;
28
+ switchChain(args: {
29
+ id: number;
30
+ }): Promise<void>;
31
+ }
32
+ export type AnySigner = SwapperSigner | EthersV5SignerLike | EthersV6SignerLike | ViemWalletClientLike;
33
+ export declare class EthersV5SignerAdapter implements SwapperSigner {
34
+ private signer;
35
+ constructor(signer: EthersV5SignerLike);
36
+ getAddress(): Promise<string>;
37
+ getChainId(): Promise<number>;
38
+ sendTransaction(transaction: WalletTransaction): Promise<{
39
+ hash: string;
40
+ }>;
41
+ switchChain(chainId: number): Promise<void>;
42
+ }
43
+ export declare class EthersV6SignerAdapter implements SwapperSigner {
44
+ private signer;
45
+ constructor(signer: EthersV6SignerLike);
46
+ getAddress(): Promise<string>;
47
+ getChainId(): Promise<number>;
48
+ sendTransaction(transaction: WalletTransaction): Promise<{
49
+ hash: string;
50
+ }>;
51
+ switchChain(chainId: number): Promise<void>;
52
+ }
53
+ export declare class ViemSignerAdapter implements SwapperSigner {
54
+ private client;
55
+ constructor(client: ViemWalletClientLike);
56
+ getAddress(): Promise<string>;
57
+ getChainId(): Promise<number>;
58
+ sendTransaction(transaction: WalletTransaction): Promise<{
59
+ hash: string;
60
+ }>;
61
+ switchChain(chainId: number): Promise<void>;
62
+ }
63
+ export declare function createSwapperSigner(signer: AnySigner): SwapperSigner;
64
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ export class EthersV5SignerAdapter {
2
+ constructor(signer) {
3
+ this.signer = signer;
4
+ }
5
+ async getAddress() {
6
+ return this.signer.getAddress();
7
+ }
8
+ async getChainId() {
9
+ return this.signer.getChainId();
10
+ }
11
+ async sendTransaction(transaction) {
12
+ const txResponse = await this.signer.sendTransaction({
13
+ to: transaction.to,
14
+ data: transaction.data,
15
+ value: transaction.value,
16
+ gasLimit: transaction.gasLimit,
17
+ });
18
+ return { hash: txResponse.hash };
19
+ }
20
+ async switchChain(chainId) {
21
+ const hexChainId = "0x" + Number(chainId).toString(16);
22
+ if (this.signer.provider && "send" in this.signer.provider) {
23
+ await this.signer.provider.send("wallet_switchEthereumChain", [
24
+ { chainId: hexChainId },
25
+ ]);
26
+ }
27
+ else {
28
+ throw new Error("Provider does not support wallet_switchEthereumChain");
29
+ }
30
+ }
31
+ }
32
+ export class EthersV6SignerAdapter {
33
+ constructor(signer) {
34
+ this.signer = signer;
35
+ }
36
+ async getAddress() {
37
+ return this.signer.getAddress();
38
+ }
39
+ async getChainId() {
40
+ const network = await this.signer.provider.getNetwork();
41
+ return Number(network.chainId);
42
+ }
43
+ async sendTransaction(transaction) {
44
+ const txResponse = await this.signer.sendTransaction({
45
+ to: transaction.to,
46
+ data: transaction.data,
47
+ value: transaction.value,
48
+ gasLimit: transaction.gasLimit,
49
+ });
50
+ return { hash: txResponse.hash };
51
+ }
52
+ async switchChain(chainId) {
53
+ const hexChainId = "0x" + Number(chainId).toString(16);
54
+ await this.signer.provider.send("wallet_switchEthereumChain", [
55
+ { chainId: hexChainId },
56
+ ]);
57
+ }
58
+ }
59
+ export class ViemSignerAdapter {
60
+ constructor(client) {
61
+ this.client = client;
62
+ }
63
+ async getAddress() {
64
+ const [address] = await this.client.getAddresses();
65
+ if (!address)
66
+ throw new Error("No account found in WalletClient");
67
+ return address;
68
+ }
69
+ async getChainId() {
70
+ return this.client.getChainId();
71
+ }
72
+ async sendTransaction(transaction) {
73
+ const [account] = await this.client.getAddresses();
74
+ if (!account)
75
+ throw new Error("No account found");
76
+ const hash = await this.client.sendTransaction({
77
+ account,
78
+ to: transaction.to,
79
+ data: transaction.data,
80
+ value: transaction.value ? BigInt(transaction.value) : undefined,
81
+ gas: transaction.gasLimit ? BigInt(transaction.gasLimit) : undefined,
82
+ chain: undefined,
83
+ });
84
+ return { hash };
85
+ }
86
+ async switchChain(chainId) {
87
+ await this.client.switchChain({ id: chainId });
88
+ }
89
+ }
90
+ function isViemWalletClient(signer) {
91
+ return (typeof signer === "object" &&
92
+ signer !== null &&
93
+ typeof signer.getAddresses === "function");
94
+ }
95
+ function isEthersV6Signer(signer) {
96
+ return (typeof signer === "object" &&
97
+ signer !== null &&
98
+ typeof signer.getAddress === "function" &&
99
+ typeof signer.sendTransaction === "function" &&
100
+ signer.provider != null &&
101
+ typeof signer.provider.getNetwork === "function" &&
102
+ !("getChainId" in signer));
103
+ }
104
+ function isEthersV5Signer(signer) {
105
+ return (typeof signer === "object" &&
106
+ signer !== null &&
107
+ typeof signer.getAddress === "function" &&
108
+ typeof signer.getChainId === "function" &&
109
+ typeof signer.sendTransaction === "function" &&
110
+ !("getAddresses" in signer));
111
+ }
112
+ function isSwapperSigner(signer) {
113
+ return (typeof signer === "object" &&
114
+ signer !== null &&
115
+ typeof signer.getAddress === "function" &&
116
+ typeof signer.getChainId === "function" &&
117
+ typeof signer.sendTransaction === "function" &&
118
+ typeof signer.switchChain === "function");
119
+ }
120
+ export function createSwapperSigner(signer) {
121
+ if (isViemWalletClient(signer)) {
122
+ return new ViemSignerAdapter(signer);
123
+ }
124
+ if (isEthersV6Signer(signer)) {
125
+ return new EthersV6SignerAdapter(signer);
126
+ }
127
+ if (isEthersV5Signer(signer)) {
128
+ return new EthersV5SignerAdapter(signer);
129
+ }
130
+ if (isSwapperSigner(signer)) {
131
+ return signer;
132
+ }
133
+ throw new Error("Unsupported signer type. Expected an ethers v5 Signer, ethers v6 Signer, " +
134
+ "viem WalletClient, or an object implementing the SwapperSigner interface.");
135
+ }
136
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  export { SwapperIframe } from "./SwapperIframe";
2
2
  export { SwapperModal, openSwapperModal } from "./SwapperModal";
3
3
  export type { SwapperModalOptions } from "./SwapperModal";
4
- export { ThemeMode, ComponentStyles, SwapperStyles, SupportedDepositOption, ContractCallType, ContractCall, SwapperConfig, SwapperIframeOptions, SwapperEvent, SwapperEventHandler, } from "./types";
4
+ export { SwapperWalletProvider } from "./SwapperWalletProvider";
5
+ export { ThemeMode, ComponentStyles, SwapperStyles, SupportedDepositOption, ContractCallType, ContractCall, SwapperConfig, SwapperIframeOptions, SwapperEvent, SwapperEventHandler, SWAPPER_WALLET_MSGS, } from "./types";
6
+ export type { WalletReadyMessage, WalletConnectMessage, WalletDisconnectMessage, WalletChainChangedMessage, WalletTransaction, TxRequestMessage, TxResponseMessage, ChainSwitchRequestMessage, ChainSwitchResponseMessage, TransactionRequestHandler, ChainSwitchRequestHandler, SwapperWalletProviderOptions, SwapperSigner, } from "./types";
5
7
  export { approve, transfer, transferFrom, approveBalance, transferBalance, } from "./helpers";
8
+ export { createSwapperSigner, EthersV5SignerAdapter, EthersV6SignerAdapter, ViemSignerAdapter, } from "./adapters";
9
+ export type { AnySigner, EthersV5SignerLike, EthersV6SignerLike, ViemWalletClientLike, } from "./adapters";
6
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,OAAO,EACP,QAAQ,EACR,YAAY,EAEZ,cAAc,EACd,eAAe,GAChB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,OAAO,EACP,QAAQ,EACR,YAAY,EAEZ,cAAc,EACd,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1,7 @@
1
- export{SwapperIframe}from"./SwapperIframe";export{SwapperModal,openSwapperModal}from"./SwapperModal";export{ContractCallType}from"./types";export{approve,transfer,transferFrom,approveBalance,transferBalance}from"./helpers";
1
+ export { SwapperIframe } from "./SwapperIframe";
2
+ export { SwapperModal, openSwapperModal } from "./SwapperModal";
3
+ export { SwapperWalletProvider } from "./SwapperWalletProvider";
4
+ export { ContractCallType, SWAPPER_WALLET_MSGS, } from "./types";
5
+ export { approve, transfer, transferFrom, approveBalance, transferBalance, } from "./helpers";
6
+ export { createSwapperSigner, EthersV5SignerAdapter, EthersV6SignerAdapter, ViemSignerAdapter, } from "./adapters";
7
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAKL,gBAAgB,GAMjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,OAAO,EACP,QAAQ,EACR,YAAY,EAEZ,cAAc,EACd,eAAe,GAChB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAKL,gBAAgB,EAMhB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAgBjB,OAAO,EAEL,OAAO,EACP,QAAQ,EACR,YAAY,EAEZ,cAAc,EACd,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -1,14 +1,6 @@
1
- export type ThemeMode = "light" | "dark";
2
- export interface ComponentStyles {
3
- primaryColor?: string;
4
- primaryBorderColor?: string;
5
- accentColor?: string;
6
- primaryTextColor?: string;
7
- }
8
- export interface SwapperStyles {
9
- themeMode?: ThemeMode;
10
- componentStyles?: ComponentStyles;
11
- }
1
+ import { SwapperStyles } from "./styles";
2
+ import { TransactionRequestHandler, ChainSwitchRequestHandler } from "./wallet";
3
+ import type { AnySigner } from "../adapters";
12
4
  export type SupportedDepositOption = "transferCrypto" | "depositWithCash" | "walletDeposit";
13
5
  export declare enum ContractCallType {
14
6
  DEFAULT = 0,
@@ -32,6 +24,17 @@ export interface SwapperConfig {
32
24
  customContractCalls?: ContractCall[];
33
25
  supportedDepositOptions?: SupportedDepositOption[];
34
26
  webhookUrl?: string;
27
+ wallet?: {
28
+ signer: AnySigner;
29
+ autoConnect?: boolean;
30
+ } | {
31
+ onTransactionRequest: TransactionRequestHandler;
32
+ onChainSwitchRequest: ChainSwitchRequestHandler;
33
+ autoConnect?: {
34
+ address: string;
35
+ chainId: number;
36
+ };
37
+ };
35
38
  }
36
39
  export interface SwapperIframeOptions extends SwapperConfig {
37
40
  container?: HTMLElement | string;
@@ -45,9 +48,4 @@ export interface SwapperIframeOptions extends SwapperConfig {
45
48
  [key: string]: string | undefined;
46
49
  };
47
50
  }
48
- export interface SwapperEvent {
49
- type: string;
50
- data?: unknown;
51
- }
52
- export type SwapperEventHandler = (event: SwapperEvent) => void;
53
- //# sourceMappingURL=types.d.ts.map
51
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,MAAM,sBAAsB,GAC9B,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,CAAC;AAKpB,oBAAY,gBAAgB;IAC1B,OAAO,IAAI;IACX,kBAAkB,IAAI;IACtB,mBAAmB,IAAI;IACvB,qBAAqB,IAAI;CAC1B;AAKD,MAAM,WAAW,YAAY;IAI3B,QAAQ,EAAE,gBAAgB,CAAC;IAK3B,MAAM,EAAE,MAAM,CAAC;IAKf,KAAK,EAAE,MAAM,CAAC;IAKd,QAAQ,EAAE,MAAM,CAAC;IAKjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,aAAa;IAI5B,YAAY,EAAE,MAAM,CAAC;IAKrB,UAAU,EAAE,MAAM,CAAC;IAKnB,YAAY,EAAE,MAAM,CAAC;IAKrB,oBAAoB,EAAE,MAAM,CAAC;IAK7B,MAAM,CAAC,EAAE,aAAa,CAAC;IAKvB,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC;IAKrC,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAKnD,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,MAAM,CAAC,EACH;QACE,MAAM,EAAE,SAAS,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GACD;QACE,oBAAoB,EAAE,yBAAyB,CAAC;QAChD,oBAAoB,EAAE,yBAAyB,CAAC;QAChD,WAAW,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KACpD,CAAC;CACP;AAKD,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAKzD,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAKjC,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,gBAAgB,CAAC,EAAE;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;CACH"}
@@ -0,0 +1,8 @@
1
+ export var ContractCallType;
2
+ (function (ContractCallType) {
3
+ ContractCallType[ContractCallType["DEFAULT"] = 0] = "DEFAULT";
4
+ ContractCallType[ContractCallType["FULL_TOKEN_BALANCE"] = 1] = "FULL_TOKEN_BALANCE";
5
+ ContractCallType[ContractCallType["FULL_NATIVE_BALANCE"] = 2] = "FULL_NATIVE_BALANCE";
6
+ ContractCallType[ContractCallType["COLLECT_TOKEN_BALANCE"] = 3] = "COLLECT_TOKEN_BALANCE";
7
+ })(ContractCallType || (ContractCallType = {}));
8
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,6DAAW,CAAA;IACX,mFAAsB,CAAA;IACtB,qFAAuB,CAAA;IACvB,yFAAyB,CAAA;AAC3B,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B"}
@@ -0,0 +1,6 @@
1
+ export interface SwapperEvent {
2
+ type: string;
3
+ data?: unknown;
4
+ }
5
+ export type SwapperEventHandler = (event: SwapperEvent) => void;
6
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAKD,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from "./styles";
2
+ export * from "./config";
3
+ export * from "./events";
4
+ export * from "./wallet";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./styles";
2
+ export * from "./config";
3
+ export * from "./events";
4
+ export * from "./wallet";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type ThemeMode = "light" | "dark";
2
+ export interface ComponentStyles {
3
+ primaryColor?: string;
4
+ primaryBorderColor?: string;
5
+ accentColor?: string;
6
+ primaryTextColor?: string;
7
+ }
8
+ export interface SwapperStyles {
9
+ themeMode?: ThemeMode;
10
+ componentStyles?: ComponentStyles;
11
+ }
12
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/types/styles.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAKzC,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,MAAM,WAAW,aAAa;IAI5B,SAAS,CAAC,EAAE,SAAS,CAAC;IAKtB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/types/styles.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ export declare const SWAPPER_WALLET_MSGS: {
2
+ readonly WALLET_READY: "SWAPPER_WALLET_READY";
3
+ readonly WALLET_CONNECT: "SWAPPER_WALLET_CONNECT";
4
+ readonly WALLET_DISCONNECT: "SWAPPER_WALLET_DISCONNECT";
5
+ readonly WALLET_CHAIN_CHANGED: "SWAPPER_WALLET_CHAIN_CHANGED";
6
+ readonly TX_REQUEST: "SWAPPER_TX_REQUEST";
7
+ readonly TX_RESPONSE: "SWAPPER_TX_RESPONSE";
8
+ readonly CHAIN_SWITCH_REQUEST: "SWAPPER_CHAIN_SWITCH_REQUEST";
9
+ readonly CHAIN_SWITCH_RESPONSE: "SWAPPER_CHAIN_SWITCH_RESPONSE";
10
+ };
11
+ export interface WalletReadyMessage {
12
+ type: typeof SWAPPER_WALLET_MSGS.WALLET_READY;
13
+ }
14
+ export interface WalletConnectMessage {
15
+ type: typeof SWAPPER_WALLET_MSGS.WALLET_CONNECT;
16
+ address: string;
17
+ chainId: string;
18
+ }
19
+ export interface WalletDisconnectMessage {
20
+ type: typeof SWAPPER_WALLET_MSGS.WALLET_DISCONNECT;
21
+ }
22
+ export interface WalletChainChangedMessage {
23
+ type: typeof SWAPPER_WALLET_MSGS.WALLET_CHAIN_CHANGED;
24
+ chainId: string;
25
+ }
26
+ export interface WalletTransaction {
27
+ to: string;
28
+ data?: string;
29
+ value?: string;
30
+ gasLimit?: string;
31
+ }
32
+ export interface TxRequestMessage {
33
+ type: typeof SWAPPER_WALLET_MSGS.TX_REQUEST;
34
+ requestId: string;
35
+ transaction: WalletTransaction;
36
+ }
37
+ export interface TxResponseMessage {
38
+ type: typeof SWAPPER_WALLET_MSGS.TX_RESPONSE;
39
+ requestId: string;
40
+ hash?: string;
41
+ error?: string;
42
+ }
43
+ export interface ChainSwitchRequestMessage {
44
+ type: typeof SWAPPER_WALLET_MSGS.CHAIN_SWITCH_REQUEST;
45
+ requestId: string;
46
+ chainId: string;
47
+ }
48
+ export interface ChainSwitchResponseMessage {
49
+ type: typeof SWAPPER_WALLET_MSGS.CHAIN_SWITCH_RESPONSE;
50
+ requestId: string;
51
+ error?: string;
52
+ }
53
+ export type TransactionRequestHandler = (transaction: WalletTransaction) => Promise<{
54
+ hash: string;
55
+ }>;
56
+ export type ChainSwitchRequestHandler = (chainId: number) => Promise<void>;
57
+ export interface SwapperSigner {
58
+ getAddress(): Promise<string>;
59
+ getChainId(): Promise<number>;
60
+ sendTransaction(transaction: WalletTransaction): Promise<{
61
+ hash: string;
62
+ }>;
63
+ switchChain(chainId: number): Promise<void>;
64
+ }
65
+ export interface SwapperWalletProviderOptions {
66
+ iframe: HTMLIFrameElement;
67
+ iframeOrigin?: string;
68
+ onTransactionRequest: TransactionRequestHandler;
69
+ onChainSwitchRequest: ChainSwitchRequestHandler;
70
+ autoConnect?: {
71
+ address: string;
72
+ chainId: number;
73
+ };
74
+ }
75
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/types/wallet.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB;;;;;;;;;CAStB,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,mBAAmB,CAAC,YAAY,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,mBAAmB,CAAC,cAAc,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,mBAAmB,CAAC,iBAAiB,CAAC;CACpD;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,mBAAmB,CAAC,oBAAoB,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,mBAAmB,CAAC,UAAU,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,mBAAmB,CAAC,WAAW,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,mBAAmB,CAAC,oBAAoB,CAAC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,mBAAmB,CAAC,qBAAqB,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,WAAW,EAAE,iBAAiB,KAC3B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/B,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD"}
@@ -0,0 +1,11 @@
1
+ export const SWAPPER_WALLET_MSGS = {
2
+ WALLET_READY: "SWAPPER_WALLET_READY",
3
+ WALLET_CONNECT: "SWAPPER_WALLET_CONNECT",
4
+ WALLET_DISCONNECT: "SWAPPER_WALLET_DISCONNECT",
5
+ WALLET_CHAIN_CHANGED: "SWAPPER_WALLET_CHAIN_CHANGED",
6
+ TX_REQUEST: "SWAPPER_TX_REQUEST",
7
+ TX_RESPONSE: "SWAPPER_TX_RESPONSE",
8
+ CHAIN_SWITCH_REQUEST: "SWAPPER_CHAIN_SWITCH_REQUEST",
9
+ CHAIN_SWITCH_RESPONSE: "SWAPPER_CHAIN_SWITCH_RESPONSE",
10
+ };
11
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/types/wallet.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,sBAAsB;IACpC,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE,2BAA2B;IAC9C,oBAAoB,EAAE,8BAA8B;IACpD,UAAU,EAAE,oBAAoB;IAChC,WAAW,EAAE,qBAAqB;IAClC,oBAAoB,EAAE,8BAA8B;IACpD,qBAAqB,EAAE,+BAA+B;CAC9C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swapper-finance/deposit-sdk",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "Easy iframe embedding for Swapper deposit widget with full TypeScript support",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -12,8 +12,7 @@
12
12
  "LICENSE"
13
13
  ],
14
14
  "scripts": {
15
- "build": "tsc && npm run minify",
16
- "minify": "terser dist/SwapperIframe.js -o dist/SwapperIframe.js --compress --mangle && terser dist/SwapperModal.js -o dist/SwapperModal.js --compress --mangle && terser dist/types.js -o dist/types.js --compress --mangle && terser dist/index.js -o dist/index.js --compress --mangle",
15
+ "build": "tsc",
17
16
  "prepare": "npm run build",
18
17
  "clean": "rm -rf dist",
19
18
  "watch": "tsc --watch",