import { expect } from "chai"; import { assertCreate2AddressPolicy, hasLeadingZeroBytes, } from "../scripts/workflow/lib/create2"; describe("CREATE2 address policy", function () { it("requires four leading zero bytes for eight zero hex characters", function () { expect(hasLeadingZeroBytes("0x00000000f2663bd8a94888e555280cde112b2ab7", 4)).to.equal(true); expect(hasLeadingZeroBytes("0x00000001f2663bd8a94888e555280cde112b2ab7", 4)).to.equal(false); }); it("checks expected address and vanity prefix before deployment", function () { expect(() => assertCreate2AddressPolicy("Counter proxy", "0x00000000f2663bd8a94888e555280cde112b2ab7", { expectedAddress: "0x00000000f2663bd8a94888e555280cde112b2ab7", leadingZeroBytes: 4, })).to.not.throw(); expect(() => assertCreate2AddressPolicy("Counter proxy", "0x00000001f2663bd8a94888e555280cde112b2ab7", { leadingZeroBytes: 4, })).to.throw(/Counter proxy.*0x00000000/); }); });