diff --git a/src/contracts/SmartContract.ts b/src/contracts/SmartContract.ts index 08272870..68f5d0e6 100644 --- a/src/contracts/SmartContract.ts +++ b/src/contracts/SmartContract.ts @@ -54,8 +54,8 @@ export abstract class SmartContract { return getFairGasPrice(this.web3, this.config) } - getContract(address: string, account?: string): Contract { - const contract = new this.web3.eth.Contract(this.abi, address, { + getContract(address: string, account?: string, abi?: AbiItem | AbiItem[]): Contract { + const contract = new this.web3.eth.Contract(abi || this.abi, address, { from: account }) return setContractDefaults(contract, this.config) diff --git a/src/contracts/tokens/Datatoken.ts b/src/contracts/tokens/Datatoken.ts index 87001d0d..fe99228e 100644 --- a/src/contracts/tokens/Datatoken.ts +++ b/src/contracts/tokens/Datatoken.ts @@ -882,7 +882,7 @@ export class Datatoken extends SmartContract { contractInstance?: Contract ): Promise { const dtContract = - contractInstance || new this.web3.eth.Contract(this.abiEnterprise, dtAddress) + contractInstance || this.getContract(dtAddress, null, this.abiEnterprise) return estimateGas( address, @@ -905,7 +905,7 @@ export class Datatoken extends SmartContract { orderParams: OrderParams, freParams: FreOrderParams ): Promise { - const dtContract = new this.web3.eth.Contract(this.abiEnterprise, dtAddress) + const dtContract = this.getContract(dtAddress, null, this.abiEnterprise) try { const freContractParams = getFreOrderParams(freParams) @@ -946,7 +946,7 @@ export class Datatoken extends SmartContract { contractInstance?: Contract ): Promise { const dtContract = - contractInstance || new this.web3.eth.Contract(this.abiEnterprise, dtAddress) + contractInstance || this.getContract(dtAddress, null, this.abiEnterprise) return estimateGas( address, @@ -969,7 +969,7 @@ export class Datatoken extends SmartContract { orderParams: OrderParams, dispenserContract: string ): Promise { - const dtContract = new this.web3.eth.Contract(this.abiEnterprise, dtAddress) + const dtContract = this.getContract(dtAddress, null, this.abiEnterprise) try { const estGas = await estimateGas( address,