UNPKG

@safe-global/safe-contracts

Version:
41 lines (34 loc) 1.59 kB
import { expect } from "chai"; import hre, { deployments, waffle } from "hardhat"; import "@nomiclabs/hardhat-ethers"; import { AddressZero } from "@ethersproject/constants"; import { getSafeTemplate } from "../utils/setup"; describe("HandlerContext", async () => { const [user1, user2] = waffle.provider.getWallets(); const setup = deployments.createFixture(async ({ deployments }) => { await deployments.fixture(); const TestHandler = await hre.ethers.getContractFactory("TestHandler"); const handler = await TestHandler.deploy(); return { safe: await getSafeTemplate(), handler, }; }); it("parses information correctly", async () => { const { handler } = await setup(); const response = await user1.call({ to: handler.address, data: handler.interface.encodeFunctionData("dudududu") + user2.address.slice(2), }); expect(handler.interface.decodeFunctionResult("dudududu", response)).to.be.deep.eq([user2.address, user1.address]); }); it("works with the Safe", async () => { const { safe, handler } = await setup(); await safe.setup([user1.address, user2.address], 1, AddressZero, "0x", handler.address, AddressZero, 0, AddressZero); const response = await user1.call({ to: safe.address, data: handler.interface.encodeFunctionData("dudududu"), }); expect(handler.interface.decodeFunctionResult("dudududu", response)).to.be.deep.eq([user1.address, safe.address]); }); });