From edfad017d14c2b497df0b3ddd7b972b4aafe102e Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Tue, 2 Mar 2021 12:25:13 +0200 Subject: [PATCH 1/5] Types for executeWithdraw --- src/dataunion/Contracts.ts | 8 ++++---- src/dataunion/DataUnion.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/dataunion/Contracts.ts b/src/dataunion/Contracts.ts index e190f44ba..dfb9150f2 100644 --- a/src/dataunion/Contracts.ts +++ b/src/dataunion/Contracts.ts @@ -1,6 +1,6 @@ import { getCreate2Address, isAddress } from '@ethersproject/address' import { arrayify, hexZeroPad } from '@ethersproject/bytes' -import { Contract } from '@ethersproject/contracts' +import { Contract, ContractReceipt } from '@ethersproject/contracts' import { keccak256 } from '@ethersproject/keccak256' import { defaultAbiCoder } from '@ethersproject/abi' import { verifyMessage } from '@ethersproject/wallet' @@ -218,14 +218,14 @@ export class Contracts { return trAMB } - async payForSignatureTransport(tr: { events: any[] }, options: { pollingIntervalMs?: number, retryTimeoutMs?: number } = {}) { + async payForSignatureTransport(tr: ContractReceipt, options: { pollingIntervalMs?: number, retryTimeoutMs?: number } = {}) { const { pollingIntervalMs = 1000, retryTimeoutMs = 60000, } = options - log(`Got receipt, filtering UserRequestForSignature from ${tr.events.length} events...`) + log(`Got receipt, filtering UserRequestForSignature from ${tr.events!.length} events...`) // event UserRequestForSignature(bytes32 indexed messageId, bytes encodedData); - const sigEventArgsArray = tr.events.filter((e: Todo) => e.event === 'UserRequestForSignature').map((e: Todo) => e.args) + const sigEventArgsArray = tr.events!.filter((e: Todo) => e.event === 'UserRequestForSignature').map((e: Todo) => e.args) if (sigEventArgsArray.length < 1) { throw new Error("No UserRequestForSignature events emitted from withdraw transaction, can't transport withdraw to mainnet") } diff --git a/src/dataunion/DataUnion.ts b/src/dataunion/DataUnion.ts index 70d72c1a4..de53373fb 100644 --- a/src/dataunion/DataUnion.ts +++ b/src/dataunion/DataUnion.ts @@ -539,7 +539,7 @@ export class DataUnion { // template for withdraw functions // client could be replaced with AMB (mainnet and sidechain) private async _executeWithdraw( - getWithdrawTxFunc: () => Promise, + getWithdrawTxFunc: () => Promise, recipientAddress: EthereumAddress, options: DataUnionWithdrawOptions = {} ): Promise { From d846e8e3be2d3fa71088cc561dad0fccfd28e3a9 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Tue, 2 Mar 2021 12:41:51 +0200 Subject: [PATCH 2/5] Remove obsolete field --- src/dataunion/Contracts.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/dataunion/Contracts.ts b/src/dataunion/Contracts.ts index dfb9150f2..dcb7bdd80 100644 --- a/src/dataunion/Contracts.ts +++ b/src/dataunion/Contracts.ts @@ -309,7 +309,7 @@ export class Contracts { duName, ethersOptions ) - const tr = await tx.wait(confirmations) + await tx.wait(confirmations) log(`Data Union "${duName}" (mainnet: ${duMainnetAddress}, sidechain: ${duSidechainAddress}) deployed to mainnet, waiting for side-chain...`) await until( @@ -320,8 +320,6 @@ export class Contracts { const dataUnion = new Contract(duMainnetAddress, dataUnionMainnetABI, mainnetWallet) // @ts-expect-error - dataUnion.deployTxReceipt = tr - // @ts-expect-error dataUnion.sidechain = new Contract(duSidechainAddress, dataUnionSidechainABI, sidechainProvider) return dataUnion From 8d8c14b3399e67be3030d29c1a5b652c497d628e Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Tue, 2 Mar 2021 12:45:46 +0200 Subject: [PATCH 3/5] Types for getAdminAddress and setAdminFee --- src/dataunion/DataUnion.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dataunion/DataUnion.ts b/src/dataunion/DataUnion.ts index de53373fb..8b30cb13d 100644 --- a/src/dataunion/DataUnion.ts +++ b/src/dataunion/DataUnion.ts @@ -296,7 +296,7 @@ export class DataUnion { return +adminFeeBN.toString() / 1e18 } - async getAdminAddress(): Promise { + async getAdminAddress(): Promise { const duMainnet = this.getContracts().getMainnetContractReadOnly(this.contractAddress) return duMainnet.owner() } @@ -446,14 +446,14 @@ export class DataUnion { /** * Admin: set admin fee (between 0.0 and 1.0) for the data union */ - async setAdminFee(newFeeFraction: number): Promise { + async setAdminFee(newFeeFraction: number): Promise { if (newFeeFraction < 0 || newFeeFraction > 1) { throw new Error('newFeeFraction argument must be a number between 0...1, got: ' + newFeeFraction) } const adminFeeBN = BigNumber.from((newFeeFraction * 1e18).toFixed()) // last 2...3 decimals are going to be gibberish const duMainnet = this.getContracts().getMainnetContract(this.contractAddress) const tx = await duMainnet.setAdminFee(adminFeeBN) - return tx.wait() + await tx.wait() } /** From d18163d0055af5b893f8b39f8fbc53d6ca978930 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Tue, 2 Mar 2021 13:40:15 +0200 Subject: [PATCH 4/5] Better return types --- src/dataunion/DataUnion.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dataunion/DataUnion.ts b/src/dataunion/DataUnion.ts index 8b30cb13d..bd818cb9b 100644 --- a/src/dataunion/DataUnion.ts +++ b/src/dataunion/DataUnion.ts @@ -296,7 +296,7 @@ export class DataUnion { return +adminFeeBN.toString() / 1e18 } - async getAdminAddress(): Promise { + async getAdminAddress(): Promise { const duMainnet = this.getContracts().getMainnetContractReadOnly(this.contractAddress) return duMainnet.owner() } @@ -446,14 +446,14 @@ export class DataUnion { /** * Admin: set admin fee (between 0.0 and 1.0) for the data union */ - async setAdminFee(newFeeFraction: number): Promise { + async setAdminFee(newFeeFraction: number): Promise { if (newFeeFraction < 0 || newFeeFraction > 1) { throw new Error('newFeeFraction argument must be a number between 0...1, got: ' + newFeeFraction) } const adminFeeBN = BigNumber.from((newFeeFraction * 1e18).toFixed()) // last 2...3 decimals are going to be gibberish const duMainnet = this.getContracts().getMainnetContract(this.contractAddress) const tx = await duMainnet.setAdminFee(adminFeeBN) - await tx.wait() + return tx.wait() } /** From 5fe6b1d845106df803084ec86345dad263a968a0 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Tue, 2 Mar 2021 13:53:49 +0200 Subject: [PATCH 5/5] Remove Todo type --- src/dataunion/DataUnion.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dataunion/DataUnion.ts b/src/dataunion/DataUnion.ts index 576dc99af..3fe0e304e 100644 --- a/src/dataunion/DataUnion.ts +++ b/src/dataunion/DataUnion.ts @@ -6,7 +6,7 @@ import { TransactionReceipt, TransactionResponse } from '@ethersproject/provider import debug from 'debug' import { Contracts } from './Contracts' import StreamrClient from '../StreamrClient' -import { EthereumAddress, Todo } from '../types' +import { EthereumAddress } from '../types' import { until, getEndpointUrl } from '../utils' import authFetch from '../rest/authFetch'