@phiresky/eth-scan
Version:
An efficient Ether and token balance scanner
2 lines • 2.1 kB
JavaScript
;var _abi=require("@findeth/abi"),_hardhat=require("hardhat"),_server=require("hardhat/internal/hardhat-network/jsonrpc/server"),_constants=require("../constants"),_ethScan=require("../eth-scan.test"),_utils=require("../utils"),_http=_interopRequireDefault(require("./http"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}const{createFixtureLoader,provider}=_hardhat.waffle,{isProvider,send}=_http.default,loadFixture=createFixtureLoader(provider.getWallets(),provider),server=new _server.JsonRpcServer({hostname:"127.0.0.1",port:8547,provider:_hardhat.network.provider});beforeAll(async()=>{await server.listen()},1e5),afterAll(async()=>{await server.close()}),describe("isProvider",()=>{it("checks if a provider is an HTTP provider",()=>{expect(isProvider("https://foo")).toBe(!0),expect(isProvider({url:"https://foo"})).toBe(!0),expect(isProvider({})).toBe(!1)})}),describe("send",()=>{it("gets the Ether balances from the contract",async()=>{const{contract:a,addresses:b}=await loadFixture(_ethScan.fixture),c=(0,_utils.withId)(_constants.ETHER_BALANCES_ID,(0,_abi.encode)(_constants.ETHER_BALANCES_TYPE,[b])),d=await send("http://127.0.0.1:8547","eth_call",[{to:a.address,data:c}]),e=(0,_abi.decode)(["(bool,bytes)[]"],(0,_abi.fromHex)(d))[0];for(let a=0;a<b.length;a++){const c=await _hardhat.ethers.provider.getBalance(b[a]),[d,f]=e[a];expect(d).toBe(!0),expect((0,_abi.toHex)(f)).toBe(c.toHexString().slice(2).padStart(64,"0"))}}),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,_utils.withId)(_constants.TOKEN_BALANCES_ID,(0,_abi.encode)(_constants.TOKEN_BALANCES_TYPE,[b,c.address])),e=await send("http://127.0.0.1:8547","eth_call",[{to:a.address,data:d}]),f=(0,_abi.decode)(["(bool,bytes)[]"],(0,_abi.fromHex)(e))[0];for(let a=0;a<b.length;a++){const[b,c]=f[a];expect(b).toBe(!0),expect((0,_abi.toHex)(c)).toBe("00000000000000000000000000000000000000000000000000000000000003e8")}})});
//# sourceMappingURL=http.test.js.map