-
Notifications
You must be signed in to change notification settings - Fork 1
Description
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
Assignees
Labels
No labels