Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions packages/wallet-extensions/src/ctrl/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ export const ctrlWallet = createWallet({
Chain.Litecoin,
Chain.Maya,
Chain.Monad,
Chain.Near,
Chain.Noble,
Chain.Optimism,
Chain.Polygon,
Expand Down Expand Up @@ -153,36 +152,6 @@ async function getWalletMethods(chain: (typeof CTRL_SUPPORTED_CHAINS)[number]) {
return prepareNetworkSwitch({ chain, provider, toolbox });
}

case Chain.Near: {
const provider = getCtrlProvider(chain);

if (!provider) {
throw new SwapKitError("wallet_ctrl_not_found", { chain: Chain.Near });
}

const { createNearSignerFromProvider } = await import("../helpers/near");
const { getNearToolbox } = await import("@swapkit-dev/toolboxes/near");

const signer = await createNearSignerFromProvider(provider, "CTRL");
const accountId = await signer.getAddress();
const toolbox = await getNearToolbox({ signer });

const transfer = async (params: GenericTransferParams) => {
const { actionCreators } = await import("@near-js/transactions");

const amountInYocto = params.assetValue.getBaseValue("string");
const action = actionCreators.transfer(BigInt(amountInYocto));

const transaction = { actions: [action], receiverId: params.recipient, signerId: accountId };

const txHash: string = await provider.request({ method: "signAndSendTransaction", params: { transaction } });

return txHash;
};

return { ...toolbox, transfer };
}

default:
return null;
}
Expand Down
19 changes: 1 addition & 18 deletions packages/wallet-extensions/src/ctrl/walletHelpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import {
import type { SolanaProvider } from "@swapkit-dev/toolboxes/solana";
import type { Eip1193Provider } from "ethers";
import { match } from "ts-pattern";
import type { NearBrowserWalletProvider } from "../helpers/near";

type TransactionMethod = "transfer" | "deposit";

Expand All @@ -42,9 +41,7 @@ type CtrlProviderType<T> = T extends typeof Chain.Solana
? Keplr
: T extends EVMChain
? Eip1193Provider
: T extends typeof Chain.Near
? NearBrowserWalletProvider
: undefined;
: undefined;

export function getCtrlProvider<T extends Chain>(chain: T): CtrlProviderType<T> {
if (!window.ctrl) throw new SwapKitError("wallet_ctrl_not_found");
Expand All @@ -60,7 +57,6 @@ export function getCtrlProvider<T extends Chain>(chain: T): CtrlProviderType<T>
.with(Chain.Solana, () => window.ctrl?.solana)
.with(Chain.THORChain, () => window.ctrl?.thorchain)
.with(Chain.Maya, () => window.ctrl?.mayachain)
.with(Chain.Near, () => window.ctrl?.near)
.otherwise(() => undefined);
}

Expand Down Expand Up @@ -129,19 +125,6 @@ export async function getCtrlAddress(chain: Chain) {
return accounts.publicKey.toString();
}

if (chain === Chain.Near) {
if (!window.ctrl?.near) {
throw new SwapKitError("wallet_ctrl_not_found", { chain: Chain.Near });
}

if (!window.ctrl.near.isSignedIn?.()) {
const result = await window.ctrl.near.request<string[]>?.({ method: "connect" });
return result?.[0] || "";
}

return window.ctrl.near.getAccountId?.() || "";
}

const accounts = await eipProvider.request({ method: "request_accounts", params: [] });
return accounts[0];
} catch {
Expand Down