UNPKG

@iam4x/bsc-scan

Version:

An efficient BNB and token balance scanner

2 lines 1.88 kB
"use strict";var _abi=require("@findeth/abi"),_hardhat=require("hardhat"),_server=require("hardhat/internal/hardhat-network/jsonrpc/server"),_web=_interopRequireDefault(require("web3")),_constants=require("../constants"),_ethScan=require("../eth-scan.test"),_abi2=require("../utils/abi"),_web2=_interopRequireDefault(require("./web3"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}const{createFixtureLoader,provider}=_hardhat.waffle,{isProvider,call}=_web2.default,loadFixture=createFixtureLoader(provider.getWallets(),provider),server=new _server.JsonRpcServer({hostname:"127.0.0.1",port:8548,provider:_hardhat.network.provider});beforeAll(async()=>{await server.listen()},1e5),afterAll(async()=>{await server.close()});const web3=new _web.default("http://127.0.0.1:8548");describe("isProvider",()=>{it("checks if a provider is a Web3 provider",()=>{expect(isProvider(web3)).toBe(!0),expect(isProvider({})).toBe(!1)})}),describe("call",()=>{it("gets the Ether balances from the contract",async()=>{const{contract:a,addresses:b}=await loadFixture(_ethScan.fixture),c=(0,_abi2.withId)(_constants.ETHER_BALANCES_ID,(0,_abi.encode)(_constants.ETHER_BALANCES_TYPE,[b])),d=await call(web3,a.address,c),e=(0,_abi.decode)(["uint256[]"],(0,_abi.fromHex)(d))[0];for(let a=0;a<b.length;a++){const c=BigInt((await _hardhat.ethers.provider.getBalance(b[a])).toHexString());expect(c).toBe(e[a])}}),it("gets the token balances from the contract",async()=>{const{contract:a,addresses:b,token:c}=await loadFixture(_ethScan.fixture);await c.mock.balanceOf.returns("1000");const d=(0,_abi2.withId)(_constants.TOKEN_BALANCES_ID,(0,_abi.encode)(_constants.TOKEN_BALANCES_TYPE,[b,c.address])),e=await call(web3,a.address,d),f=(0,_abi.decode)(["uint256[]"],(0,_abi.fromHex)(e))[0];for(let a=0;a<b.length;a++)expect(f[a]).toBe(1000n)})}); //# sourceMappingURL=web3.test.js.map