@mysten/sui
Version:
Sui TypeScript API
67 lines (53 loc) • 2 kB
Markdown
> Migration guide for wallet extension developers
This guide covers the breaking changes for wallet builders implementing the
`@mysten/wallet-standard` interface.
The `sui:reportTransactionEffects` feature has been removed entirely. If your wallet implements this
feature, remove it.
The most significant change is how you obtain BCS-encoded effects for the
`signAndExecuteTransaction` response. The new core API returns effects in a different structure.
The wallet standard output format hasn't changed - what's different is how you obtain the BCS
effects when using the new Sui client APIs.
```diff
transaction,
signal,
}) => {
- const { bytes, signature } = await Transaction.from(
- await transaction.toJSON(),
- ).sign({ client: suiClient, signer: keypair });
-
- const { rawEffects, digest } = await suiClient.executeTransactionBlock({
- signature,
- transactionBlock: bytes,
- options: { showRawEffects: true },
- });
+ const parsedTransaction = Transaction.from(await transaction.toJSON());
+ const bytes = await parsedTransaction.build({ client });
+
+ const result = await this.
+ transaction: parsedTransaction,
+ client,
+ });
+
+ const tx = result.Transaction ?? result.FailedTransaction;
return {
- bytes,
- signature,
- digest,
- effects: toBase64(new Uint8Array(rawEffects!)),
+ bytes: toBase64(bytes),
+ signature: tx.signatures[0],
+ digest: tx.digest,
+ effects: toBase64(tx.effects.bcs!),
};
};
```
Key changes:
- Use `signer.signAndExecuteTransaction()` instead of `suiClient.executeTransactionBlock()`
- Response is a union type - unwrap with `result.Transaction ?? result.FailedTransaction`
- BCS effects are in `tx.effects.bcs` (Uint8Array) instead of `rawEffects` (number array)