Skip to content

feat(sdk): Add Solana interface wallet support #75

@FezBox

Description

@FezBox

What needs to be done

Solana wallet provider needs to be abstracted aways as an interface (e.g. ISolanaWalletProvider) so that xWagmi is able to implement it whilst Sodax SDK merely invoke the appropriate functions (see IEvmWalletProvider as an example).

Steps:

  • add ISolanaWalletProvider inside interfaces.ts
  • replace SolanaWalletProvider in IWalletProvider (Providers.ts) with ISolanaWalletProvider
  • replace SolanaWalletProvider in SolanaSpokeProvider (SolanaSpokeProvider.ts) with ISolanaWalletProvider
  • revise all functions invoking SolanaWalletProvider to now invoke ISolanaWalletProvider functions
  • cleanup SolanaWalletProvider dependencies (libraries used, unused code, etc..)
  • make sure that wallet provider interface only uses raw types adhering to the official JSON-RPC Spec. Interface should not depend on types other than the plain types defined in Sodax SDK (see IEvmWalletProvider example)!
  • implement SolanaWalletProvider implementing ISolanaWalletProvider inside ./apps/node/src/wallet-providers.ts (or in separate TS file if it gets too big)
  • refactor ./apps/node/src/solana.ts to use new SolanaWalletProvider class instance

Checkout IEvmWalletProvider and its usage as an example how we've moved viem based evm wallet provider to be interfaced throughout the SDK.

Why it needs to be done

This needs to be done so that Sodax SDK does not have direct Solana
wallet dependency, but merely exposes interfaces required.

Acceptance Criteria

All solana wallet related invocations needs to be interfaced.

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions