Skip to content

Commit

Permalink
Merge pull request #4180 from BitGo/WIN-1446-update-chainid-related-c…
Browse files Browse the repository at this point in the history
…hanges

fix(abstract-eth): fix issues related to chainid
  • Loading branch information
gianchandania authored Jan 4, 2024
2 parents a006d5a + 9114b1b commit dc6dfc9
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 17 deletions.
3 changes: 2 additions & 1 deletion modules/abstract-eth/src/lib/transactionBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,8 @@ export abstract class TransactionBuilder extends BaseTransactionBuilder {
if (!this._transfer) {
throw new BuildTransactionError('Missing transfer information');
}
return this._transfer.signAndBuild();
const chainId = this._common.chainIdBN().toString();
return this._transfer.signAndBuild(chainId);
}

private buildSendTransaction(): TxData {
Expand Down
8 changes: 5 additions & 3 deletions modules/abstract-eth/src/lib/transferBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export class TransferBuilder {
private _data: string;
private _tokenContractAddress?: string;
private _coin: Readonly<BaseCoin>;
private _chainId?: string;

constructor(serializedData?: string) {
if (serializedData) {
Expand Down Expand Up @@ -92,7 +93,8 @@ export class TransferBuilder {
throw new InvalidParameterValueError('Invalid expiration time');
}

signAndBuild(): string {
signAndBuild(chainId?: string): string {
this._chainId = chainId;
if (this.hasMandatoryFields()) {
if (this._tokenContractAddress !== undefined) {
return sendMultiSigTokenData(
Expand Down Expand Up @@ -170,7 +172,7 @@ export class TransferBuilder {
* @returns the string prefix
*/
protected getTokenOperationHashPrefix(): string {
return (this._coin?.network as EthLikeNetwork)?.tokenOperationHashPrefix ?? 'ERC20';
return (this._coin?.network as EthLikeNetwork)?.tokenOperationHashPrefix ?? `${this._chainId}-ERC20` ?? 'ERC20';
}

/**
Expand All @@ -179,7 +181,7 @@ export class TransferBuilder {
* @returns the string prefix
*/
protected getNativeOperationHashPrefix(): string {
return (this._coin?.network as EthLikeNetwork)?.nativeCoinOperationHashPrefix ?? 'ETHER';
return (this._coin?.network as EthLikeNetwork)?.nativeCoinOperationHashPrefix ?? `${this._chainId}` ?? 'ETHER';
}

/** Return an expiration time, in seconds, set to one hour from now
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export abstract class BaseNFTTransferBuilder {
protected _tokenContractAddress: string;
protected _coin: Readonly<BaseCoin>;
protected _nativeCoinOperationHashPrefix?: string;
protected _chainId?: string;

public abstract build(): string;

Expand Down Expand Up @@ -100,7 +101,7 @@ export abstract class BaseNFTTransferBuilder {
* @returns the string prefix
*/
protected getNativeOperationHashPrefix(): string {
return this._nativeCoinOperationHashPrefix ?? 'ETHER';
return this._nativeCoinOperationHashPrefix ?? this._chainId ?? 'ETHER';
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ export class ERC1155TransferBuilder extends BaseNFTTransferBuilder {
return this;
}

signAndBuild(): string {
signAndBuild(chainId?: string): string {
this._chainId = chainId;
const hasMandatoryFields = this.hasMandatoryFields();
if (hasMandatoryFields) {
this._data = this.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ export class ERC721TransferBuilder extends BaseNFTTransferBuilder {
return contractCall.serialize();
}

signAndBuild(): string {
signAndBuild(chainId?: string): string {
this._chainId = chainId;
if (this.hasMandatoryFields()) {
this._data = this.build();

Expand Down
2 changes: 0 additions & 2 deletions modules/sdk-coin-arbeth/test/unit/transactionBuilder/send.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ describe('Arbeth transaction builder send', () => {
const sequenceId = 5;
txBuilder
.transfer()
.coin('tarbeth')
.amount(amount)
.to(recipient)
.expirationTime(expireTime)
Expand Down Expand Up @@ -88,7 +87,6 @@ describe('Arbeth transaction builder send', () => {
it('a send funds with amount 0 transaction', async () => {
txBuilder
.transfer()
.coin('tarbeth')
.amount('0')
.to('0x19645032c7f1533395d44a629462e751084d3e4c')
.expirationTime(1590066728)
Expand Down
9 changes: 3 additions & 6 deletions modules/sdk-coin-eth/src/lib/transactionBuilder.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
import { BaseCoin as CoinConfig, EthereumNetwork } from '@bitgo/statics';
import {
Transaction,
getCommon,
TransactionBuilder as EthLikeTransactionBuilder,
TransferBuilder,
} from '@bitgo/abstract-eth';
import { Transaction, getCommon, TransactionBuilder as EthLikeTransactionBuilder } from '@bitgo/abstract-eth';
import { BuildTransactionError, TransactionType } from '@bitgo/sdk-core';

import { TransferBuilder } from './transferBuilder';
import { walletSimpleByteCode } from './walletUtil';
import { ERC721TransferBuilder, ERC1155TransferBuilder } from './transferBuilders';
/**
* Ethereum transaction builder.
*/
export class TransactionBuilder extends EthLikeTransactionBuilder {
protected _transfer: TransferBuilder | ERC721TransferBuilder | ERC1155TransferBuilder;
/**
* Public constructor.
*
Expand Down
2 changes: 0 additions & 2 deletions modules/sdk-coin-opeth/test/unit/transactionBuilder/send.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ describe('Opeth transaction builder send', () => {
const sequenceId = 5;
txBuilder
.transfer()
.coin('topeth')
.amount(amount)
.to(recipient)
.expirationTime(expireTime)
Expand Down Expand Up @@ -88,7 +87,6 @@ describe('Opeth transaction builder send', () => {
it('a send funds with amount 0 transaction', async () => {
txBuilder
.transfer()
.coin('topeth')
.amount('0')
.to('0x19645032c7f1533395d44a629462e751084d3e4c')
.expirationTime(1590066728)
Expand Down

0 comments on commit dc6dfc9

Please sign in to comment.