Skip to content

Commit

Permalink
refactor(abstract-eth): move methods to abstract-eth
Browse files Browse the repository at this point in the history
  • Loading branch information
gianchandania committed Nov 8, 2023
1 parent 7f579c0 commit 0646951
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 13 deletions.
7 changes: 3 additions & 4 deletions modules/abstract-eth/src/abstractEthLikeNewCoins.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ export interface TransactionPrebuild extends BaseTransactionPrebuild {
recipients: Recipient[];
};
recipients: TransactionRecipient[];
nextContractSequenceId: string;
nextContractSequenceId: number;
gasPrice: number;
gasLimit: number;
isBatch: boolean;
Expand Down Expand Up @@ -556,12 +556,11 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
* @returns {Array} operation array
*/
getOperation(recipient: Recipient, expireTime: number, contractSequenceId: number): (string | Buffer)[][] {
// const network = this.getNetwork() as EthLikeNetwork;
const network = this.getNetwork() as EthLikeNetwork;
return [
['string', 'address', 'uint256', 'bytes', 'uint256', 'uint256'],
[
// network.nativeCoinOperationHashPrefix,
'ETHER',
network.nativeCoinOperationHashPrefix,
new optionalDeps.ethUtil.BN(optionalDeps.ethUtil.stripHexPrefix(recipient.address), 16),
recipient.amount,
Buffer.from(optionalDeps.ethUtil.stripHexPrefix(optionalDeps.ethUtil.padToEven(recipient.data || '')), 'hex'),
Expand Down
14 changes: 6 additions & 8 deletions modules/abstract-eth/src/ethLikeToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @prettier
*/
import * as _ from 'lodash';
import { coins, EthLikeTokenConfig, tokens } from '@bitgo/statics';
import { coins, EthLikeTokenConfig, tokens, EthereumNetwork as EthLikeNetwork } from '@bitgo/statics';

import { BitGoBase, CoinConstructor, NamedCoinConstructor, Wallet, Util } from '@bitgo/sdk-core';
import { TransactionBuilder as EthLikeTransactionBuilder } from './lib';
Expand Down Expand Up @@ -105,12 +105,11 @@ export class EthLikeToken extends AbstractEthLikeNewCoins {
}

getOperation(recipient, expireTime, contractSequenceId) {
// const network = this.getNetwork() as EthLikeNetwork;
const network = this.getNetwork() as EthLikeNetwork;
return [
['string', 'address', 'uint', 'address', 'uint', 'uint'],
[
// network.tokenOperationHashPrefix,
'ERC20',
network.tokenOperationHashPrefix,
new optionalDeps.ethUtil.BN(optionalDeps.ethUtil.stripHexPrefix(recipient.address), 16),
recipient.amount,
new optionalDeps.ethUtil.BN(optionalDeps.ethUtil.stripHexPrefix(this.tokenContractAddress), 16),
Expand Down Expand Up @@ -182,7 +181,7 @@ export class EthLikeToken extends AbstractEthLikeNewCoins {
* @param params.broadcast if true, we will automatically submit the half-signed tx to BitGo for cosigning and broadcasting
*/
async recoverToken(params: RecoverTokenOptions): Promise<RecoverTokenTransaction> {
// const network = this.getNetwork() as EthLikeNetwork;
const network = this.getNetwork() as EthLikeNetwork;
if (!_.isObject(params)) {
throw new Error(`recoverToken must be passed a params object. Got ${params} (type ${typeof params})`);
}
Expand Down Expand Up @@ -283,9 +282,8 @@ export class EthLikeToken extends AbstractEthLikeNewCoins {
// Build sendData for ethereum tx
const operationTypes = ['string', 'address', 'uint', 'address', 'uint', 'uint'];
const operationArgs = [
// "ERC20" has been added here so that ether operation hashes, signatures cannot be re-used for tokenSending
// network.tokenOperationHashPrefix,
'ERC20',
// Token operation has prefix has been added here so that ether operation hashes, signatures cannot be re-used for tokenSending
network.tokenOperationHashPrefix,
new optionalDeps.ethUtil.BN(optionalDeps.ethUtil.stripHexPrefix(recipient.address), 16),
recipient.amount,
new optionalDeps.ethUtil.BN(optionalDeps.ethUtil.stripHexPrefix(params.tokenContractAddress), 16),
Expand Down
12 changes: 11 additions & 1 deletion modules/sdk-coin-polygon/src/polygonToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*/
import { EthLikeToken, CoinNames } from '@bitgo/abstract-eth';
import { EthLikeTokenConfig, coins } from '@bitgo/statics';
import { BitGoBase, CoinConstructor, NamedCoinConstructor } from '@bitgo/sdk-core';
import { BitGoBase, CoinConstructor, MPCAlgorithm, NamedCoinConstructor } from '@bitgo/sdk-core';
import { TransactionBuilder } from './lib';
export { EthLikeTokenConfig };

Expand All @@ -29,6 +29,16 @@ export class PolygonToken extends EthLikeToken {
return new TransactionBuilder(coins.get(this.getBaseChain()));
}

/** @inheritDoc */
supportsTss(): boolean {
return true;
}

/** @inheritDoc */
getMPCAlgorithm(): MPCAlgorithm {
return 'ecdsa';
}

getFullName(): string {
return 'Polygon Token';
}
Expand Down
4 changes: 4 additions & 0 deletions modules/sdk-coin-polygon/test/unit/polygon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,10 @@ describe('Polygon', function () {
isTss: true,
gasPrice: 20000000000,
gasLimit: 500000,
replayProtectionOptions: {
chain: 80001,
hardfork: 'london',
},
};

const transaction = (await basecoin.recover(recoveryParams)) as OfflineVaultTxInfo;
Expand Down

0 comments on commit 0646951

Please sign in to comment.