From 53637aba001b7b2c24669edb686b82bef2cf40b2 Mon Sep 17 00:00:00 2001 From: lalitcap23 Date: Sat, 13 Sep 2025 23:13:44 +0530 Subject: [PATCH 1/2] fix(types): remove @ts-ignore with proper type annotations --- packages/gill/src/core/create-solana-client.ts | 9 +++------ .../core/send-and-confirm-transaction-with-signers.ts | 6 ++++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/gill/src/core/create-solana-client.ts b/packages/gill/src/core/create-solana-client.ts index c654a6b8..2665b500 100644 --- a/packages/gill/src/core/create-solana-client.ts +++ b/packages/gill/src/core/create-solana-client.ts @@ -77,12 +77,9 @@ export function createSolanaClient({ rpc, rpcSubscriptions, sendAndConfirmTransaction: sendAndConfirmTransactionWithSignersFactory({ - // @ts-ignore - TODO(FIXME:nick) - rpc, - // @ts-ignore - TODO(FIXME:nick) - rpcSubscriptions, + rpc: rpc as any, + rpcSubscriptions: rpcSubscriptions as any, }), - // @ts-ignore - simulateTransaction: simulateTransactionFactory({ rpc }), + simulateTransaction: simulateTransactionFactory({ rpc: rpc as any }), }; } diff --git a/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts b/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts index 09270fb2..a8deb6c1 100644 --- a/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts +++ b/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts @@ -87,8 +87,10 @@ export function sendAndConfirmTransactionWithSignersFactory< rpc, rpcSubscriptions, }: SendAndConfirmTransactionWithSignersFactoryConfig): SendAndConfirmTransactionWithSignersFunction { - // @ts-ignore - TODO(FIXME) - const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ rpc, rpcSubscriptions }); + const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ + rpc: rpc as Rpc, + rpcSubscriptions: rpcSubscriptions as RpcSubscriptions, + }); return async function sendAndConfirmTransactionWithSigners(transaction, config = { commitment: "confirmed" }) { if ("messageBytes" in transaction == false) { if ("lifetimeConstraint" in transaction === false) { From 29509f1de9fa855e4a680b2bda6bccd914f92e3d Mon Sep 17 00:00:00 2001 From: lalitcap23 Date: Mon, 15 Sep 2025 00:11:20 +0530 Subject: [PATCH 2/2] fix: simplify factory type interfaces to resolve TS errors Removed @ts-ignore by fixing the root cause. factory functions were using overly complex cluster generics. Since they only require specific RPC API interfaces. --- packages/gill/src/anchor-node/index.ts | 0 packages/gill/src/anchor-node/program.ts | 0 packages/gill/src/anchor-node/types.ts | 0 packages/gill/src/anchor-node/utils.ts | 0 .../gill/src/core/create-solana-client.ts | 6 ++-- ...nd-and-confirm-transaction-with-signers.ts | 34 ++++--------------- .../gill/src/core/simulate-transaction.ts | 22 ++---------- 7 files changed, 12 insertions(+), 50 deletions(-) create mode 100644 packages/gill/src/anchor-node/index.ts create mode 100644 packages/gill/src/anchor-node/program.ts create mode 100644 packages/gill/src/anchor-node/types.ts create mode 100644 packages/gill/src/anchor-node/utils.ts diff --git a/packages/gill/src/anchor-node/index.ts b/packages/gill/src/anchor-node/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/gill/src/anchor-node/program.ts b/packages/gill/src/anchor-node/program.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/gill/src/anchor-node/types.ts b/packages/gill/src/anchor-node/types.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/gill/src/anchor-node/utils.ts b/packages/gill/src/anchor-node/utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/gill/src/core/create-solana-client.ts b/packages/gill/src/core/create-solana-client.ts index 2665b500..81bcba86 100644 --- a/packages/gill/src/core/create-solana-client.ts +++ b/packages/gill/src/core/create-solana-client.ts @@ -77,9 +77,9 @@ export function createSolanaClient({ rpc, rpcSubscriptions, sendAndConfirmTransaction: sendAndConfirmTransactionWithSignersFactory({ - rpc: rpc as any, - rpcSubscriptions: rpcSubscriptions as any, + rpc, + rpcSubscriptions, }), - simulateTransaction: simulateTransactionFactory({ rpc: rpc as any }), + simulateTransaction: simulateTransactionFactory({ rpc }), }; } diff --git a/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts b/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts index a8deb6c1..7a27414b 100644 --- a/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts +++ b/packages/gill/src/core/send-and-confirm-transaction-with-signers.ts @@ -56,40 +56,18 @@ export type SendAndConfirmTransactionWithSignersFunction = ( >, ) => Promise; -type SendAndConfirmTransactionWithSignersFactoryConfig = { - rpc: Rpc & { - "~cluster"?: TCluster; - }; - rpcSubscriptions: RpcSubscriptions & { - "~cluster"?: TCluster; - }; +type SendAndConfirmTransactionWithSignersFactoryConfig = { + rpc: Rpc; + rpcSubscriptions: RpcSubscriptions; }; export function sendAndConfirmTransactionWithSignersFactory({ rpc, rpcSubscriptions, -}: SendAndConfirmTransactionWithSignersFactoryConfig<"devnet">): SendAndConfirmTransactionWithSignersFunction; -export function sendAndConfirmTransactionWithSignersFactory({ - rpc, - rpcSubscriptions, -}: SendAndConfirmTransactionWithSignersFactoryConfig<"testnet">): SendAndConfirmTransactionWithSignersFunction; -export function sendAndConfirmTransactionWithSignersFactory({ - rpc, - rpcSubscriptions, -}: SendAndConfirmTransactionWithSignersFactoryConfig<"mainnet">): SendAndConfirmTransactionWithSignersFunction; -export function sendAndConfirmTransactionWithSignersFactory({ - rpc, - rpcSubscriptions, -}: SendAndConfirmTransactionWithSignersFactoryConfig<"localnet">): SendAndConfirmTransactionWithSignersFunction; -export function sendAndConfirmTransactionWithSignersFactory< - TCluster extends "devnet" | "mainnet" | "testnet" | "localnet" | undefined = undefined, ->({ - rpc, - rpcSubscriptions, -}: SendAndConfirmTransactionWithSignersFactoryConfig): SendAndConfirmTransactionWithSignersFunction { +}: SendAndConfirmTransactionWithSignersFactoryConfig): SendAndConfirmTransactionWithSignersFunction { const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ - rpc: rpc as Rpc, - rpcSubscriptions: rpcSubscriptions as RpcSubscriptions, + rpc, + rpcSubscriptions, }); return async function sendAndConfirmTransactionWithSigners(transaction, config = { commitment: "confirmed" }) { if ("messageBytes" in transaction == false) { diff --git a/packages/gill/src/core/simulate-transaction.ts b/packages/gill/src/core/simulate-transaction.ts index 4817a0c1..47eb1486 100644 --- a/packages/gill/src/core/simulate-transaction.ts +++ b/packages/gill/src/core/simulate-transaction.ts @@ -7,27 +7,11 @@ export type SimulateTransactionFunction = ( config?: Simplify[1], "encoding" | "sigVerify">>, ) => Promise>; -type SimulateTransactionFactoryConfig = { - rpc: Rpc & { - "~cluster"?: TCluster; - }; +type SimulateTransactionFactoryConfig = { + rpc: Rpc; }; -export function simulateTransactionFactory({ - rpc, -}: SimulateTransactionFactoryConfig<"devnet">): SimulateTransactionFunction; -export function simulateTransactionFactory({ - rpc, -}: SimulateTransactionFactoryConfig<"testnet">): SimulateTransactionFunction; -export function simulateTransactionFactory({ - rpc, -}: SimulateTransactionFactoryConfig<"mainnet">): SimulateTransactionFunction; -export function simulateTransactionFactory({ - rpc, -}: SimulateTransactionFactoryConfig<"localnet">): SimulateTransactionFunction; -export function simulateTransactionFactory< - TCluster extends "devnet" | "mainnet" | "testnet" | "localnet" | void = void, ->({ rpc }: SimulateTransactionFactoryConfig): SimulateTransactionFunction { +export function simulateTransactionFactory({ rpc }: SimulateTransactionFactoryConfig): SimulateTransactionFunction { return async function simulateTransaction(transaction, config) { if ("messageBytes" in transaction == false) { transaction = await partiallySignTransactionMessageWithSigners(transaction);