Skip to content

Commit 8f5983d

Browse files
TD-1047 Use chainId in TXNs (#1137)
Signed-off-by: Frank Li <[email protected]>
1 parent 5ae3e30 commit 8f5983d

File tree

3 files changed

+32
-6
lines changed

3 files changed

+32
-6
lines changed

packages/orderbook/src/seaport/seaport.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,11 @@ describe('Seaport', () => {
420420
const mockedSeaportJs = mock(SeaportLib);
421421
const mockedSeaportLibFactory = mock(SeaportLibFactory);
422422
const mockedProvider = mock(providers.JsonRpcProvider);
423+
when(mockedProvider.getNetwork()).thenReturn(
424+
Promise.resolve({
425+
chainId: 0,
426+
} as any),
427+
);
423428

424429
const exchangeTransactionMethods = mock<TransactionMethods<boolean>>();
425430
const exchangeAction = mock<ExchangeAction<any>>();

packages/orderbook/src/seaport/seaport.ts

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,10 @@ export class Seaport {
6767
listingActions.push({
6868
type: ActionType.TRANSACTION,
6969
purpose: TransactionPurpose.APPROVAL,
70-
buildTransaction: prepareTransaction(approvalAction.transactionMethods),
70+
buildTransaction: prepareTransaction(
71+
approvalAction.transactionMethods,
72+
(await this.provider.getNetwork()).chainId,
73+
),
7174
});
7275
}
7376

@@ -126,7 +129,10 @@ export class Seaport {
126129
if (approvalAction) {
127130
fulfillmentActions.push({
128131
type: ActionType.TRANSACTION,
129-
buildTransaction: prepareTransaction(approvalAction.transactionMethods),
132+
buildTransaction: prepareTransaction(
133+
approvalAction.transactionMethods,
134+
(await this.provider.getNetwork()).chainId,
135+
),
130136
purpose: TransactionPurpose.APPROVAL,
131137
});
132138
}
@@ -141,7 +147,10 @@ export class Seaport {
141147

142148
fulfillmentActions.push({
143149
type: ActionType.TRANSACTION,
144-
buildTransaction: prepareTransaction(fulfilOrderAction.transactionMethods),
150+
buildTransaction: prepareTransaction(
151+
fulfilOrderAction.transactionMethods,
152+
(await this.provider.getNetwork()).chainId,
153+
),
145154
purpose: TransactionPurpose.FULFILL_ORDER,
146155
});
147156

@@ -186,7 +195,10 @@ export class Seaport {
186195
if (approvalAction) {
187196
fulfillmentActions.push({
188197
type: ActionType.TRANSACTION,
189-
buildTransaction: prepareTransaction(approvalAction.transactionMethods),
198+
buildTransaction: prepareTransaction(
199+
approvalAction.transactionMethods,
200+
(await this.provider.getNetwork()).chainId,
201+
),
190202
purpose: TransactionPurpose.APPROVAL,
191203
});
192204
}
@@ -201,7 +213,10 @@ export class Seaport {
201213

202214
fulfillmentActions.push({
203215
type: ActionType.TRANSACTION,
204-
buildTransaction: prepareTransaction(fulfilOrderAction.transactionMethods),
216+
buildTransaction: prepareTransaction(
217+
fulfilOrderAction.transactionMethods,
218+
(await this.provider.getNetwork()).chainId,
219+
),
205220
purpose: TransactionPurpose.FULFILL_ORDER,
206221
});
207222

@@ -224,7 +239,10 @@ export class Seaport {
224239

225240
return {
226241
type: ActionType.TRANSACTION,
227-
buildTransaction: prepareTransaction(cancellationTransaction),
242+
buildTransaction: prepareTransaction(
243+
cancellationTransaction,
244+
(await this.provider.getNetwork()).chainId,
245+
),
228246
purpose: TransactionPurpose.CANCEL,
229247
};
230248
}

packages/orderbook/src/seaport/transaction.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ import { TransactionBuilder } from 'types';
55
// This can always be overwritten by the user signing the transaction
66
export function prepareTransaction(
77
transactionMethods: TransactionMethods,
8+
// chainId is required for EIP155
9+
chainId: number,
810
): TransactionBuilder {
911
return async () => {
1012
const transaction = await transactionMethods.buildTransaction();
1113
transaction.gasLimit = await transactionMethods.estimateGas();
1214
transaction.gasLimit = transaction.gasLimit
1315
.add(transaction.gasLimit.div(5));
16+
transaction.chainId = chainId;
1417

1518
return transaction;
1619
};

0 commit comments

Comments
 (0)