diff --git a/apps/remix-ide/src/app/tabs/web3-provider.js b/apps/remix-ide/src/app/tabs/web3-provider.js index 89b7528739..16c3a3dd17 100644 --- a/apps/remix-ide/src/app/tabs/web3-provider.js +++ b/apps/remix-ide/src/app/tabs/web3-provider.js @@ -1,6 +1,7 @@ import { Plugin } from '@remixproject/engine' import * as packageJson from '../../../../../package.json' import {isBigInt} from 'web3-validator' +import { addressToString } from "@remix-ui/helper" export const profile = { name: 'web3Provider', @@ -54,8 +55,13 @@ export class Web3ProviderModule extends Plugin { console.log('receipt available but contract address not present', receipt) return } - const contractData = await this.call('compilerArtefacts', 'getContractDataFromAddress', receipt.contractAddress) - if (contractData) this.call('udapp', 'addInstance', receipt.contractAddress, contractData.contract.abi, contractData.name) + const contractAddressStr = addressToString(receipt.contractAddress) + const contractData = await this.call('compilerArtefacts', 'getContractDataFromAddress', contractAddressStr) + if (contractData) { + this.call('udapp', 'addInstance', contractAddressStr, contractData.contract.abi, contractData.name) + const data = await this.call('compilerArtefacts', 'getCompilerAbstract', contractData.file) + await this.call('compilerArtefacts', 'addResolvedContract', contractAddressStr, data) + } }, 50) } } diff --git a/apps/remix-ide/src/blockchain/providers/injected.ts b/apps/remix-ide/src/blockchain/providers/injected.ts index 76c211a0ff..32b4938f70 100644 --- a/apps/remix-ide/src/blockchain/providers/injected.ts +++ b/apps/remix-ide/src/blockchain/providers/injected.ts @@ -29,7 +29,8 @@ export class InjectedProvider { async getBalanceInEther (address) { const balance = await this.executionContext.web3().eth.getBalance(address) - return Web3.utils.fromWei(balance.toString(10), 'ether') + const balInString = balance.toString(10) + return balInString === '0' ? balInString : Web3.utils.fromWei(balInString, 'ether') } getGasPrice (cb) { diff --git a/apps/remix-ide/src/blockchain/providers/node.ts b/apps/remix-ide/src/blockchain/providers/node.ts index 1dcf1b6c40..c77421e045 100644 --- a/apps/remix-ide/src/blockchain/providers/node.ts +++ b/apps/remix-ide/src/blockchain/providers/node.ts @@ -35,7 +35,8 @@ export class NodeProvider { async getBalanceInEther (address) { const balance = await this.executionContext.web3().eth.getBalance(address) - return Web3.utils.fromWei(balance.toString(10), 'ether') + const balInString = balance.toString(10) + return balInString === '0' ? balInString : Web3.utils.fromWei(balInString, 'ether') } getGasPrice (cb) { diff --git a/apps/remix-ide/src/blockchain/providers/vm.ts b/apps/remix-ide/src/blockchain/providers/vm.ts index 3ae7f6a154..67357b347e 100644 --- a/apps/remix-ide/src/blockchain/providers/vm.ts +++ b/apps/remix-ide/src/blockchain/providers/vm.ts @@ -97,7 +97,8 @@ export class VMProvider { async getBalanceInEther (address) { const balance = await this.web3.eth.getBalance(address, undefined, { number: FMT_NUMBER.HEX, bytes: FMT_BYTES.HEX }) - return fromWei(toBigInt(balance).toString(10), 'ether') + const balInString = toBigInt(balance).toString(10) + return balInString === '0' ? balInString : fromWei(balInString, 'ether') } getGasPrice (cb) { diff --git a/libs/remix-simulator/src/methods/accounts.ts b/libs/remix-simulator/src/methods/accounts.ts index 00b8701da3..62a8411a0d 100644 --- a/libs/remix-simulator/src/methods/accounts.ts +++ b/libs/remix-simulator/src/methods/accounts.ts @@ -71,7 +71,8 @@ export class Web3Accounts { return { eth_accounts: this.eth_accounts.bind(this), eth_getBalance: this.eth_getBalance.bind(this), - eth_sign: this.eth_sign.bind(this) + eth_sign: this.eth_sign.bind(this), + eth_chainId: this.eth_chainId.bind(this) } } @@ -103,4 +104,8 @@ export class Web3Accounts { cb(null, data.signature) } + + eth_chainId (_payload, cb) { + return cb(null, '0x539') // 0x539 is hex of 1337 + } }