diff --git a/ts/sdk/README.md b/ts/sdk/README.md index b70dd559..829c5f00 100644 --- a/ts/sdk/README.md +++ b/ts/sdk/README.md @@ -32,7 +32,7 @@ import { BluefinRequestSigner, makeSigner, } from "@bluefin-exchange/pro-sdk"; -import { SuiJsonRpcClient } from "@mysten/sui/jsonRpc"; +import { SuiGrpcClient } from "@mysten/sui/grpc"; import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; import { hexToBytes } from "@noble/hashes/utils.js"; @@ -51,13 +51,17 @@ const signer = new BluefinRequestSigner(makeSigner(wallet, false)); const client = new BluefinProSdk( signer, "mainnet", // or "testnet" for staging, "devnet" for development - new SuiJsonRpcClient({ url: "https://fullnode.mainnet.sui.io:443", network: "mainnet" }) + new SuiGrpcClient({ network: "mainnet", baseUrl: "https://fullnode.mainnet.sui.io:443" }) ); // Initialize the SDK (authenticates and loads exchange configuration) await client.initialize(); ``` +> The SDK accepts any `@mysten/sui` client implementing the Core API. Use +> `SuiGrpcClient` — Sui's JSON-RPC interface is deprecated. If you are upgrading from +> `SuiJsonRpcClient`, swapping the client is the only change required. + ### 2. Get Market Data ```typescript diff --git a/ts/sdk/docs/batch-claim-rewards-guide.md b/ts/sdk/docs/batch-claim-rewards-guide.md index e2b2e58d..a33c167a 100644 --- a/ts/sdk/docs/batch-claim-rewards-guide.md +++ b/ts/sdk/docs/batch-claim-rewards-guide.md @@ -21,7 +21,7 @@ import { makeSigner, BatchClaimParams } from "@bluefin-exchange/pro-sdk"; -import { SuiJsonRpcClient } from "@mysten/sui/jsonRpc"; +import { SuiGrpcClient } from "@mysten/sui/grpc"; import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; // Create wallet from private key or mnemonic @@ -34,7 +34,7 @@ const signer = new BluefinRequestSigner(makeSigner(wallet, false)); const sdk = new BluefinProSdk( signer, "mainnet", // or "testnet" for staging - new SuiJsonRpcClient({ url: "https://fullnode.mainnet.sui.io:443", network: "mainnet" }) + new SuiGrpcClient({ network: "mainnet", baseUrl: "https://fullnode.mainnet.sui.io:443" }) ); await sdk.initialize(); @@ -130,7 +130,7 @@ import { makeSigner, BatchClaimParams } from "@bluefin-exchange/pro-sdk"; -import { SuiJsonRpcClient } from "@mysten/sui/jsonRpc"; +import { SuiGrpcClient } from "@mysten/sui/grpc"; import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; import { hexToBytes } from "@noble/hashes/utils.js"; @@ -141,7 +141,7 @@ async function claimRewards() { const sdk = new BluefinProSdk( signer, "mainnet", - new SuiJsonRpcClient({ url: "https://fullnode.mainnet.sui.io:443", network: "mainnet" }) + new SuiGrpcClient({ network: "mainnet", baseUrl: "https://fullnode.mainnet.sui.io:443" }) ); await sdk.initialize(); diff --git a/ts/sdk/example.ts b/ts/sdk/example.ts index 630e763e..dbaeb13d 100644 --- a/ts/sdk/example.ts +++ b/ts/sdk/example.ts @@ -22,7 +22,7 @@ import { } from "./index.js"; import { hexToBytes } from "@noble/hashes/utils.js"; -import { SuiJsonRpcClient } from "@mysten/sui/jsonRpc"; +import { SuiGrpcClient } from "@mysten/sui/grpc"; import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; // Configure logging @@ -114,7 +114,7 @@ async function main() { const client = new BluefinProSdk( bfSigner, "testnet", - new SuiJsonRpcClient({ url: "https://fullnode.testnet.sui.io:443", network: "testnet" }) + new SuiGrpcClient({ network: "testnet", baseUrl: "https://fullnode.testnet.sui.io:443" }) ); await client.initialize(); @@ -123,7 +123,7 @@ async function main() { // const clientWithTimeOffset = new BluefinProSdk( // bfSigner, // "testnet", - // new SuiJsonRpcClient({ url: "https://fullnode.testnet.sui.io:443", network: "testnet" }), + // new SuiGrpcClient({ network: "testnet", baseUrl: "https://fullnode.testnet.sui.io:443" }), // { currentTimeMs: customTime } // ); // await clientWithTimeOffset.initialize(); diff --git a/ts/sdk/src/request-signer.ts b/ts/sdk/src/request-signer.ts index 4c33289e..532d63ab 100644 --- a/ts/sdk/src/request-signer.ts +++ b/ts/sdk/src/request-signer.ts @@ -6,9 +6,9 @@ import { } from '@mysten/sui/cryptography'; import type { DryRunTransactionBlockResponse, - SuiClient, SuiTransactionBlockResponse, } from '@firefly-exchange/library-sui'; +import type { ClientWithCoreApi } from '@mysten/sui/client'; import type { Transaction as TransactionBlock } from '@mysten/sui/transactions'; import { LoginRequest, @@ -47,17 +47,17 @@ export interface IBluefinSigner extends ISigner { signLoginRequest: (request: LoginRequest) => Promise; signTx: ( txb: TransactionBlock, - suiClient: SuiClient, + suiClient: ClientWithCoreApi, ) => Promise; executeSponsoredTx: ( txBytes: string, userSignature: string, sponsorSignature: string, - suiClient: SuiClient, + suiClient: ClientWithCoreApi, ) => Promise; executeTx: ( txb: TransactionBlock, - suiClient: SuiClient, + suiClient: ClientWithCoreApi, ) => Promise; } @@ -402,7 +402,7 @@ export class BluefinRequestSigner implements IBluefinSigner { return signedMessageSerialized.signature; } - async signTx(txb: TransactionBlock, suiClient: SuiClient) { + async signTx(txb: TransactionBlock, suiClient: ClientWithCoreApi) { const SuiBlocks = await loadSuiBlocks(); return await SuiBlocks.buildAndSignTxBlock( txb, @@ -416,7 +416,7 @@ export class BluefinRequestSigner implements IBluefinSigner { txBytes: string, userSignature: string, sponsorSignature: string, - suiClient: SuiClient, + suiClient: ClientWithCoreApi, ) { const SuiBlocks = await loadSuiBlocks(); return SuiBlocks.executeSponsoredTxBlock( @@ -427,7 +427,7 @@ export class BluefinRequestSigner implements IBluefinSigner { ); } - async executeTx(txb: TransactionBlock, suiClient: SuiClient) { + async executeTx(txb: TransactionBlock, suiClient: ClientWithCoreApi) { const SuiBlocks = await loadSuiBlocks(); return SuiBlocks.execCall( txb, diff --git a/ts/sdk/src/sdk.ts b/ts/sdk/src/sdk.ts index a836f806..65ab2b76 100644 --- a/ts/sdk/src/sdk.ts +++ b/ts/sdk/src/sdk.ts @@ -902,7 +902,7 @@ export class BluefinProSdk { const { RewardsDistributorInteractor } = await loadRewardsDistributorInteractor(); const interactor = new RewardsDistributorInteractor( - this.suiClient as any, + this.suiClient, data as any, signer, this.bfSigner.isUIWallet(),