@idosgames/wallet 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge-BEEkIeZj.d.cts +70 -0
- package/dist/bridge-BzZmMMxK.d.ts +70 -0
- package/dist/chains-DMjdV7VV.d.cts +120 -0
- package/dist/chains-DMjdV7VV.d.ts +120 -0
- package/dist/chunk-ACZSIOFR.js +1 -0
- package/dist/chunk-NDNNLWPS.js +1 -0
- package/dist/chunk-XFMDEOHO.js +2 -0
- package/dist/chunk-ZL42KPPC.js +1 -0
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +1 -1
- package/dist/react/index.cjs +2 -1
- package/dist/react/index.d.cts +21 -62
- package/dist/react/index.d.ts +21 -62
- package/dist/react/index.js +1 -1
- package/dist/react/solanaIndex.cjs +2 -0
- package/dist/react/solanaIndex.d.cts +93 -0
- package/dist/react/solanaIndex.d.ts +93 -0
- package/dist/react/solanaIndex.js +1 -0
- package/dist/{bridge-BCxf6AHE.d.cts → withdraw-DTHssYc9.d.ts} +3 -124
- package/dist/{bridge-BCxf6AHE.d.ts → withdraw-DgTjKpSf.d.cts} +3 -124
- package/package.json +9 -7
- package/dist/chunk-YV6AQWSH.js +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { SolanaWithdrawalSignature, IDosGamesClient, BlockchainNetworkDefinition, DepositTokenResponse, TokenWithdrawalResponse } from '@idosgames/core';
|
|
2
|
+
import { b as BridgeResult } from './chains-DMjdV7VV.cjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The on-chain half of the Solana bridge, delegated to the title's own program integration.
|
|
6
|
+
*
|
|
7
|
+
* Unlike EVM — where the RewardPool ABI is fully known and viem builds the calls — the Solana
|
|
8
|
+
* RewardPool is a custom program whose instruction/account layout (DepositSpl, withdraw_spl + the
|
|
9
|
+
* ed25519 sig-verify instruction) lives in that program's IDL, NOT in this client SDK. So the
|
|
10
|
+
* bridge asks you to provide these two calls, built with your program's IDL / `@solana/web3.js`
|
|
11
|
+
* (or Anchor) against the connected wallet from `@solana/wallet-adapter-react`. The SDK-side
|
|
12
|
+
* orchestration (request → submit → confirm, deposit → report) is identical to EVM and handled by
|
|
13
|
+
* {@link depositTokenSolana} / {@link withdrawTokenSolana}.
|
|
14
|
+
*/
|
|
15
|
+
interface SolanaProgramAdapter {
|
|
16
|
+
/**
|
|
17
|
+
* Builds and sends the on-chain `DepositSpl` transfer of `amountRaw` base units of `mint` into
|
|
18
|
+
* the platform program pool, embedding the identifiers the backend reads back
|
|
19
|
+
* (`GetDepositSplCallDetailsBySignature` verifies `userID`). Returns the transaction signature.
|
|
20
|
+
*/
|
|
21
|
+
depositSpl(params: {
|
|
22
|
+
mint: string;
|
|
23
|
+
amountRaw: bigint;
|
|
24
|
+
userID: string;
|
|
25
|
+
titleID: string;
|
|
26
|
+
category: string;
|
|
27
|
+
}): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Builds and sends the on-chain `withdraw_spl` transaction from a server-issued signature
|
|
30
|
+
* payload — including the ed25519 sig-verify instruction at `SigIxIndex` carrying
|
|
31
|
+
* `Ed25519PublicKey`/`Ed25519Message`/`SignatureHex`. Returns the transaction signature.
|
|
32
|
+
*/
|
|
33
|
+
submitWithdrawal(sig: SolanaWithdrawalSignature): Promise<string>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface DepositTokenSolanaParams {
|
|
37
|
+
client: IDosGamesClient;
|
|
38
|
+
adapter: SolanaProgramAdapter;
|
|
39
|
+
network: BlockchainNetworkDefinition;
|
|
40
|
+
/** SPL mint of the token being deposited. */
|
|
41
|
+
mint: string;
|
|
42
|
+
/** Raw base-unit amount (already scaled by the mint's decimals). */
|
|
43
|
+
amountRaw: bigint;
|
|
44
|
+
titleID: string;
|
|
45
|
+
category?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Full Solana token-deposit flow: your {@link SolanaProgramAdapter.depositSpl} sends the on-chain
|
|
49
|
+
* transfer, then `client.blockchain.depositToken` reports the signature so the backend verifies
|
|
50
|
+
* and credits the in-game balance. Mirrors {@link depositTokenEvm}.
|
|
51
|
+
*/
|
|
52
|
+
declare function depositTokenSolana(params: DepositTokenSolanaParams): Promise<BridgeResult<DepositTokenResponse>>;
|
|
53
|
+
interface WithdrawTokenSolanaParams {
|
|
54
|
+
client: IDosGamesClient;
|
|
55
|
+
adapter: SolanaProgramAdapter;
|
|
56
|
+
currencyID: string;
|
|
57
|
+
networkID: string;
|
|
58
|
+
walletAddress: string;
|
|
59
|
+
amount: string;
|
|
60
|
+
category?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Full Solana token-withdrawal flow: `requestTokenWithdrawal` → your
|
|
64
|
+
* {@link SolanaProgramAdapter.submitWithdrawal} sends the `withdraw_spl` tx → `confirmWithdrawal`.
|
|
65
|
+
* Same recovery semantics as EVM: a post-request failure carries `titleTransactionID` (already
|
|
66
|
+
* debited — retry, don't re-request). Mirrors {@link withdrawTokenEvm}.
|
|
67
|
+
*/
|
|
68
|
+
declare function withdrawTokenSolana(params: WithdrawTokenSolanaParams): Promise<BridgeResult<TokenWithdrawalResponse>>;
|
|
69
|
+
|
|
70
|
+
export { type DepositTokenSolanaParams as D, type SolanaProgramAdapter as S, type WithdrawTokenSolanaParams as W, depositTokenSolana as d, withdrawTokenSolana as w };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { SolanaWithdrawalSignature, IDosGamesClient, BlockchainNetworkDefinition, DepositTokenResponse, TokenWithdrawalResponse } from '@idosgames/core';
|
|
2
|
+
import { b as BridgeResult } from './chains-DMjdV7VV.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The on-chain half of the Solana bridge, delegated to the title's own program integration.
|
|
6
|
+
*
|
|
7
|
+
* Unlike EVM — where the RewardPool ABI is fully known and viem builds the calls — the Solana
|
|
8
|
+
* RewardPool is a custom program whose instruction/account layout (DepositSpl, withdraw_spl + the
|
|
9
|
+
* ed25519 sig-verify instruction) lives in that program's IDL, NOT in this client SDK. So the
|
|
10
|
+
* bridge asks you to provide these two calls, built with your program's IDL / `@solana/web3.js`
|
|
11
|
+
* (or Anchor) against the connected wallet from `@solana/wallet-adapter-react`. The SDK-side
|
|
12
|
+
* orchestration (request → submit → confirm, deposit → report) is identical to EVM and handled by
|
|
13
|
+
* {@link depositTokenSolana} / {@link withdrawTokenSolana}.
|
|
14
|
+
*/
|
|
15
|
+
interface SolanaProgramAdapter {
|
|
16
|
+
/**
|
|
17
|
+
* Builds and sends the on-chain `DepositSpl` transfer of `amountRaw` base units of `mint` into
|
|
18
|
+
* the platform program pool, embedding the identifiers the backend reads back
|
|
19
|
+
* (`GetDepositSplCallDetailsBySignature` verifies `userID`). Returns the transaction signature.
|
|
20
|
+
*/
|
|
21
|
+
depositSpl(params: {
|
|
22
|
+
mint: string;
|
|
23
|
+
amountRaw: bigint;
|
|
24
|
+
userID: string;
|
|
25
|
+
titleID: string;
|
|
26
|
+
category: string;
|
|
27
|
+
}): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Builds and sends the on-chain `withdraw_spl` transaction from a server-issued signature
|
|
30
|
+
* payload — including the ed25519 sig-verify instruction at `SigIxIndex` carrying
|
|
31
|
+
* `Ed25519PublicKey`/`Ed25519Message`/`SignatureHex`. Returns the transaction signature.
|
|
32
|
+
*/
|
|
33
|
+
submitWithdrawal(sig: SolanaWithdrawalSignature): Promise<string>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface DepositTokenSolanaParams {
|
|
37
|
+
client: IDosGamesClient;
|
|
38
|
+
adapter: SolanaProgramAdapter;
|
|
39
|
+
network: BlockchainNetworkDefinition;
|
|
40
|
+
/** SPL mint of the token being deposited. */
|
|
41
|
+
mint: string;
|
|
42
|
+
/** Raw base-unit amount (already scaled by the mint's decimals). */
|
|
43
|
+
amountRaw: bigint;
|
|
44
|
+
titleID: string;
|
|
45
|
+
category?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Full Solana token-deposit flow: your {@link SolanaProgramAdapter.depositSpl} sends the on-chain
|
|
49
|
+
* transfer, then `client.blockchain.depositToken` reports the signature so the backend verifies
|
|
50
|
+
* and credits the in-game balance. Mirrors {@link depositTokenEvm}.
|
|
51
|
+
*/
|
|
52
|
+
declare function depositTokenSolana(params: DepositTokenSolanaParams): Promise<BridgeResult<DepositTokenResponse>>;
|
|
53
|
+
interface WithdrawTokenSolanaParams {
|
|
54
|
+
client: IDosGamesClient;
|
|
55
|
+
adapter: SolanaProgramAdapter;
|
|
56
|
+
currencyID: string;
|
|
57
|
+
networkID: string;
|
|
58
|
+
walletAddress: string;
|
|
59
|
+
amount: string;
|
|
60
|
+
category?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Full Solana token-withdrawal flow: `requestTokenWithdrawal` → your
|
|
64
|
+
* {@link SolanaProgramAdapter.submitWithdrawal} sends the `withdraw_spl` tx → `confirmWithdrawal`.
|
|
65
|
+
* Same recovery semantics as EVM: a post-request failure carries `titleTransactionID` (already
|
|
66
|
+
* debited — retry, don't re-request). Mirrors {@link withdrawTokenEvm}.
|
|
67
|
+
*/
|
|
68
|
+
declare function withdrawTokenSolana(params: WithdrawTokenSolanaParams): Promise<BridgeResult<TokenWithdrawalResponse>>;
|
|
69
|
+
|
|
70
|
+
export { type DepositTokenSolanaParams as D, type SolanaProgramAdapter as S, type WithdrawTokenSolanaParams as W, depositTokenSolana as d, withdrawTokenSolana as w };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Chain } from 'viem';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Where a multi-step bridge flow stopped. Deposits run approve → deposit-onchain → report;
|
|
5
|
+
* withdrawals run request → withdraw-onchain → confirm. Knowing the stage lets a UI recover
|
|
6
|
+
* correctly (e.g. a failed `withdraw-onchain` after a successful `request` means the asset is
|
|
7
|
+
* already debited — offer `retryWithdrawal`, never a fresh request that would debit twice).
|
|
8
|
+
*/
|
|
9
|
+
type BridgeStage = "approve" | "deposit-onchain" | "report" | "request" | "withdraw-onchain" | "confirm";
|
|
10
|
+
interface BridgeSuccess<T> {
|
|
11
|
+
ok: true;
|
|
12
|
+
/** Hash/signature of the on-chain transaction that moved the asset (EVM hex or Solana base58). */
|
|
13
|
+
onChainTxHash: string;
|
|
14
|
+
/** The core SDK response that finalized the operation server-side. */
|
|
15
|
+
data: T;
|
|
16
|
+
}
|
|
17
|
+
interface BridgeFailure {
|
|
18
|
+
ok: false;
|
|
19
|
+
stage: BridgeStage;
|
|
20
|
+
error: string;
|
|
21
|
+
/**
|
|
22
|
+
* Set when the asset-moving on-chain tx already landed but a later step failed — the caller can
|
|
23
|
+
* finish the flow with this hash (e.g. re-call `confirmWithdrawal`) instead of restarting.
|
|
24
|
+
*/
|
|
25
|
+
onChainTxHash?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Set for a withdrawal whose server-side `request` already succeeded (and already debited the
|
|
28
|
+
* player) but whose on-chain/confirm leg failed. Recover with `client.blockchain.retryWithdrawal`
|
|
29
|
+
* (before ExpiresAt) or `confirmWithdrawal` (if the tx actually landed) — NOT a fresh request.
|
|
30
|
+
*/
|
|
31
|
+
titleTransactionID?: string;
|
|
32
|
+
}
|
|
33
|
+
type BridgeResult<T> = BridgeSuccess<T> | BridgeFailure;
|
|
34
|
+
/** Normalizes a thrown value (viem error, plain Error, or unknown) into a short human string. */
|
|
35
|
+
declare function toErrorMessage(e: unknown): string;
|
|
36
|
+
declare function bridgeFail(stage: BridgeStage, error: string, extra?: {
|
|
37
|
+
onChainTxHash?: string;
|
|
38
|
+
titleTransactionID?: string;
|
|
39
|
+
}): BridgeFailure;
|
|
40
|
+
/**
|
|
41
|
+
* Where a wallet-login flow stopped. `challenge` = fetching the message to sign; `sign` = the
|
|
42
|
+
* wallet signing it (user may reject); `login` = exchanging the signature for a session. Unlike
|
|
43
|
+
* a bridge flow there is no on-chain transaction — this is an off-chain proof of ownership.
|
|
44
|
+
*/
|
|
45
|
+
type WalletLoginStage = "challenge" | "sign" | "login";
|
|
46
|
+
interface WalletLoginSuccess<T> {
|
|
47
|
+
ok: true;
|
|
48
|
+
/** The core SDK result of the successful login (the fresh ClientState). */
|
|
49
|
+
data: T;
|
|
50
|
+
}
|
|
51
|
+
interface WalletLoginFailure {
|
|
52
|
+
ok: false;
|
|
53
|
+
stage: WalletLoginStage;
|
|
54
|
+
error: string;
|
|
55
|
+
}
|
|
56
|
+
type WalletLoginResult<T> = WalletLoginSuccess<T> | WalletLoginFailure;
|
|
57
|
+
declare function walletLoginFail(stage: WalletLoginStage, error: string): WalletLoginFailure;
|
|
58
|
+
|
|
59
|
+
declare const mainnet: Chain;
|
|
60
|
+
declare const bsc: Chain;
|
|
61
|
+
declare const polygon: Chain;
|
|
62
|
+
declare const base: Chain;
|
|
63
|
+
declare const arbitrum: Chain;
|
|
64
|
+
declare const optimism: Chain;
|
|
65
|
+
declare const sepolia: Chain;
|
|
66
|
+
declare const polygonAmoy: Chain;
|
|
67
|
+
/** Every chain declared here, keyed by NetworkID-style name — handy for a title-driven picker. */
|
|
68
|
+
declare const idosChains: {
|
|
69
|
+
readonly mainnet: Chain;
|
|
70
|
+
readonly bsc: Chain;
|
|
71
|
+
readonly polygon: Chain;
|
|
72
|
+
readonly base: Chain;
|
|
73
|
+
readonly arbitrum: Chain;
|
|
74
|
+
readonly optimism: Chain;
|
|
75
|
+
readonly sepolia: Chain;
|
|
76
|
+
readonly polygonAmoy: Chain;
|
|
77
|
+
};
|
|
78
|
+
/** Look up a declared chain by its EVM chain id (e.g. from the title's blockchain config). */
|
|
79
|
+
declare function chainById(id: number): Chain | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* A chain in the CAIP shape Reown AppKit expects.
|
|
82
|
+
*
|
|
83
|
+
* AppKit ships its own network list at `@reown/appkit/networks`, but that module is
|
|
84
|
+
* `export * from "viem/chains"` — the very barrel this file exists to avoid. Converting our own
|
|
85
|
+
* chains keeps AppKit working without dragging `tempo`/`ox` (and its BigInt `**`) into the bundle.
|
|
86
|
+
*/
|
|
87
|
+
type AppKitEvmNetwork = Chain & {
|
|
88
|
+
chainNamespace: "eip155";
|
|
89
|
+
caipNetworkId: `eip155:${number}`;
|
|
90
|
+
};
|
|
91
|
+
/** Wraps a chain in the CAIP fields AppKit needs. */
|
|
92
|
+
declare function toAppKitNetwork(chain: Chain): AppKitEvmNetwork;
|
|
93
|
+
interface AppKitSolanaNetwork {
|
|
94
|
+
id: string;
|
|
95
|
+
name: string;
|
|
96
|
+
network: string;
|
|
97
|
+
nativeCurrency: {
|
|
98
|
+
name: string;
|
|
99
|
+
symbol: string;
|
|
100
|
+
decimals: number;
|
|
101
|
+
};
|
|
102
|
+
rpcUrls: {
|
|
103
|
+
default: {
|
|
104
|
+
http: string[];
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
blockExplorers?: {
|
|
108
|
+
default: {
|
|
109
|
+
name: string;
|
|
110
|
+
url: string;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
testnet: boolean;
|
|
114
|
+
chainNamespace: "solana";
|
|
115
|
+
caipNetworkId: `solana:${string}`;
|
|
116
|
+
}
|
|
117
|
+
declare const solanaMainnet: AppKitSolanaNetwork;
|
|
118
|
+
declare const solanaDevnet: AppKitSolanaNetwork;
|
|
119
|
+
|
|
120
|
+
export { type AppKitEvmNetwork as A, type BridgeFailure as B, type WalletLoginResult as W, type AppKitSolanaNetwork as a, type BridgeResult as b, type BridgeStage as c, type BridgeSuccess as d, type WalletLoginFailure as e, type WalletLoginStage as f, type WalletLoginSuccess as g, arbitrum as h, base as i, bridgeFail as j, bsc as k, chainById as l, idosChains as m, mainnet as n, optimism as o, polygon as p, polygonAmoy as q, solanaDevnet as r, sepolia as s, solanaMainnet as t, toAppKitNetwork as u, toErrorMessage as v, walletLoginFail as w };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Chain } from 'viem';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Where a multi-step bridge flow stopped. Deposits run approve → deposit-onchain → report;
|
|
5
|
+
* withdrawals run request → withdraw-onchain → confirm. Knowing the stage lets a UI recover
|
|
6
|
+
* correctly (e.g. a failed `withdraw-onchain` after a successful `request` means the asset is
|
|
7
|
+
* already debited — offer `retryWithdrawal`, never a fresh request that would debit twice).
|
|
8
|
+
*/
|
|
9
|
+
type BridgeStage = "approve" | "deposit-onchain" | "report" | "request" | "withdraw-onchain" | "confirm";
|
|
10
|
+
interface BridgeSuccess<T> {
|
|
11
|
+
ok: true;
|
|
12
|
+
/** Hash/signature of the on-chain transaction that moved the asset (EVM hex or Solana base58). */
|
|
13
|
+
onChainTxHash: string;
|
|
14
|
+
/** The core SDK response that finalized the operation server-side. */
|
|
15
|
+
data: T;
|
|
16
|
+
}
|
|
17
|
+
interface BridgeFailure {
|
|
18
|
+
ok: false;
|
|
19
|
+
stage: BridgeStage;
|
|
20
|
+
error: string;
|
|
21
|
+
/**
|
|
22
|
+
* Set when the asset-moving on-chain tx already landed but a later step failed — the caller can
|
|
23
|
+
* finish the flow with this hash (e.g. re-call `confirmWithdrawal`) instead of restarting.
|
|
24
|
+
*/
|
|
25
|
+
onChainTxHash?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Set for a withdrawal whose server-side `request` already succeeded (and already debited the
|
|
28
|
+
* player) but whose on-chain/confirm leg failed. Recover with `client.blockchain.retryWithdrawal`
|
|
29
|
+
* (before ExpiresAt) or `confirmWithdrawal` (if the tx actually landed) — NOT a fresh request.
|
|
30
|
+
*/
|
|
31
|
+
titleTransactionID?: string;
|
|
32
|
+
}
|
|
33
|
+
type BridgeResult<T> = BridgeSuccess<T> | BridgeFailure;
|
|
34
|
+
/** Normalizes a thrown value (viem error, plain Error, or unknown) into a short human string. */
|
|
35
|
+
declare function toErrorMessage(e: unknown): string;
|
|
36
|
+
declare function bridgeFail(stage: BridgeStage, error: string, extra?: {
|
|
37
|
+
onChainTxHash?: string;
|
|
38
|
+
titleTransactionID?: string;
|
|
39
|
+
}): BridgeFailure;
|
|
40
|
+
/**
|
|
41
|
+
* Where a wallet-login flow stopped. `challenge` = fetching the message to sign; `sign` = the
|
|
42
|
+
* wallet signing it (user may reject); `login` = exchanging the signature for a session. Unlike
|
|
43
|
+
* a bridge flow there is no on-chain transaction — this is an off-chain proof of ownership.
|
|
44
|
+
*/
|
|
45
|
+
type WalletLoginStage = "challenge" | "sign" | "login";
|
|
46
|
+
interface WalletLoginSuccess<T> {
|
|
47
|
+
ok: true;
|
|
48
|
+
/** The core SDK result of the successful login (the fresh ClientState). */
|
|
49
|
+
data: T;
|
|
50
|
+
}
|
|
51
|
+
interface WalletLoginFailure {
|
|
52
|
+
ok: false;
|
|
53
|
+
stage: WalletLoginStage;
|
|
54
|
+
error: string;
|
|
55
|
+
}
|
|
56
|
+
type WalletLoginResult<T> = WalletLoginSuccess<T> | WalletLoginFailure;
|
|
57
|
+
declare function walletLoginFail(stage: WalletLoginStage, error: string): WalletLoginFailure;
|
|
58
|
+
|
|
59
|
+
declare const mainnet: Chain;
|
|
60
|
+
declare const bsc: Chain;
|
|
61
|
+
declare const polygon: Chain;
|
|
62
|
+
declare const base: Chain;
|
|
63
|
+
declare const arbitrum: Chain;
|
|
64
|
+
declare const optimism: Chain;
|
|
65
|
+
declare const sepolia: Chain;
|
|
66
|
+
declare const polygonAmoy: Chain;
|
|
67
|
+
/** Every chain declared here, keyed by NetworkID-style name — handy for a title-driven picker. */
|
|
68
|
+
declare const idosChains: {
|
|
69
|
+
readonly mainnet: Chain;
|
|
70
|
+
readonly bsc: Chain;
|
|
71
|
+
readonly polygon: Chain;
|
|
72
|
+
readonly base: Chain;
|
|
73
|
+
readonly arbitrum: Chain;
|
|
74
|
+
readonly optimism: Chain;
|
|
75
|
+
readonly sepolia: Chain;
|
|
76
|
+
readonly polygonAmoy: Chain;
|
|
77
|
+
};
|
|
78
|
+
/** Look up a declared chain by its EVM chain id (e.g. from the title's blockchain config). */
|
|
79
|
+
declare function chainById(id: number): Chain | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* A chain in the CAIP shape Reown AppKit expects.
|
|
82
|
+
*
|
|
83
|
+
* AppKit ships its own network list at `@reown/appkit/networks`, but that module is
|
|
84
|
+
* `export * from "viem/chains"` — the very barrel this file exists to avoid. Converting our own
|
|
85
|
+
* chains keeps AppKit working without dragging `tempo`/`ox` (and its BigInt `**`) into the bundle.
|
|
86
|
+
*/
|
|
87
|
+
type AppKitEvmNetwork = Chain & {
|
|
88
|
+
chainNamespace: "eip155";
|
|
89
|
+
caipNetworkId: `eip155:${number}`;
|
|
90
|
+
};
|
|
91
|
+
/** Wraps a chain in the CAIP fields AppKit needs. */
|
|
92
|
+
declare function toAppKitNetwork(chain: Chain): AppKitEvmNetwork;
|
|
93
|
+
interface AppKitSolanaNetwork {
|
|
94
|
+
id: string;
|
|
95
|
+
name: string;
|
|
96
|
+
network: string;
|
|
97
|
+
nativeCurrency: {
|
|
98
|
+
name: string;
|
|
99
|
+
symbol: string;
|
|
100
|
+
decimals: number;
|
|
101
|
+
};
|
|
102
|
+
rpcUrls: {
|
|
103
|
+
default: {
|
|
104
|
+
http: string[];
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
blockExplorers?: {
|
|
108
|
+
default: {
|
|
109
|
+
name: string;
|
|
110
|
+
url: string;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
testnet: boolean;
|
|
114
|
+
chainNamespace: "solana";
|
|
115
|
+
caipNetworkId: `solana:${string}`;
|
|
116
|
+
}
|
|
117
|
+
declare const solanaMainnet: AppKitSolanaNetwork;
|
|
118
|
+
declare const solanaDevnet: AppKitSolanaNetwork;
|
|
119
|
+
|
|
120
|
+
export { type AppKitEvmNetwork as A, type BridgeFailure as B, type WalletLoginResult as W, type AppKitSolanaNetwork as a, type BridgeResult as b, type BridgeStage as c, type BridgeSuccess as d, type WalletLoginFailure as e, type WalletLoginStage as f, type WalletLoginSuccess as g, arbitrum as h, base as i, bridgeFail as j, bsc as k, chainById as l, idosChains as m, mainnet as n, optimism as o, polygon as p, polygonAmoy as q, solanaDevnet as r, sepolia as s, solanaMainnet as t, toAppKitNetwork as u, toErrorMessage as v, walletLoginFail as w };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {b,a,c}from'./chunk-XFMDEOHO.js';import {normalizeBlockchainCategory}from'@idosgames/core';async function f(i){let{client:e,adapter:n,network:g,mint:p,amountRaw:o,titleID:d,category:s}=i,t=e.auth.context?.userID;if(!t)return b("deposit-onchain","Not logged in.");if(o<=0n)return b("deposit-onchain","Amount must be positive.");let l;try{l=await n.depositSpl({mint:p,amountRaw:o,userID:t,titleID:d,category:normalizeBlockchainCategory(s)});}catch(c){return b("deposit-onchain",a(c))}let r=await e.blockchain.depositToken(g.NetworkID??"",l);return r.ok?{ok:true,onChainTxHash:l,data:r.data}:b("report",r.error,{onChainTxHash:l})}async function S(i){let{client:e,adapter:n,currencyID:g,networkID:p,walletAddress:o,amount:d,category:s}=i,t=await e.blockchain.requestTokenWithdrawal(g,p,o,d,s);if(!t.ok)return b("request",t.error);let l=t.data.SolanaSignature,r=t.data.TitleTransactionID??void 0;if(!l)return b("request","Withdrawal response carried no Solana signature.",{titleTransactionID:r});let c;try{c=await n.submitWithdrawal(l);}catch(w){return b("withdraw-onchain",a(w),{titleTransactionID:r})}if(!r)return b("confirm","Missing TitleTransactionID.",{onChainTxHash:c});let h=await e.blockchain.confirmWithdrawal(r,c);return h.ok?{ok:true,onChainTxHash:c,data:t.data}:b("confirm",h.error,{onChainTxHash:c,titleTransactionID:r})}async function y(i){let{client:e,networkID:n,walletAddress:g,signMessage:p}=i,o=await e.auth.requestWalletChallenge(g,n);if(!o.ok)return c("challenge",o.error);let d;try{let t=await p(new TextEncoder().encode(o.data.Message));d=T(t);}catch(t){return c("sign",a(t))}let s=await e.auth.loginWithWallet(g,n,d);return s.ok?{ok:true,data:s.data}:c("login",s.error)}function T(i){let e="0x";for(let n of i)e+=n.toString(16).padStart(2,"0");return e}export{f as a,S as b,y as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {b as b$1,a,c}from'./chunk-XFMDEOHO.js';import {encodeAbiParameters}from'viem';import {normalizeBlockchainCategory}from'@idosgames/core';var w=[{type:"function",name:"depositERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"amount",type:"uint256"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"withdrawERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"amount",type:"uint256"},{name:"burnAmount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC1155",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],k=[{type:"function",name:"withdrawERC1155Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],b=[{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]}],D=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]},{type:"function",name:"isApprovedForAll",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"operator",type:"address"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"setApprovalForAll",stateMutability:"nonpayable",inputs:[{name:"operator",type:"address"},{name:"approved",type:"bool"}],outputs:[]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"id",type:"uint256"}],outputs:[{name:"",type:"uint256"}]}],v=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function A(e,t,n){return encodeAbiParameters([{type:"string"},{type:"string"},{type:"string"}],[e,t,normalizeBlockchainCategory(n)])}async function f(e,t){let{walletClient:n,publicClient:r,account:m}=e,o=await n.writeContract({address:t.address,abi:t.abi,functionName:t.functionName,args:t.args,account:m,chain:n.chain,value:t.value});if((await r.waitForTransactionReceipt({hash:o})).status==="reverted")throw new Error(`On-chain transaction reverted (${o}).`);return o}function I(e){let t=e.RewardPoolAddress;return t||null}async function C(e,t,n,r){return await e.publicClient.readContract({address:t,abi:b,functionName:"allowance",args:[e.account,n]})>=r?null:f(e,{address:t,abi:b,functionName:"approve",args:[n,r]})}async function P(e){let{client:t,clients:n,network:r,tokenAddress:m,amount:o,titleID:u,category:l}=e,i=t.auth.context?.userID;if(!i)return b$1("approve","Not logged in.");let p=I(r);if(!p)return b$1("approve","Network has no RewardPoolAddress.");if(o<=0n)return b$1("approve","Amount must be positive.");try{await C(n,m,p,o);}catch(d){return b$1("approve",a(d))}let c;try{c=await f(n,{address:p,abi:w,functionName:"depositERC20",args:[m,o,i,u,l??""]});}catch(d){return b$1("deposit-onchain",a(d))}let s=await t.blockchain.depositToken(r.NetworkID??"",c);return s.ok?{ok:true,onChainTxHash:c,data:s.data}:b$1("report",s.error,{onChainTxHash:c})}async function R(e){let{client:t,clients:n,network:r,nftContractAddress:m,tokenId:o,amount:u,titleID:l,category:i}=e,p=t.auth.context?.userID;if(!p)return b$1("deposit-onchain","Not logged in.");let c=I(r);if(!c)return b$1("deposit-onchain","Network has no RewardPoolAddress.");if(u<=0n)return b$1("deposit-onchain","Amount must be positive.");let s=A(p,l,i),d;try{d=await f(n,{address:m,abi:D,functionName:"safeTransferFrom",args:[n.account,c,o,u,s]});}catch(T){return b$1("deposit-onchain",a(T))}let g=await t.blockchain.depositNFT(r.NetworkID??"",d);return g.ok?{ok:true,onChainTxHash:d,data:g.data}:b$1("report",g.error,{onChainTxHash:d})}async function H(e){let{client:t,clients:n,network:r,nftContractAddress:m,tokenId:o,titleID:u,category:l}=e,i=t.auth.context?.userID;if(!i)return b$1("deposit-onchain","Not logged in.");let p=I(r);if(!p)return b$1("deposit-onchain","Network has no RewardPoolAddress.");let c=A(i,u,l),s;try{s=await f(n,{address:m,abi:v,functionName:"safeTransferFrom",args:[n.account,p,o,c]});}catch(g){return b$1("deposit-onchain",a(g))}let d=await t.blockchain.depositNFT(r.NetworkID??"",s);return d.ok?{ok:true,onChainTxHash:s,data:d.data}:b$1("report",d.error,{onChainTxHash:s})}async function E(e,t){return f(e,{address:t.ContractAddress,abi:w,functionName:"withdrawERC20",args:[t.TokenAddress,t.WalletAddress,BigInt(t.Amount??"0"),BigInt(t.BurnAmount??"0"),BigInt(t.Nonce??"0"),t.Signature??"0x",t.UserID??"",t.TitleID??"",t.Category??"",BigInt(t.Deadline??"0")]})}async function x(e,t){return f(e,{address:t.ContractAddress,abi:k,functionName:"withdrawERC1155Mint",args:[t.TokenAddress,t.WalletAddress,BigInt(t.TokenId??"0"),BigInt(t.Amount??"0"),BigInt(t.Nonce??"0"),t.Signature??"0x",t.UserID??"",t.TitleID??"",t.Category??"",BigInt(t.Deadline??"0")]})}async function M(e,t){return f(e,{address:t.ContractAddress,abi:k,functionName:"withdrawERC721Mint",args:[t.TokenAddress,t.WalletAddress,BigInt(t.TokenId??"0"),BigInt(t.Nonce??"0"),t.Signature??"0x",t.UserID??"",t.TitleID??"",t.Category??"",BigInt(t.Deadline??"0")]})}async function F(e){let{client:t,clients:n,currencyID:r,networkID:m,walletAddress:o,amount:u,category:l}=e,i=await t.blockchain.requestTokenWithdrawal(r,m,o,u,l);if(!i.ok)return b$1("request",i.error);let p=i.data.EvmSignature,c=i.data.TitleTransactionID??void 0;if(!p)return b$1("request","Withdrawal response carried no EVM signature.",{titleTransactionID:c});let s;try{s=await E(n,p);}catch(g){return b$1("withdraw-onchain",a(g),{titleTransactionID:c})}let d=await N(t,c,s);return d.ok?{ok:true,onChainTxHash:s,data:i.data}:d}async function S(e){let{client:t,clients:n,itemID:r,networkID:m,walletAddress:o,amount:u,category:l}=e,i=await t.blockchain.requestNFTWithdrawal(r,m,o,u,l);if(!i.ok)return b$1("request",i.error);let p=i.data.EvmSignature,c=i.data.TitleTransactionID??void 0;if(!p)return b$1("request","Withdrawal response carried no EVM signature.",{titleTransactionID:c});let s;try{s=await x(n,p);}catch(g){return b$1("withdraw-onchain",a(g),{titleTransactionID:c})}let d=await N(t,c,s);return d.ok?{ok:true,onChainTxHash:s,data:i.data}:d}async function N(e,t,n){if(!t)return b$1("confirm","Missing TitleTransactionID.",{onChainTxHash:n});let r=await e.blockchain.confirmWithdrawal(t,n);return r.ok?{ok:true,onChainTxHash:n,data:r.data}:b$1("confirm",r.error,{onChainTxHash:n,titleTransactionID:t})}async function G(e){let{client:t,clients:n,networkID:r}=e,m=e.walletAddress??n.account,o=await t.auth.requestWalletChallenge(m,r);if(!o.ok)return c("challenge",o.error);let u;try{u=await n.walletClient.signMessage({account:n.account,message:o.data.Message});}catch(i){return c("sign",a(i))}let l=await t.auth.loginWithWallet(m,r,u);return l.ok?{ok:true,data:l.data}:c("login",l.error)}export{w as a,b,D as c,v as d,A as e,f,C as g,P as h,R as i,H as j,E as k,x as l,M as m,F as n,S as o,G as p};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {BaseError}from'viem';function h(e){return e instanceof BaseError?e.shortMessage:e instanceof Error?e.message:String(e)}function g(e,t,a){return {ok:false,stage:e,error:t,...a}}function f(e,t){return {ok:false,stage:e,error:t}}var r={id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.llamarpc.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io"}}},o={id:56,name:"BNB Smart Chain",nativeCurrency:{name:"BNB",symbol:"BNB",decimals:18},rpcUrls:{default:{http:["https://bsc-dataseed.binance.org"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com"}}},s={id:137,name:"Polygon",nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://polygonscan.com"}}},i={id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"BaseScan",url:"https://basescan.org"}}},l={id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io"}}},p={id:10,name:"OP Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},blockExplorers:{default:{name:"Optimistic Etherscan",url:"https://optimistic.etherscan.io"}}},c={id:11155111,name:"Sepolia",testnet:true,nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.sepolia.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io"}}},m={id:80002,name:"Polygon Amoy",testnet:true,nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://rpc-amoy.polygon.technology"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://amoy.polygonscan.com"}}},u={mainnet:r,bsc:o,polygon:s,base:i,arbitrum:l,optimism:p,sepolia:c,polygonAmoy:m};function b(e){return Object.values(u).find(t=>t.id===e)}function x(e){return {...e,chainNamespace:"eip155",caipNetworkId:`eip155:${e.id}`}}var k={id:"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",name:"Solana",network:"solana-mainnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://api.mainnet-beta.solana.com"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:false,chainNamespace:"solana",caipNetworkId:"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"},E={id:"EtWTRABZaYq6iMfeYKouRu166VU2xqa1",name:"Solana Devnet",network:"solana-devnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://api.devnet.solana.com"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:true,chainNamespace:"solana",caipNetworkId:"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"};
|
|
2
|
+
export{h as a,g as b,f as c,r as d,o as e,s as f,i as g,l as h,p as i,c as j,m as k,u as l,b as m,x as n,k as o,E as p};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t=null;function e(p){t=p;}function i(){return t}export{e as a,i as b};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
'use strict';var viem=require('viem'),core=require('@idosgames/core');function g(t){return t instanceof viem.BaseError?t.shortMessage:t instanceof Error?t.message:String(t)}function a(t,e,n){return {ok:false,stage:t,error:e,...n}}function w(t,e){return {ok:false,stage:t,error:e}}var h=[{type:"function",name:"depositERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"amount",type:"uint256"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"withdrawERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"amount",type:"uint256"},{name:"burnAmount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC1155",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],D=[{type:"function",name:"withdrawERC1155Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],k=[{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]}],x=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]},{type:"function",name:"isApprovedForAll",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"operator",type:"address"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"setApprovalForAll",stateMutability:"nonpayable",inputs:[{name:"operator",type:"address"},{name:"approved",type:"bool"}],outputs:[]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"id",type:"uint256"}],outputs:[{name:"",type:"uint256"}]}],A=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function b(t,e,n){return viem.encodeAbiParameters([{type:"string"},{type:"string"},{type:"string"}],[t,e,core.normalizeBlockchainCategory(n)])}async function f(t,e){let{walletClient:n,publicClient:i,account:c}=t,o=await n.writeContract({address:e.address,abi:e.abi,functionName:e.functionName,args:e.args,account:c,chain:n.chain,value:e.value});if((await i.waitForTransactionReceipt({hash:o})).status==="reverted")throw new Error(`On-chain transaction reverted (${o}).`);return o}function I(t){let e=t.RewardPoolAddress;return e||null}async function T(t,e,n,i){return await t.publicClient.readContract({address:e,abi:k,functionName:"allowance",args:[t.account,n]})>=i?null:f(t,{address:e,abi:k,functionName:"approve",args:[n,i]})}async function P(t){let{client:e,clients:n,network:i,tokenAddress:c,amount:o,titleID:p,category:u}=t,r=e.auth.context?.userID;if(!r)return a("approve","Not logged in.");let d=I(i);if(!d)return a("approve","Network has no RewardPoolAddress.");if(o<=0n)return a("approve","Amount must be positive.");try{await T(n,c,d,o);}catch(m){return a("approve",g(m))}let s;try{s=await f(n,{address:d,abi:h,functionName:"depositERC20",args:[c,o,r,p,u??""]});}catch(m){return a("deposit-onchain",g(m))}let l=await e.blockchain.depositToken(i.NetworkID??"",s);return l.ok?{ok:true,onChainTxHash:s,data:l.data}:a("report",l.error,{onChainTxHash:s})}async function R(t){let{client:e,clients:n,network:i,nftContractAddress:c,tokenId:o,amount:p,titleID:u,category:r}=t,d=e.auth.context?.userID;if(!d)return a("deposit-onchain","Not logged in.");let s=I(i);if(!s)return a("deposit-onchain","Network has no RewardPoolAddress.");if(p<=0n)return a("deposit-onchain","Amount must be positive.");let l=b(d,u,r),m;try{m=await f(n,{address:c,abi:x,functionName:"safeTransferFrom",args:[n.account,s,o,p,l]});}catch(E){return a("deposit-onchain",g(E))}let y=await e.blockchain.depositNFT(i.NetworkID??"",m);return y.ok?{ok:true,onChainTxHash:m,data:y.data}:a("report",y.error,{onChainTxHash:m})}async function F(t){let{client:e,clients:n,network:i,nftContractAddress:c,tokenId:o,titleID:p,category:u}=t,r=e.auth.context?.userID;if(!r)return a("deposit-onchain","Not logged in.");let d=I(i);if(!d)return a("deposit-onchain","Network has no RewardPoolAddress.");let s=b(r,p,u),l;try{l=await f(n,{address:c,abi:A,functionName:"safeTransferFrom",args:[n.account,d,o,s]});}catch(y){return a("deposit-onchain",g(y))}let m=await e.blockchain.depositNFT(i.NetworkID??"",l);return m.ok?{ok:true,onChainTxHash:l,data:m.data}:a("report",m.error,{onChainTxHash:l})}async function C(t,e){return f(t,{address:e.ContractAddress,abi:h,functionName:"withdrawERC20",args:[e.TokenAddress,e.WalletAddress,BigInt(e.Amount??"0"),BigInt(e.BurnAmount??"0"),BigInt(e.Nonce??"0"),e.Signature??"0x",e.UserID??"",e.TitleID??"",e.Category??"",BigInt(e.Deadline??"0")]})}async function W(t,e){return f(t,{address:e.ContractAddress,abi:D,functionName:"withdrawERC1155Mint",args:[e.TokenAddress,e.WalletAddress,BigInt(e.TokenId??"0"),BigInt(e.Amount??"0"),BigInt(e.Nonce??"0"),e.Signature??"0x",e.UserID??"",e.TitleID??"",e.Category??"",BigInt(e.Deadline??"0")]})}async function M(t,e){return f(t,{address:e.ContractAddress,abi:D,functionName:"withdrawERC721Mint",args:[e.TokenAddress,e.WalletAddress,BigInt(e.TokenId??"0"),BigInt(e.Nonce??"0"),e.Signature??"0x",e.UserID??"",e.TitleID??"",e.Category??"",BigInt(e.Deadline??"0")]})}async function H(t){let{client:e,clients:n,currencyID:i,networkID:c,walletAddress:o,amount:p,category:u}=t,r=await e.blockchain.requestTokenWithdrawal(i,c,o,p,u);if(!r.ok)return a("request",r.error);let d=r.data.EvmSignature,s=r.data.TitleTransactionID??void 0;if(!d)return a("request","Withdrawal response carried no EVM signature.",{titleTransactionID:s});let l;try{l=await C(n,d);}catch(y){return a("withdraw-onchain",g(y),{titleTransactionID:s})}let m=await v(e,s,l);return m.ok?{ok:true,onChainTxHash:l,data:r.data}:m}async function L(t){let{client:e,clients:n,itemID:i,networkID:c,walletAddress:o,amount:p,category:u}=t,r=await e.blockchain.requestNFTWithdrawal(i,c,o,p,u);if(!r.ok)return a("request",r.error);let d=r.data.EvmSignature,s=r.data.TitleTransactionID??void 0;if(!d)return a("request","Withdrawal response carried no EVM signature.",{titleTransactionID:s});let l;try{l=await W(n,d);}catch(y){return a("withdraw-onchain",g(y),{titleTransactionID:s})}let m=await v(e,s,l);return m.ok?{ok:true,onChainTxHash:l,data:r.data}:m}async function v(t,e,n){if(!e)return a("confirm","Missing TitleTransactionID.",{onChainTxHash:n});let i=await t.blockchain.confirmWithdrawal(e,n);return i.ok?{ok:true,onChainTxHash:n,data:i.data}:a("confirm",i.error,{onChainTxHash:n,titleTransactionID:e})}async function G(t){let{client:e,clients:n,networkID:i}=t,c=t.walletAddress??n.account,o=await e.auth.requestWalletChallenge(c,i);if(!o.ok)return w("challenge",o.error);let p;try{p=await n.walletClient.signMessage({account:n.account,message:o.data.Message});}catch(r){return w("sign",g(r))}let u=await e.auth.loginWithWallet(c,i,p);return u.ok?{ok:true,data:u.data}:w("login",u.error)}async function U(t){let{client:e,adapter:n,network:i,mint:c,amountRaw:o,titleID:p,category:u}=t,r=e.auth.context?.userID;if(!r)return a("deposit-onchain","Not logged in.");if(o<=0n)return a("deposit-onchain","Amount must be positive.");let d;try{d=await n.depositSpl({mint:c,amountRaw:o,userID:r,titleID:p,category:core.normalizeBlockchainCategory(u)});}catch(l){return a("deposit-onchain",g(l))}let s=await e.blockchain.depositToken(i.NetworkID??"",d);return s.ok?{ok:true,onChainTxHash:d,data:s.data}:a("report",s.error,{onChainTxHash:d})}async function O(t){let{client:e,adapter:n,currencyID:i,networkID:c,walletAddress:o,amount:p,category:u}=t,r=await e.blockchain.requestTokenWithdrawal(i,c,o,p,u);if(!r.ok)return a("request",r.error);let d=r.data.SolanaSignature,s=r.data.TitleTransactionID??void 0;if(!d)return a("request","Withdrawal response carried no Solana signature.",{titleTransactionID:s});let l;try{l=await n.submitWithdrawal(d);}catch(y){return a("withdraw-onchain",g(y),{titleTransactionID:s})}if(!s)return a("confirm","Missing TitleTransactionID.",{onChainTxHash:l});let m=await e.blockchain.confirmWithdrawal(s,l);return m.ok?{ok:true,onChainTxHash:l,data:r.data}:a("confirm",m.error,{onChainTxHash:l,titleTransactionID:s})}async function z(t){let{client:e,networkID:n,walletAddress:i,signMessage:c}=t,o=await e.auth.requestWalletChallenge(i,n);if(!o.ok)return w("challenge",o.error);let p;try{let r=await c(new TextEncoder().encode(o.data.Message));p=V(r);}catch(r){return w("sign",g(r))}let u=await e.auth.loginWithWallet(i,n,p);return u.ok?{ok:true,data:u.data}:w("login",u.error)}function V(t){let e="0x";for(let n of t)e+=n.toString(16).padStart(2,"0");return e}exports.bridgeFail=a;exports.depositNftEvm=R;exports.depositNftEvm721=F;exports.depositTokenEvm=P;exports.depositTokenSolana=U;exports.encodeNftDepositData=b;exports.ensureErc20Allowance=T;exports.erc1155Abi=x;exports.erc20Abi=k;exports.erc721Abi=A;exports.loginWithWalletEvm=G;exports.loginWithWalletSolana=z;exports.rewardPoolAbi=h;exports.submitEvmNftWithdrawal=W;exports.submitEvmNftWithdrawal721=M;exports.submitEvmTokenWithdrawal=C;exports.toErrorMessage=g;exports.walletLoginFail=w;exports.withdrawNftEvm=L;exports.withdrawTokenEvm=H;exports.withdrawTokenSolana=O;exports.writeAndWait=f;
|
|
1
|
+
'use strict';var viem=require('viem'),core=require('@idosgames/core');function g(t){return t instanceof viem.BaseError?t.shortMessage:t instanceof Error?t.message:String(t)}function a(t,e,n){return {ok:false,stage:t,error:e,...n}}function h(t,e){return {ok:false,stage:t,error:e}}var S={id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.llamarpc.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io"}}},B={id:56,name:"BNB Smart Chain",nativeCurrency:{name:"BNB",symbol:"BNB",decimals:18},rpcUrls:{default:{http:["https://bsc-dataseed.binance.org"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com"}}},P={id:137,name:"Polygon",nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://polygonscan.com"}}},R={id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"BaseScan",url:"https://basescan.org"}}},H={id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io"}}},M={id:10,name:"OP Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},blockExplorers:{default:{name:"Optimistic Etherscan",url:"https://optimistic.etherscan.io"}}},F={id:11155111,name:"Sepolia",testnet:true,nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.sepolia.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io"}}},L={id:80002,name:"Polygon Amoy",testnet:true,nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://rpc-amoy.polygon.technology"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://amoy.polygonscan.com"}}},U={mainnet:S,bsc:B,polygon:P,base:R,arbitrum:H,optimism:M,sepolia:F,polygonAmoy:L};function ne(t){return Object.values(U).find(e=>e.id===t)}function ae(t){return {...t,chainNamespace:"eip155",caipNetworkId:`eip155:${t.id}`}}var re={id:"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",name:"Solana",network:"solana-mainnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://api.mainnet-beta.solana.com"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:false,chainNamespace:"solana",caipNetworkId:"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"},oe={id:"EtWTRABZaYq6iMfeYKouRu166VU2xqa1",name:"Solana Devnet",network:"solana-devnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://api.devnet.solana.com"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:true,chainNamespace:"solana",caipNetworkId:"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"};var w=[{type:"function",name:"depositERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"amount",type:"uint256"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"withdrawERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"amount",type:"uint256"},{name:"burnAmount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC1155",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],x=[{type:"function",name:"withdrawERC1155Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],k=[{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]}],A=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]},{type:"function",name:"isApprovedForAll",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"operator",type:"address"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"setApprovalForAll",stateMutability:"nonpayable",inputs:[{name:"operator",type:"address"},{name:"approved",type:"bool"}],outputs:[]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"id",type:"uint256"}],outputs:[{name:"",type:"uint256"}]}],C=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function b(t,e,n){return viem.encodeAbiParameters([{type:"string"},{type:"string"},{type:"string"}],[t,e,core.normalizeBlockchainCategory(n)])}async function f(t,e){let{walletClient:n,publicClient:o,account:p}=t,i=await n.writeContract({address:e.address,abi:e.abi,functionName:e.functionName,args:e.args,account:p,chain:n.chain,value:e.value});if((await o.waitForTransactionReceipt({hash:i})).status==="reverted")throw new Error(`On-chain transaction reverted (${i}).`);return i}function D(t){let e=t.RewardPoolAddress;return e||null}async function E(t,e,n,o){return await t.publicClient.readContract({address:e,abi:k,functionName:"allowance",args:[t.account,n]})>=o?null:f(t,{address:e,abi:k,functionName:"approve",args:[n,o]})}async function O(t){let{client:e,clients:n,network:o,tokenAddress:p,amount:i,titleID:d,category:m}=t,r=e.auth.context?.userID;if(!r)return a("approve","Not logged in.");let c=D(o);if(!c)return a("approve","Network has no RewardPoolAddress.");if(i<=0n)return a("approve","Amount must be positive.");try{await E(n,p,c,i);}catch(u){return a("approve",g(u))}let s;try{s=await f(n,{address:c,abi:w,functionName:"depositERC20",args:[p,i,r,d,m??""]});}catch(u){return a("deposit-onchain",g(u))}let l=await e.blockchain.depositToken(o.NetworkID??"",s);return l.ok?{ok:true,onChainTxHash:s,data:l.data}:a("report",l.error,{onChainTxHash:s})}async function K(t){let{client:e,clients:n,network:o,nftContractAddress:p,tokenId:i,amount:d,titleID:m,category:r}=t,c=e.auth.context?.userID;if(!c)return a("deposit-onchain","Not logged in.");let s=D(o);if(!s)return a("deposit-onchain","Network has no RewardPoolAddress.");if(d<=0n)return a("deposit-onchain","Amount must be positive.");let l=b(c,m,r),u;try{u=await f(n,{address:p,abi:A,functionName:"safeTransferFrom",args:[n.account,s,i,d,l]});}catch(W){return a("deposit-onchain",g(W))}let y=await e.blockchain.depositNFT(o.NetworkID??"",u);return y.ok?{ok:true,onChainTxHash:u,data:y.data}:a("report",y.error,{onChainTxHash:u})}async function Y(t){let{client:e,clients:n,network:o,nftContractAddress:p,tokenId:i,titleID:d,category:m}=t,r=e.auth.context?.userID;if(!r)return a("deposit-onchain","Not logged in.");let c=D(o);if(!c)return a("deposit-onchain","Network has no RewardPoolAddress.");let s=b(r,d,m),l;try{l=await f(n,{address:p,abi:C,functionName:"safeTransferFrom",args:[n.account,c,i,s]});}catch(y){return a("deposit-onchain",g(y))}let u=await e.blockchain.depositNFT(o.NetworkID??"",l);return u.ok?{ok:true,onChainTxHash:l,data:u.data}:a("report",u.error,{onChainTxHash:l})}async function v(t,e){return f(t,{address:e.ContractAddress,abi:w,functionName:"withdrawERC20",args:[e.TokenAddress,e.WalletAddress,BigInt(e.Amount??"0"),BigInt(e.BurnAmount??"0"),BigInt(e.Nonce??"0"),e.Signature??"0x",e.UserID??"",e.TitleID??"",e.Category??"",BigInt(e.Deadline??"0")]})}async function T(t,e){return f(t,{address:e.ContractAddress,abi:x,functionName:"withdrawERC1155Mint",args:[e.TokenAddress,e.WalletAddress,BigInt(e.TokenId??"0"),BigInt(e.Amount??"0"),BigInt(e.Nonce??"0"),e.Signature??"0x",e.UserID??"",e.TitleID??"",e.Category??"",BigInt(e.Deadline??"0")]})}async function z(t,e){return f(t,{address:e.ContractAddress,abi:x,functionName:"withdrawERC721Mint",args:[e.TokenAddress,e.WalletAddress,BigInt(e.TokenId??"0"),BigInt(e.Nonce??"0"),e.Signature??"0x",e.UserID??"",e.TitleID??"",e.Category??"",BigInt(e.Deadline??"0")]})}async function V(t){let{client:e,clients:n,currencyID:o,networkID:p,walletAddress:i,amount:d,category:m}=t,r=await e.blockchain.requestTokenWithdrawal(o,p,i,d,m);if(!r.ok)return a("request",r.error);let c=r.data.EvmSignature,s=r.data.TitleTransactionID??void 0;if(!c)return a("request","Withdrawal response carried no EVM signature.",{titleTransactionID:s});let l;try{l=await v(n,c);}catch(y){return a("withdraw-onchain",g(y),{titleTransactionID:s})}let u=await I(e,s,l);return u.ok?{ok:true,onChainTxHash:l,data:r.data}:u}async function Z(t){let{client:e,clients:n,itemID:o,networkID:p,walletAddress:i,amount:d,category:m}=t,r=await e.blockchain.requestNFTWithdrawal(o,p,i,d,m);if(!r.ok)return a("request",r.error);let c=r.data.EvmSignature,s=r.data.TitleTransactionID??void 0;if(!c)return a("request","Withdrawal response carried no EVM signature.",{titleTransactionID:s});let l;try{l=await T(n,c);}catch(y){return a("withdraw-onchain",g(y),{titleTransactionID:s})}let u=await I(e,s,l);return u.ok?{ok:true,onChainTxHash:l,data:r.data}:u}async function I(t,e,n){if(!e)return a("confirm","Missing TitleTransactionID.",{onChainTxHash:n});let o=await t.blockchain.confirmWithdrawal(e,n);return o.ok?{ok:true,onChainTxHash:n,data:o.data}:a("confirm",o.error,{onChainTxHash:n,titleTransactionID:e})}async function $(t){let{client:e,clients:n,networkID:o}=t,p=t.walletAddress??n.account,i=await e.auth.requestWalletChallenge(p,o);if(!i.ok)return h("challenge",i.error);let d;try{d=await n.walletClient.signMessage({account:n.account,message:i.data.Message});}catch(r){return h("sign",g(r))}let m=await e.auth.loginWithWallet(p,o,d);return m.ok?{ok:true,data:m.data}:h("login",m.error)}async function j(t){let{client:e,adapter:n,network:o,mint:p,amountRaw:i,titleID:d,category:m}=t,r=e.auth.context?.userID;if(!r)return a("deposit-onchain","Not logged in.");if(i<=0n)return a("deposit-onchain","Amount must be positive.");let c;try{c=await n.depositSpl({mint:p,amountRaw:i,userID:r,titleID:d,category:core.normalizeBlockchainCategory(m)});}catch(l){return a("deposit-onchain",g(l))}let s=await e.blockchain.depositToken(o.NetworkID??"",c);return s.ok?{ok:true,onChainTxHash:c,data:s.data}:a("report",s.error,{onChainTxHash:c})}async function Q(t){let{client:e,adapter:n,currencyID:o,networkID:p,walletAddress:i,amount:d,category:m}=t,r=await e.blockchain.requestTokenWithdrawal(o,p,i,d,m);if(!r.ok)return a("request",r.error);let c=r.data.SolanaSignature,s=r.data.TitleTransactionID??void 0;if(!c)return a("request","Withdrawal response carried no Solana signature.",{titleTransactionID:s});let l;try{l=await n.submitWithdrawal(c);}catch(y){return a("withdraw-onchain",g(y),{titleTransactionID:s})}if(!s)return a("confirm","Missing TitleTransactionID.",{onChainTxHash:l});let u=await e.blockchain.confirmWithdrawal(s,l);return u.ok?{ok:true,onChainTxHash:l,data:r.data}:a("confirm",u.error,{onChainTxHash:l,titleTransactionID:s})}async function X(t){let{client:e,networkID:n,walletAddress:o,signMessage:p}=t,i=await e.auth.requestWalletChallenge(o,n);if(!i.ok)return h("challenge",i.error);let d;try{let r=await p(new TextEncoder().encode(i.data.Message));d=_(r);}catch(r){return h("sign",g(r))}let m=await e.auth.loginWithWallet(o,n,d);return m.ok?{ok:true,data:m.data}:h("login",m.error)}function _(t){let e="0x";for(let n of t)e+=n.toString(16).padStart(2,"0");return e}
|
|
2
|
+
exports.arbitrum=H;exports.base=R;exports.bridgeFail=a;exports.bsc=B;exports.chainById=ne;exports.depositNftEvm=K;exports.depositNftEvm721=Y;exports.depositTokenEvm=O;exports.depositTokenSolana=j;exports.encodeNftDepositData=b;exports.ensureErc20Allowance=E;exports.erc1155Abi=A;exports.erc20Abi=k;exports.erc721Abi=C;exports.idosChains=U;exports.loginWithWalletEvm=$;exports.loginWithWalletSolana=X;exports.mainnet=S;exports.optimism=M;exports.polygon=P;exports.polygonAmoy=L;exports.rewardPoolAbi=w;exports.sepolia=F;exports.solanaDevnet=oe;exports.solanaMainnet=re;exports.submitEvmNftWithdrawal=T;exports.submitEvmNftWithdrawal721=z;exports.submitEvmTokenWithdrawal=v;exports.toAppKitNetwork=ae;exports.toErrorMessage=g;exports.walletLoginFail=h;exports.withdrawNftEvm=Z;exports.withdrawTokenEvm=V;exports.withdrawTokenSolana=Q;exports.writeAndWait=f;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { W as WalletLoginResult } from './chains-DMjdV7VV.cjs';
|
|
2
|
+
export { A as AppKitEvmNetwork, a as AppKitSolanaNetwork, B as BridgeFailure, b as BridgeResult, c as BridgeStage, d as BridgeSuccess, e as WalletLoginFailure, f as WalletLoginStage, g as WalletLoginSuccess, h as arbitrum, i as base, j as bridgeFail, k as bsc, l as chainById, m as idosChains, n as mainnet, o as optimism, p as polygon, q as polygonAmoy, s as sepolia, r as solanaDevnet, t as solanaMainnet, u as toAppKitNetwork, v as toErrorMessage, w as walletLoginFail } from './chains-DMjdV7VV.cjs';
|
|
3
3
|
import { Hex } from 'viem';
|
|
4
|
+
import { E as EvmBridgeClients } from './withdraw-DgTjKpSf.cjs';
|
|
5
|
+
export { D as DepositNft721EvmParams, a as DepositNftEvmParams, b as DepositTokenEvmParams, W as WithdrawNftEvmParams, c as WithdrawTokenEvmParams, d as depositNftEvm, e as depositNftEvm721, f as depositTokenEvm, g as ensureErc20Allowance, s as submitEvmNftWithdrawal, h as submitEvmNftWithdrawal721, i as submitEvmTokenWithdrawal, w as withdrawNftEvm, j as withdrawTokenEvm, k as writeAndWait } from './withdraw-DgTjKpSf.cjs';
|
|
4
6
|
import { IDosGamesClient, ClientState } from '@idosgames/core';
|
|
7
|
+
export { D as DepositTokenSolanaParams, S as SolanaProgramAdapter, W as WithdrawTokenSolanaParams, d as depositTokenSolana, w as withdrawTokenSolana } from './bridge-BEEkIeZj.cjs';
|
|
5
8
|
|
|
6
9
|
declare const rewardPoolAbi: readonly [{
|
|
7
10
|
readonly type: "function";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { W as WalletLoginResult } from './chains-DMjdV7VV.js';
|
|
2
|
+
export { A as AppKitEvmNetwork, a as AppKitSolanaNetwork, B as BridgeFailure, b as BridgeResult, c as BridgeStage, d as BridgeSuccess, e as WalletLoginFailure, f as WalletLoginStage, g as WalletLoginSuccess, h as arbitrum, i as base, j as bridgeFail, k as bsc, l as chainById, m as idosChains, n as mainnet, o as optimism, p as polygon, q as polygonAmoy, s as sepolia, r as solanaDevnet, t as solanaMainnet, u as toAppKitNetwork, v as toErrorMessage, w as walletLoginFail } from './chains-DMjdV7VV.js';
|
|
3
3
|
import { Hex } from 'viem';
|
|
4
|
+
import { E as EvmBridgeClients } from './withdraw-DTHssYc9.js';
|
|
5
|
+
export { D as DepositNft721EvmParams, a as DepositNftEvmParams, b as DepositTokenEvmParams, W as WithdrawNftEvmParams, c as WithdrawTokenEvmParams, d as depositNftEvm, e as depositNftEvm721, f as depositTokenEvm, g as ensureErc20Allowance, s as submitEvmNftWithdrawal, h as submitEvmNftWithdrawal721, i as submitEvmTokenWithdrawal, w as withdrawNftEvm, j as withdrawTokenEvm, k as writeAndWait } from './withdraw-DTHssYc9.js';
|
|
4
6
|
import { IDosGamesClient, ClientState } from '@idosgames/core';
|
|
7
|
+
export { D as DepositTokenSolanaParams, S as SolanaProgramAdapter, W as WithdrawTokenSolanaParams, d as depositTokenSolana, w as withdrawTokenSolana } from './bridge-BzZmMMxK.js';
|
|
5
8
|
|
|
6
9
|
declare const rewardPoolAbi: readonly [{
|
|
7
10
|
readonly type: "function";
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{b as
|
|
1
|
+
export{i as depositNftEvm,j as depositNftEvm721,h as depositTokenEvm,e as encodeNftDepositData,g as ensureErc20Allowance,c as erc1155Abi,b as erc20Abi,d as erc721Abi,p as loginWithWalletEvm,a as rewardPoolAbi,l as submitEvmNftWithdrawal,m as submitEvmNftWithdrawal721,k as submitEvmTokenWithdrawal,o as withdrawNftEvm,n as withdrawTokenEvm,f as writeAndWait}from'./chunk-NDNNLWPS.js';export{a as depositTokenSolana,c as loginWithWalletSolana,b as withdrawTokenSolana}from'./chunk-ACZSIOFR.js';export{h as arbitrum,g as base,b as bridgeFail,e as bsc,m as chainById,l as idosChains,d as mainnet,i as optimism,f as polygon,k as polygonAmoy,j as sepolia,p as solanaDevnet,o as solanaMainnet,n as toAppKitNetwork,a as toErrorMessage,c as walletLoginFail}from'./chunk-XFMDEOHO.js';
|