@coin-voyage/crypto 0.0.20 → 0.0.22-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evm/{base-provider.d.ts → provider/base-provider.d.ts} +1 -1
- package/dist/evm/{base-provider.js → provider/base-provider.js} +1 -1
- package/dist/evm/provider/base-provider.js.map +1 -0
- package/dist/evm/provider/external-context.js.map +1 -0
- package/dist/evm/provider/provider.d.ts +6 -0
- package/dist/evm/provider/provider.js +18 -0
- package/dist/evm/provider/provider.js.map +1 -0
- package/dist/evm/use-evm-transaction.d.ts +2 -2
- package/dist/evm/use-evm-transaction.js +6 -8
- package/dist/evm/use-evm-transaction.js.map +1 -1
- package/dist/evm/use-sign-in-with-evm.d.ts +2 -2
- package/dist/evm/use-sign-in-with-evm.js +26 -17
- package/dist/evm/use-sign-in-with-evm.js.map +1 -1
- package/dist/hooks/use-prepare-transaction.d.ts +2 -2
- package/dist/hooks/use-prepare-transaction.js.map +1 -1
- package/dist/lib/utils/get-nonce-from-message.d.ts +1 -0
- package/dist/lib/utils/get-nonce-from-message.js +5 -0
- package/dist/lib/utils/get-nonce-from-message.js.map +1 -0
- package/dist/query/provider.d.ts +5 -0
- package/dist/query/provider.js +29 -0
- package/dist/query/provider.js.map +1 -0
- package/dist/solana/private-key-wallet.d.ts +27 -0
- package/dist/solana/private-key-wallet.js +80 -0
- package/dist/solana/private-key-wallet.js.map +1 -0
- package/dist/solana/{base-provider.d.ts → provider/base-provider.d.ts} +2 -2
- package/dist/solana/{base-provider.js → provider/base-provider.js} +3 -2
- package/dist/solana/provider/base-provider.js.map +1 -0
- package/dist/solana/provider/external-context.js.map +1 -0
- package/dist/solana/provider/provider.d.ts +6 -0
- package/dist/solana/provider/provider.js +18 -0
- package/dist/solana/provider/provider.js.map +1 -0
- package/dist/solana/use-solana-transaction.d.ts +2 -2
- package/dist/solana/use-solana-transaction.js +8 -7
- package/dist/solana/use-solana-transaction.js.map +1 -1
- package/dist/sui/{base-provider.d.ts → provider/base-provider.d.ts} +2 -2
- package/dist/sui/{base-provider.js → provider/base-provider.js} +1 -1
- package/dist/sui/provider/base-provider.js.map +1 -0
- package/dist/sui/provider/external-context.js.map +1 -0
- package/dist/sui/provider/provider.d.ts +6 -0
- package/dist/sui/provider/provider.js +18 -0
- package/dist/sui/provider/provider.js.map +1 -0
- package/dist/sui/provider.d.ts +9 -0
- package/dist/sui/provider.js +18 -0
- package/dist/sui/provider.js.map +1 -0
- package/dist/sui/use-sign-in-with-sui.d.ts +2 -2
- package/dist/sui/use-sign-in-with-sui.js +16 -10
- package/dist/sui/use-sign-in-with-sui.js.map +1 -1
- package/dist/sui/use-sui-transaction.d.ts +2 -2
- package/dist/sui/use-sui-transaction.js +10 -11
- package/dist/sui/use-sui-transaction.js.map +1 -1
- package/dist/types/sign-in-with.d.ts +8 -8
- package/dist/types/transaction.d.ts +10 -0
- package/dist/types/transaction.js +2 -0
- package/dist/types/transaction.js.map +1 -0
- package/dist/types/wallet.d.ts +13 -11
- package/dist/utxo/{create-default-bigmi-config.d.ts → create-default-utxo-config.d.ts} +3 -3
- package/dist/utxo/{create-default-bigmi-config.js → create-default-utxo-config.js} +2 -2
- package/dist/utxo/create-default-utxo-config.js.map +1 -0
- package/dist/utxo/{base-provider.d.ts → provider/base-provider.d.ts} +2 -2
- package/dist/utxo/{base-provider.js → provider/base-provider.js} +1 -1
- package/dist/utxo/provider/base-provider.js.map +1 -0
- package/dist/utxo/provider/external-context.js.map +1 -0
- package/dist/utxo/provider/provider.d.ts +6 -0
- package/dist/utxo/provider/provider.js +19 -0
- package/dist/utxo/provider/provider.js.map +1 -0
- package/dist/utxo/use-utxo-transaction.d.ts +2 -2
- package/dist/utxo/use-utxo-transaction.js +4 -3
- package/dist/utxo/use-utxo-transaction.js.map +1 -1
- package/dist/wallets/wallet-provider.d.ts +7 -0
- package/dist/wallets/wallet-provider.js +10 -0
- package/dist/wallets/wallet-provider.js.map +1 -0
- package/package.json +9 -1
- package/dist/evm/base-provider.js.map +0 -1
- package/dist/evm/external-context.js.map +0 -1
- package/dist/solana/base-provider.js.map +0 -1
- package/dist/solana/external-context.js.map +0 -1
- package/dist/sui/base-provider.js.map +0 -1
- package/dist/sui/external-context.js.map +0 -1
- package/dist/utxo/base-provider.js.map +0 -1
- package/dist/utxo/create-default-bigmi-config.js.map +0 -1
- package/dist/utxo/external-context.js.map +0 -1
- /package/dist/evm/{external-context.d.ts → provider/external-context.d.ts} +0 -0
- /package/dist/evm/{external-context.js → provider/external-context.js} +0 -0
- /package/dist/solana/{external-context.d.ts → provider/external-context.d.ts} +0 -0
- /package/dist/solana/{external-context.js → provider/external-context.js} +0 -0
- /package/dist/sui/{external-context.d.ts → provider/external-context.d.ts} +0 -0
- /package/dist/sui/{external-context.js → provider/external-context.js} +0 -0
- /package/dist/utxo/{external-context.d.ts → provider/external-context.d.ts} +0 -0
- /package/dist/utxo/{external-context.js → provider/external-context.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PropsWithChildren } from "react";
|
|
2
|
-
import { DefaultWagmiConfigProps } from "
|
|
2
|
+
import { DefaultWagmiConfigProps } from "../create-default-evm-config";
|
|
3
3
|
export declare function EVMBaseProvider({ children, config }: PropsWithChildren<{
|
|
4
4
|
config?: DefaultWagmiConfigProps;
|
|
5
5
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import { WagmiProvider } from "wagmi";
|
|
4
|
-
import { createDefaultEVMConfig } from "
|
|
4
|
+
import { createDefaultEVMConfig } from "../create-default-evm-config";
|
|
5
5
|
export function EVMBaseProvider({ children, config }) {
|
|
6
6
|
const evmConfig = useMemo(() => createDefaultEVMConfig(config), [JSON.stringify(config)]);
|
|
7
7
|
return (_jsx(WagmiProvider, { config: evmConfig.config, reconnectOnMount: false, children: children }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../../src/evm/provider/base-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAEL,sBAAsB,EACvB,MAAM,8BAA8B,CAAA;AAErC,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAEhD;IACA,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACzF,OAAO,CACL,KAAC,aAAa,IAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,YAC7D,QAAQ,GACK,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-context.js","sourceRoot":"","sources":["../../../src/evm/provider/external-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAU,KAAK,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DefaultWagmiConfigProps } from "../create-default-evm-config";
|
|
2
|
+
import { type PropsWithChildren } from "react";
|
|
3
|
+
export declare function useInWagmiContext(): boolean;
|
|
4
|
+
export declare function EVMProvider({ children, config }: PropsWithChildren<{
|
|
5
|
+
config?: DefaultWagmiConfigProps;
|
|
6
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { EVMExternalContext } from "./external-context";
|
|
3
|
+
import { EVMBaseProvider } from "./base-provider";
|
|
4
|
+
import { useConfig } from "wagmi";
|
|
5
|
+
export function useInWagmiContext() {
|
|
6
|
+
try {
|
|
7
|
+
const config = useConfig();
|
|
8
|
+
return Boolean(config);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function EVMProvider({ children, config }) {
|
|
15
|
+
const inWagmiContext = useInWagmiContext();
|
|
16
|
+
return inWagmiContext ? (_jsx(EVMExternalContext.Provider, { value: inWagmiContext, children: children })) : (_jsx(EVMBaseProvider, { config: config, children: children }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/evm/provider/provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,EAA2D;IACvG,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,OAAO,cAAc,CAAC,CAAC,CAAC,CACtB,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,cAAc,YAC/C,QAAQ,GACmB,CAC/B,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IAAC,MAAM,EAAE,MAAM,YAAG,QAAQ,GAAmB,CAC9D,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ExecuteTransaction } from "../types/transaction";
|
|
2
2
|
export declare function useEVMTransaction(): {
|
|
3
|
-
execute: (
|
|
3
|
+
execute: (params: ExecuteTransaction) => Promise<string>;
|
|
4
4
|
};
|
|
@@ -3,12 +3,11 @@ import { useSendTransaction, useWriteContract } from "wagmi";
|
|
|
3
3
|
export function useEVMTransaction() {
|
|
4
4
|
const { writeContractAsync } = useWriteContract();
|
|
5
5
|
const { sendTransactionAsync } = useSendTransaction();
|
|
6
|
-
const execute = async (
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const to =
|
|
10
|
-
|
|
11
|
-
if (isNative) {
|
|
6
|
+
const execute = async (params) => {
|
|
7
|
+
const { chainId, toAddress, amount, token } = params;
|
|
8
|
+
const value = BigInt(amount);
|
|
9
|
+
const to = toAddress;
|
|
10
|
+
if (!token) {
|
|
12
11
|
const tx = await sendTransactionAsync({
|
|
13
12
|
to,
|
|
14
13
|
value,
|
|
@@ -16,10 +15,9 @@ export function useEVMTransaction() {
|
|
|
16
15
|
});
|
|
17
16
|
return tx;
|
|
18
17
|
}
|
|
19
|
-
const contractAddress = paymentDetails.source_currency.address;
|
|
20
18
|
const tx = await writeContractAsync({
|
|
21
19
|
abi: erc20Abi,
|
|
22
|
-
address:
|
|
20
|
+
address: token.address,
|
|
23
21
|
functionName: "transfer",
|
|
24
22
|
chainId,
|
|
25
23
|
args: [to, value],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-evm-transaction.js","sourceRoot":"","sources":["../../src/evm/use-evm-transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-evm-transaction.js","sourceRoot":"","sources":["../../src/evm/use-evm-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG7D,MAAM,UAAU,iBAAiB;IAG7B,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAClD,MAAM,EAAE,oBAAoB,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEtD,MAAM,OAAO,GAAG,KAAK,EAAE,MAA0B,EAAE,EAAE;QACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;QAC5B,MAAM,EAAE,GAAG,SAAoB,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC;gBAClC,EAAE;gBACF,KAAK;gBACL,OAAO;aACV,CAAC,CAAC;YACH,OAAO,EAAY,CAAA;QACvB,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC;YAChC,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,KAAK,CAAC,OAAkB;YACjC,YAAY,EAAE,UAAU;YACxB,OAAO;YACP,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;SACpB,CAAC,CAAC;QACH,OAAO,EAAY,CAAA;IACvB,CAAC,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,CAAA;AACtB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { BaseConnector } from "../types/base-connector";
|
|
1
2
|
import { SignInWith } from "../types/sign-in-with";
|
|
2
|
-
|
|
3
|
-
export declare function useSignInWithEvm({ signIn, callbackUrl }: SignInWith): {
|
|
3
|
+
export declare function useSignInWithEvm({ signIn, onError, generateNonce }: SignInWith): {
|
|
4
4
|
onSelect: (id: string) => Promise<void>;
|
|
5
5
|
wallets: BaseConnector[];
|
|
6
6
|
};
|
|
@@ -1,46 +1,55 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { randomStringForEntropy } from "@stablelib/random";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { useAccount, useConnect, useConnectors, useSignMessage } from "wagmi";
|
|
2
4
|
import { isWalletInstalled } from "../lib/utils/is-wallet-installed";
|
|
3
5
|
import { toMessage } from "../lib/utils/message";
|
|
4
6
|
import { toBaseConnector } from "./utils";
|
|
5
|
-
export function useSignInWithEvm({ signIn,
|
|
6
|
-
const { address, connector } = useAccount();
|
|
7
|
+
export function useSignInWithEvm({ signIn, onError, generateNonce }) {
|
|
8
|
+
const { address, connector, isConnected } = useAccount();
|
|
7
9
|
const { connectAsync } = useConnect();
|
|
8
|
-
const connectors = useConnectors();
|
|
9
|
-
const wagmiConnectors = useConfig().connectors;
|
|
10
|
-
const wallets = Array.from(wagmiConnectors).filter((c) => isWalletInstalled(c.id)).map(toBaseConnector);
|
|
11
10
|
const { signMessageAsync } = useSignMessage();
|
|
12
|
-
const
|
|
11
|
+
const connectors = useConnectors();
|
|
12
|
+
const [wallets, setWallets] = useState([]);
|
|
13
|
+
const handleSignature = useCallback(async (address) => {
|
|
14
|
+
const nonce = generateNonce ? await generateNonce() : randomStringForEntropy(96);
|
|
13
15
|
const msg = {
|
|
14
16
|
domain: window.location.host,
|
|
15
17
|
address,
|
|
16
18
|
statement: "Sign in with Ethereum to CoinVoyage.io",
|
|
17
19
|
uri: window.location.origin,
|
|
18
|
-
nonce
|
|
20
|
+
nonce,
|
|
19
21
|
version: "1"
|
|
20
22
|
};
|
|
21
23
|
const message = toMessage(msg, "Ethereum");
|
|
22
|
-
const signature = await signMessageAsync({ message }
|
|
23
|
-
|
|
24
|
+
const signature = await signMessageAsync({ message }, {
|
|
25
|
+
onError
|
|
26
|
+
});
|
|
27
|
+
signIn({
|
|
24
28
|
address,
|
|
25
29
|
message,
|
|
26
30
|
domain: window.location.host,
|
|
27
31
|
signature,
|
|
28
|
-
callbackUrl: callbackUrl ?? "/"
|
|
29
32
|
});
|
|
30
|
-
};
|
|
31
|
-
|
|
33
|
+
}, [generateNonce, onError, signIn, signMessageAsync]);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const installedWallets = Array.from(connectors)
|
|
36
|
+
.filter((c) => isWalletInstalled(c.id))
|
|
37
|
+
.map(toBaseConnector);
|
|
38
|
+
setWallets(installedWallets);
|
|
39
|
+
}, [connectors]);
|
|
40
|
+
const onSelect = useCallback(async (id) => {
|
|
32
41
|
const selectedConnector = connectors.find((w) => w.id === id);
|
|
33
42
|
if (!selectedConnector)
|
|
34
43
|
return;
|
|
35
|
-
if (connector?.id === selectedConnector.id && address) {
|
|
36
|
-
handleSignature(address);
|
|
44
|
+
if (connector?.id === selectedConnector.id && isConnected && address) {
|
|
45
|
+
await handleSignature(address);
|
|
37
46
|
return;
|
|
38
47
|
}
|
|
39
48
|
const res = await connectAsync({ connector: selectedConnector });
|
|
40
49
|
if (!res.accounts[0])
|
|
41
50
|
return;
|
|
42
|
-
handleSignature(res.accounts[0]);
|
|
43
|
-
};
|
|
51
|
+
await handleSignature(res.accounts[0]);
|
|
52
|
+
}, [address, connector?.id, connectors, connectAsync, handleSignature, isConnected]);
|
|
44
53
|
return { onSelect, wallets };
|
|
45
54
|
}
|
|
46
55
|
//# sourceMappingURL=use-sign-in-with-evm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sign-in-with-evm.js","sourceRoot":"","sources":["../../src/evm/use-sign-in-with-evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"use-sign-in-with-evm.js","sourceRoot":"","sources":["../../src/evm/use-sign-in-with-evm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChainType } from "@coin-voyage/shared/common";
|
|
2
|
-
import {
|
|
2
|
+
import { ExecuteTransaction } from "../types/transaction";
|
|
3
3
|
export declare function usePrepareTransaction(chainType?: ChainType): {
|
|
4
|
-
execute: (
|
|
4
|
+
execute: (params: ExecuteTransaction) => Promise<string | undefined>;
|
|
5
5
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-prepare-transaction.js","sourceRoot":"","sources":["../../src/hooks/use-prepare-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-prepare-transaction.js","sourceRoot":"","sources":["../../src/hooks/use-prepare-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE,MAAM,UAAU,qBAAqB,CAAC,SAAqB;IAGzD,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAElC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,GAAG,CAAC;QACb,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,GAAG,CAAC;QACb,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,GAAG,CAAA;QACZ,KAAK,SAAS,CAAC,IAAI;YACjB,OAAO,IAAI,CAAA;QACb;YACE,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getNonceFromMessage(message: string): string | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-nonce-from-message.js","sourceRoot":"","sources":["../../../src/lib/utils/get-nonce-from-message.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { QueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { PropsWithChildren } from "react";
|
|
3
|
+
export declare const queryClient: QueryClient;
|
|
4
|
+
export declare const QueryExternalContext: import("react").Context<boolean>;
|
|
5
|
+
export declare function QueryProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { QueryClient, QueryClientContext, QueryClientProvider } from "@tanstack/react-query";
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
export const queryClient = new QueryClient({
|
|
5
|
+
defaultOptions: {
|
|
6
|
+
queries: {
|
|
7
|
+
enabled: true,
|
|
8
|
+
refetchInterval: false,
|
|
9
|
+
refetchIntervalInBackground: false,
|
|
10
|
+
refetchOnWindowFocus: true,
|
|
11
|
+
refetchOnReconnect: true,
|
|
12
|
+
refetchOnMount: true,
|
|
13
|
+
retryOnMount: true,
|
|
14
|
+
// suspense: true,
|
|
15
|
+
},
|
|
16
|
+
mutations: {
|
|
17
|
+
onError: (_error) => {
|
|
18
|
+
//
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
export const QueryExternalContext = createContext(false);
|
|
24
|
+
export function QueryProvider({ children }) {
|
|
25
|
+
const context = useContext(QueryClientContext);
|
|
26
|
+
const inContext = Boolean(context);
|
|
27
|
+
return inContext ? (_jsx(QueryExternalContext.Provider, { value: inContext, children: children })) : (_jsx(QueryClientProvider, { client: queryClient, children: children }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/query/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAErE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;IACzC,cAAc,EAAE;QACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,KAAK;YACtB,2BAA2B,EAAE,KAAK;YAClC,oBAAoB,EAAE,IAAI;YAC1B,kBAAkB,EAAE,IAAI;YACxB,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,IAAI;YAClB,kBAAkB;SACnB;QACD,SAAS,EAAE;YACT,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClB,EAAE;YACJ,CAAC;SACF;KACF;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAU,KAAK,CAAC,CAAC;AAElE,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAqB;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC,OAAO,SAAS,CAAC,CAAC,CAAC,CACjB,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,YAAG,QAAQ,GAAiC,CAC5F,CAAC,CAAC,CAAC,CACF,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YAAG,QAAQ,GAAuB,CAC3E,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Adapter, WalletName } from '@solana/wallet-adapter-base';
|
|
2
|
+
import { BaseSignInMessageSignerWalletAdapter, WalletReadyState } from '@solana/wallet-adapter-base';
|
|
3
|
+
import { type SolanaSignInInput, type SolanaSignInOutput } from '@solana/wallet-standard-features';
|
|
4
|
+
import type { Transaction, TransactionVersion, VersionedTransaction } from '@solana/web3.js';
|
|
5
|
+
export declare const PrivateKeyWalletName: WalletName<"PrivateKey Wallet">;
|
|
6
|
+
export type PrivateKeyWalletAdapter = {
|
|
7
|
+
adapter: Adapter & {};
|
|
8
|
+
readyState: WalletReadyState;
|
|
9
|
+
};
|
|
10
|
+
export declare class PrivateKeyWallet extends BaseSignInMessageSignerWalletAdapter {
|
|
11
|
+
name: WalletName<"PrivateKey Wallet">;
|
|
12
|
+
url: string;
|
|
13
|
+
icon: string;
|
|
14
|
+
supportedTransactionVersions: ReadonlySet<TransactionVersion>;
|
|
15
|
+
private _connecting;
|
|
16
|
+
private _keypair?;
|
|
17
|
+
constructor();
|
|
18
|
+
get connecting(): boolean;
|
|
19
|
+
get publicKey(): import("@solana/web3.js").PublicKey | null;
|
|
20
|
+
get readyState(): WalletReadyState;
|
|
21
|
+
injectSecretKey(secretKey: Uint8Array<ArrayBufferLike>): Promise<void>;
|
|
22
|
+
connect(): Promise<void>;
|
|
23
|
+
disconnect(): Promise<void>;
|
|
24
|
+
signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T>;
|
|
25
|
+
signMessage(message: Uint8Array): Promise<Uint8Array>;
|
|
26
|
+
signIn(input?: SolanaSignInInput): Promise<SolanaSignInOutput>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { sign } from '@noble/ed25519';
|
|
2
|
+
import { BaseSignInMessageSignerWalletAdapter, isVersionedTransaction, WalletNotConnectedError, WalletReadyState, } from '@solana/wallet-adapter-base';
|
|
3
|
+
import { createSignInMessage } from '@solana/wallet-standard-util';
|
|
4
|
+
import { Keypair } from '@solana/web3.js';
|
|
5
|
+
export const PrivateKeyWalletName = "PrivateKeyWallet";
|
|
6
|
+
export class PrivateKeyWallet extends BaseSignInMessageSignerWalletAdapter {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.name = PrivateKeyWalletName;
|
|
10
|
+
this.url = '';
|
|
11
|
+
this.icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzQiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNCAxMC42djIuN2wtOS41IDE2LjVoLTQuNmw2LTEwLjVhMi4xIDIuMSAwIDEgMCAyLTMuNGw0LjgtOC4zYTQgNCAwIDAgMSAxLjMgM1ptLTQuMyAxOS4xaC0uNmw0LjktOC40djQuMmMwIDIuMy0yIDQuMy00LjMgNC4zWm0yLTI4LjRjLS4zLS44LTEtMS4zLTItMS4zaC0xLjlsLTIuNCA0LjNIMzBsMS43LTNabS0zIDVoLTQuNkwxMC42IDI5LjhoNC43TDI4LjggNi40Wk0xOC43IDBoNC42bC0yLjUgNC4zaC00LjZMMTguNiAwWk0xNSA2LjRoNC42TDYgMjkuOEg0LjJjLS44IDAtMS43LS4zLTIuNC0uOEwxNSA2LjRaTTE0IDBIOS40TDcgNC4zaDQuNkwxNCAwWm0tMy42IDYuNEg1LjdMMCAxNi4ydjhMMTAuMyA2LjRaTTQuMyAwaC40TDAgOC4ydi00QzAgMiAxLjkgMCA0LjMgMFoiIGZpbGw9IiM5OTQ1RkYiLz48L3N2Zz4=';
|
|
12
|
+
this.supportedTransactionVersions = new Set(['legacy', 0]);
|
|
13
|
+
this._connecting = false;
|
|
14
|
+
}
|
|
15
|
+
get connecting() {
|
|
16
|
+
return this._connecting;
|
|
17
|
+
}
|
|
18
|
+
get publicKey() {
|
|
19
|
+
return this._keypair?.publicKey || null;
|
|
20
|
+
}
|
|
21
|
+
get readyState() {
|
|
22
|
+
return WalletReadyState.Loadable;
|
|
23
|
+
}
|
|
24
|
+
async injectSecretKey(secretKey) {
|
|
25
|
+
this._keypair = Keypair.fromSecretKey(new Uint8Array(Object.values(secretKey)));
|
|
26
|
+
}
|
|
27
|
+
async connect() {
|
|
28
|
+
if (this.connected || this.connecting)
|
|
29
|
+
return;
|
|
30
|
+
if (!this._keypair)
|
|
31
|
+
throw new Error("Secret key not set. Call `injectSecretKey()` first.");
|
|
32
|
+
this._connecting = true;
|
|
33
|
+
this.emit('connect', this._keypair.publicKey);
|
|
34
|
+
this._connecting = false;
|
|
35
|
+
}
|
|
36
|
+
async disconnect() {
|
|
37
|
+
this.emit('disconnect');
|
|
38
|
+
}
|
|
39
|
+
async signTransaction(transaction) {
|
|
40
|
+
if (!this._keypair)
|
|
41
|
+
throw new WalletNotConnectedError();
|
|
42
|
+
if (isVersionedTransaction(transaction)) {
|
|
43
|
+
transaction.sign([this._keypair]);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
transaction.partialSign(this._keypair);
|
|
47
|
+
}
|
|
48
|
+
return transaction;
|
|
49
|
+
}
|
|
50
|
+
async signMessage(message) {
|
|
51
|
+
if (!this._keypair)
|
|
52
|
+
throw new WalletNotConnectedError();
|
|
53
|
+
return sign(message, this._keypair.secretKey.slice(0, 32));
|
|
54
|
+
}
|
|
55
|
+
async signIn(input = {}) {
|
|
56
|
+
if (!this._keypair)
|
|
57
|
+
throw new WalletNotConnectedError();
|
|
58
|
+
const { publicKey, secretKey } = this._keypair;
|
|
59
|
+
const domain = input.domain || window.location.host;
|
|
60
|
+
const address = input.address || publicKey.toBase58();
|
|
61
|
+
const signedMessage = createSignInMessage({
|
|
62
|
+
...input,
|
|
63
|
+
domain,
|
|
64
|
+
address,
|
|
65
|
+
});
|
|
66
|
+
const signature = sign(signedMessage, secretKey.slice(0, 32));
|
|
67
|
+
this.emit('connect', publicKey);
|
|
68
|
+
return {
|
|
69
|
+
account: {
|
|
70
|
+
address,
|
|
71
|
+
publicKey: publicKey.toBytes(),
|
|
72
|
+
chains: [],
|
|
73
|
+
features: [],
|
|
74
|
+
},
|
|
75
|
+
signedMessage,
|
|
76
|
+
signature,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=private-key-wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-key-wallet.js","sourceRoot":"","sources":["../../src/solana/private-key-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EACH,oCAAoC,EACpC,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAqD,CAAC;AAO1F,MAAM,OAAO,gBAAiB,SAAQ,oCAAoC;IAStE;QACI,KAAK,EAAE,CAAC;QATZ,SAAI,GAAG,oBAAoB,CAAC;QAC5B,QAAG,GAAG,EAAE,CAAC;QACT,SAAI,GAAG,ouBAAouB,CAAC;QAC5uB,iCAA4B,GAAoC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAOnF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,UAAU;QACV,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAsC;QACxD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAE3F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,eAAe,CAA+C,WAAc;QAC9E,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;QAExD,IAAI,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAmB;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;QAExD,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAA2B,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACxD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAEtD,MAAM,aAAa,GAAG,mBAAmB,CAAC;YACtC,GAAG,KAAK;YACR,MAAM;YACN,OAAO;SACV,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEhC,OAAO;YACH,OAAO,EAAE;gBACL,OAAO;gBACP,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE;gBAC9B,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;aACf;YACD,aAAa;YACb,SAAS;SACZ,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PropsWithChildren } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { SolanaWalletConfiguration } from "../../types/wallet";
|
|
3
3
|
export declare function SolanaBaseProvider({ children, config }: PropsWithChildren<{
|
|
4
|
-
config?:
|
|
4
|
+
config?: SolanaWalletConfiguration;
|
|
5
5
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { CoinbaseWalletAdapter } from '@solana/wallet-adapter-coinbase';
|
|
2
3
|
import { ConnectionProvider, WalletProvider, } from "@solana/wallet-adapter-react";
|
|
3
4
|
import { useMemo } from "react";
|
|
4
5
|
const DEFAULT_SOLANA_RPC = "https://proportionate-light-research.solana-mainnet.quiknode.pro/139da87a36c1883d642064c0ebe64ba9819a98cf/";
|
|
5
|
-
const wallets = [];
|
|
6
|
+
const wallets = [new CoinbaseWalletAdapter()];
|
|
6
7
|
export function SolanaBaseProvider({ children, config }) {
|
|
7
8
|
const solanaConfig = useMemo(() => config, [JSON.stringify(config)]);
|
|
8
|
-
return (_jsx(ConnectionProvider, { endpoint: solanaConfig?.rpcUrl ?? DEFAULT_SOLANA_RPC, children: _jsx(WalletProvider, { ...solanaConfig?.walletConfiguration, autoConnect: solanaConfig?.walletConfiguration?.autoConnect || true, wallets: solanaConfig?.walletConfiguration?.wallets || wallets, children: children }) }));
|
|
9
|
+
return (_jsx(ConnectionProvider, { endpoint: solanaConfig?.rpcUrl ?? DEFAULT_SOLANA_RPC, children: _jsx(WalletProvider, { ...solanaConfig?.walletConfiguration, localStorageKey: solanaConfig?.walletConfiguration?.localStorageKey || "coin-voyage-widget-solana-wallet-connection", autoConnect: solanaConfig?.walletConfiguration?.autoConnect || true, wallets: [...solanaConfig?.walletConfiguration?.wallets || [], ...wallets], children: children }) }));
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=base-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../../src/solana/provider/base-provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EACL,kBAAkB,EAClB,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,OAAO,EAA0B,MAAM,OAAO,CAAA;AAGvD,MAAM,kBAAkB,GAAG,4GAA4G,CAAA;AAEvI,MAAM,OAAO,GAAc,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAA;AAExD,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAEnD;IACA,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACpE,OAAO,CACL,KAAC,kBAAkB,IAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,IAAI,kBAAkB,YACtE,KAAC,cAAc,OACT,YAAY,EAAE,mBAAmB,EACrC,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,IAAI,6CAA6C,EACpH,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,IAAI,IAAI,EACnE,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,mBAAmB,EAAE,OAAO,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,YAEzE,QAAQ,GACM,GACE,CACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-context.js","sourceRoot":"","sources":["../../../src/solana/provider/external-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAU,KAAK,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SolanaWalletConfiguration } from "@coin-voyage/crypto/types/wallet";
|
|
2
|
+
import { PropsWithChildren } from "react";
|
|
3
|
+
export declare function useInSolanaContext(): boolean;
|
|
4
|
+
export declare function SolanaProvider({ children, config }: PropsWithChildren<{
|
|
5
|
+
config?: SolanaWalletConfiguration;
|
|
6
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useConnection } from "@solana/wallet-adapter-react";
|
|
3
|
+
import { SolanaBaseProvider } from "./base-provider";
|
|
4
|
+
import { SolanaExternalContext } from "./external-context";
|
|
5
|
+
export function useInSolanaContext() {
|
|
6
|
+
try {
|
|
7
|
+
const externalSolanaContext = useConnection();
|
|
8
|
+
return Boolean(externalSolanaContext?.connection);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function SolanaProvider({ children, config }) {
|
|
15
|
+
const inSolanaContext = useInSolanaContext();
|
|
16
|
+
return inSolanaContext ? (_jsx(SolanaExternalContext.Provider, { value: inSolanaContext, children: children })) : (_jsx(SolanaBaseProvider, { config: config, children: children }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/solana/provider/provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,qBAAqB,GAAG,aAAa,EAAE,CAAA;QAC7C,OAAO,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAE/C;IACA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAA;IAC5C,OAAO,eAAe,CAAC,CAAC,CAAC,CACvB,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe,YACnD,QAAQ,GACsB,CAClC,CAAC,CAAC,CAAC,CACF,KAAC,kBAAkB,IAAC,MAAM,EAAE,MAAM,YAAG,QAAQ,GAAsB,CACpE,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ExecuteTransaction } from "../types/transaction";
|
|
2
2
|
export declare function useSolanaTransaction(): {
|
|
3
|
-
execute: (
|
|
3
|
+
execute: (params: ExecuteTransaction) => Promise<string | undefined>;
|
|
4
4
|
};
|
|
@@ -5,19 +5,20 @@ import { getOrCreateAssociatedTokenAccount } from "./get-or-create-ata";
|
|
|
5
5
|
export function useSolanaTransaction() {
|
|
6
6
|
const { connection } = useConnection();
|
|
7
7
|
const wallet = useWallet();
|
|
8
|
-
const execute = async (
|
|
8
|
+
const execute = async (params) => {
|
|
9
|
+
const { fromAddress, toAddress, amount, token } = params;
|
|
9
10
|
let transaction = new Transaction();
|
|
10
|
-
const
|
|
11
|
-
const
|
|
11
|
+
const senderPubKey = new PublicKey(fromAddress);
|
|
12
|
+
const receiverPubKey = new PublicKey(toAddress);
|
|
12
13
|
const instructions = [
|
|
13
14
|
// add priority fees
|
|
14
15
|
ComputeBudgetProgram.setComputeUnitPrice({
|
|
15
16
|
microLamports: 1000000
|
|
16
17
|
})
|
|
17
18
|
];
|
|
18
|
-
const value = BigInt(
|
|
19
|
+
const value = BigInt(amount);
|
|
19
20
|
// Native SOL transfer
|
|
20
|
-
if (!
|
|
21
|
+
if (!token) {
|
|
21
22
|
instructions.push(SystemProgram.transfer({
|
|
22
23
|
fromPubkey: senderPubKey,
|
|
23
24
|
toPubkey: receiverPubKey,
|
|
@@ -25,7 +26,7 @@ export function useSolanaTransaction() {
|
|
|
25
26
|
}));
|
|
26
27
|
}
|
|
27
28
|
else {
|
|
28
|
-
const mint = new PublicKey(
|
|
29
|
+
const mint = new PublicKey(token.address);
|
|
29
30
|
const payerAta = await getAssociatedTokenAddress(mint, senderPubKey, false);
|
|
30
31
|
const receiverAta = getAssociatedTokenAddressSync(mint, receiverPubKey, false);
|
|
31
32
|
const accountOrTransactionInstruction = await getOrCreateAssociatedTokenAccount(connection, senderPubKey, mint, receiverPubKey);
|
|
@@ -35,7 +36,7 @@ export function useSolanaTransaction() {
|
|
|
35
36
|
instructions.push(createTransferCheckedInstruction(payerAta, // from
|
|
36
37
|
mint, receiverAta, // to
|
|
37
38
|
senderPubKey, // from's owner
|
|
38
|
-
value,
|
|
39
|
+
value, token.decimals));
|
|
39
40
|
}
|
|
40
41
|
const { context: { slot: minContextSlot }, value: { blockhash } } = await connection.getLatestBlockhashAndContext();
|
|
41
42
|
transaction.recentBlockhash = blockhash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-solana-transaction.js","sourceRoot":"","sources":["../../src/solana/use-solana-transaction.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,aAAa,EACb,WAAW,EACX,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-solana-transaction.js","sourceRoot":"","sources":["../../src/solana/use-solana-transaction.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,aAAa,EACb,WAAW,EACX,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAGxE,MAAM,UAAU,oBAAoB;IAGlC,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,KAAK,EAAE,MAA0B,EAAE,EAAE;QACnD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzD,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAEpC,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,YAAY,GAA6B;YAC7C,oBAAoB;YACpB,oBAAoB,CAAC,mBAAmB,CAAC;gBACvC,aAAa,EAAE,OAAS;aACzB,CAAC;SACH,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7B,sBAAsB;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,YAAY,CAAC,IAAI,CACf,aAAa,CAAC,QAAQ,CAAC;gBACrB,UAAU,EAAE,YAAY;gBACxB,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE,KAAK;aAChB,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE1C,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,6BAA6B,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAE/E,MAAM,+BAA+B,GAAG,MAAM,iCAAiC,CAC7E,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,cAAc,CACf,CAAC;YACF,IAAI,+BAA+B,YAAY,sBAAsB,EAAE,CAAC;gBACtE,YAAY,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACrD,CAAC;YAED,YAAY,CAAC,IAAI,CACf,gCAAgC,CAC9B,QAAQ,EAAE,OAAO;YACjB,IAAI,EACJ,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,eAAe;YAC7B,KAAK,EACL,KAAK,CAAC,QAAQ,CACf,CACF,CAAC;QACJ,CAAC;QAED,MAAM,EACJ,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EACjC,KAAK,EAAE,EAAE,SAAS,EAAE,EACrB,GAAG,MAAM,UAAU,CAAC,4BAA4B,EAAE,CAAC;QAEpD,WAAW,CAAC,eAAe,GAAG,SAAS,CAAC;QACxC,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC;QAExC,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE;YAC3D,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,IAAI;YACnB,cAAc;SACf,CAAC,CAAC;IACL,CAAC,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PropsWithChildren } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { SuiWalletConfiguration } from "../../types/wallet";
|
|
3
3
|
export declare function SuiBaseProvider({ children, config }: PropsWithChildren<{
|
|
4
|
-
config?:
|
|
4
|
+
config?: SuiWalletConfiguration;
|
|
5
5
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,6 +6,6 @@ export function SuiBaseProvider({ children, config }) {
|
|
|
6
6
|
return (_jsx(SuiClientProvider, { networks: {
|
|
7
7
|
mainnet: { url: config?.rpcUrl ?? "https://fullnode.mainnet.sui.io:443" },
|
|
8
8
|
devnet: { url: "https://fullnode.devnet.sui.io:443" },
|
|
9
|
-
}, defaultNetwork: "mainnet", children: _jsx(WalletProvider, { ...suiConfig?.walletConfiguration, autoConnect: suiConfig?.walletConfiguration?.autoConnect || true, children: children }) }));
|
|
9
|
+
}, defaultNetwork: "mainnet", children: _jsx(WalletProvider, { ...suiConfig?.walletConfiguration, storageKey: suiConfig?.walletConfiguration?.storageKey || "coin-voyage-widget-sui-wallet-connection", autoConnect: suiConfig?.walletConfiguration?.autoConnect || true, children: children }) }));
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=base-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../../src/sui/provider/base-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,OAAO,EAA0B,MAAM,OAAO,CAAA;AAGvD,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAEhD;IACA,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACjE,OAAO,CACL,KAAC,iBAAiB,IAChB,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,qCAAqC,EAAE;YACzE,MAAM,EAAE,EAAE,GAAG,EAAE,oCAAoC,EAAE;SACtD,EACD,cAAc,EAAC,SAAS,YAExB,KAAC,cAAc,OACT,SAAS,EAAE,mBAAmB,EAClC,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,IAAI,0CAA0C,EACpG,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,IAAI,IAAI,YAChE,QAAQ,GAAkB,GACV,CACrB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-context.js","sourceRoot":"","sources":["../../../src/sui/provider/external-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAU,KAAK,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SuiWalletConfiguration } from "@coin-voyage/crypto/types/wallet";
|
|
2
|
+
import { PropsWithChildren } from "react";
|
|
3
|
+
export declare function useInSuiContext(): boolean;
|
|
4
|
+
export declare function SuiProvider({ children, config }: PropsWithChildren<{
|
|
5
|
+
config?: SuiWalletConfiguration;
|
|
6
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useSuiClientContext } from "@mysten/dapp-kit";
|
|
3
|
+
import { SuiBaseProvider } from "./base-provider";
|
|
4
|
+
import { SuiExternalContext } from "./external-context";
|
|
5
|
+
export function useInSuiContext() {
|
|
6
|
+
try {
|
|
7
|
+
const externalSuiContext = useSuiClientContext();
|
|
8
|
+
return Boolean(externalSuiContext.config);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function SuiProvider({ children, config }) {
|
|
15
|
+
const inSUIContext = useInSuiContext();
|
|
16
|
+
return inSUIContext ? (_jsx(SuiExternalContext.Provider, { value: inSUIContext, children: children })) : (_jsx(SuiBaseProvider, { config: config, children: children }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/sui/provider/provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,mBAAmB,EAAE,CAAA;QAChD,OAAO,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,EAE5C;IACA,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,OAAO,YAAY,CAAC,CAAC,CAAC,CACpB,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC7C,QAAQ,GACmB,CAC/B,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IAAC,MAAM,EAAE,MAAM,YAAG,QAAQ,GAAmB,CAC9D,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { WalletProviderProps } from "@mysten/dapp-kit";
|
|
2
|
+
import { PropsWithChildren } from "react";
|
|
3
|
+
export declare function useInSuiContext(): boolean;
|
|
4
|
+
export declare function SuiProvider({ children, config }: PropsWithChildren<{
|
|
5
|
+
config?: {
|
|
6
|
+
rpcUrl?: string;
|
|
7
|
+
walletConfiguration?: WalletProviderProps;
|
|
8
|
+
};
|
|
9
|
+
}>): import("react/jsx-runtime").JSX.Element;
|