Skip to content

Commit 8197b3c

Browse files
gregfromstljnsdls
andauthored
[SDK] Adds serializeTransaction function (#2760)
Co-authored-by: Jonas Daniels <jonas.daniels@outlook.com>
1 parent 65e4ddc commit 8197b3c

File tree

8 files changed

+1138
-3
lines changed

8 files changed

+1138
-3
lines changed

.changeset/gold-jokes-rule.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"thirdweb": minor
3+
---
4+
5+
Adds serializeTransaction and updates sign return object to include yParity

packages/thirdweb/src/exports/thirdweb.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ export {
113113
} from "../transaction/actions/simulate.js";
114114
export { waitForReceipt } from "../transaction/actions/wait-for-tx-receipt.js";
115115
export { signTransaction } from "../transaction/actions/sign-transaction.js";
116+
export { serializeTransaction } from "../transaction/serialize-transaction.js";
116117

117118
/**
118119
* EVENTS

packages/thirdweb/src/exports/transaction.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ export {
4747
signTransaction,
4848
type SignTransactionOptions,
4949
} from "../transaction/actions/sign-transaction.js";
50+
export {
51+
serializeTransaction,
52+
type SerializeTransactionOptions,
53+
} from "../transaction/serialize-transaction.js";
5054

5155
//types & utils
5256
export {

packages/thirdweb/src/transaction/actions/sign-transaction.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { type TransactionSerializable, serializeTransaction } from "viem";
1+
import type { TransactionSerializable } from "viem";
22
import type { Hex } from "../../utils/encoding/hex.js";
33
import { keccak256 } from "../../utils/hashing/keccak256.js";
44
import { sign } from "../../utils/signatures/sign.js";
5+
import { serializeTransaction } from "../serialize-transaction.js";
56

67
export type SignTransactionOptions = {
78
transaction: TransactionSerializable;
@@ -34,11 +35,13 @@ export function signTransaction({
3435
transaction = { ...transaction, sidecars: false };
3536
}
3637

37-
const serializedTransaction = serializeTransaction(transaction);
38+
const serializedTransaction = serializeTransaction({ transaction });
3839

3940
const signature = sign({
4041
hash: keccak256(serializedTransaction),
4142
privateKey: privateKey,
4243
});
43-
return serializeTransaction(transaction, signature);
44+
return serializeTransaction({
45+
transaction: { ...transaction, ...signature },
46+
});
4447
}

0 commit comments

Comments
 (0)