Skip to content

Commit

Permalink
update contract to unpersonalized links
Browse files Browse the repository at this point in the history
  • Loading branch information
andresaiello committed Oct 11, 2023
1 parent 000bd7f commit a47e4eb
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ contract InvitationManager {
error InvitationAlreadyAccepted();
event InvitationAccepted(address indexed inviter, address indexed invitee, uint256 timestamp);

function verifySignature(address inviter, address invitee, Signature calldata signature) private pure {
bytes32 payloadHash = keccak256(abi.encode(inviter, invitee));
function verifySignature(address inviter, Signature calldata signature) private pure {
bytes32 payloadHash = keccak256(abi.encode(inviter));
bytes32 messageHash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", payloadHash));

address signerOfMessage = ecrecover(messageHash, signature.v, signature.r, signature.s);
Expand All @@ -37,7 +37,7 @@ contract InvitationManager {
function confirmAndAcceptInvitation(address inviter, Signature calldata signature) external {
if (acceptedInvitationsTimestamp[inviter][msg.sender] != 0) revert InvitationAlreadyAccepted();

verifySignature(inviter, msg.sender, signature);
verifySignature(inviter, signature);

acceptedInvitationsTimestamp[inviter][msg.sender] = block.timestamp;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ describe("InvitationManager Contract test", () => {

describe("Invitations test", () => {
it("Should verify an invitation and store it", async () => {
const sig = await getInvitationSig(inviter, invitee.address);
const sig = await getInvitationSig(inviter);
const tx = await invitationManager.connect(invitee).confirmAndAcceptInvitation(inviter.address, sig);
const rec = await tx.wait();

Expand All @@ -42,20 +42,20 @@ describe("InvitationManager Contract test", () => {
});

it("Should revert if invitation is invalid", async () => {
const sig = await getInvitationSig(inviter, addrs[0].address);
const tx = invitationManager.connect(invitee).confirmAndAcceptInvitation(inviter.address, sig);
const sig = await getInvitationSig(inviter);
const tx = invitationManager.connect(invitee).confirmAndAcceptInvitation(addrs[0].address, sig);
await expect(tx).to.be.revertedWith("UnrecognizedInvitation");
});

it("Should revert if invitation is already accepted", async () => {
const sig = await getInvitationSig(inviter, invitee.address);
const sig = await getInvitationSig(inviter);
await invitationManager.connect(invitee).confirmAndAcceptInvitation(inviter.address, sig);
const tx = invitationManager.connect(invitee).confirmAndAcceptInvitation(inviter.address, sig);
await expect(tx).to.be.revertedWith("InvitationAlreadyAccepted");
});

it("Should count only for today if I just accepted", async () => {
const sig = await getInvitationSig(inviter, invitee.address);
const sig = await getInvitationSig(inviter);
const tx = await invitationManager.connect(invitee).confirmAndAcceptInvitation(inviter.address, sig);
const rec = await tx.wait();

Expand Down
4 changes: 2 additions & 2 deletions packages/zevm-app-contracts/test/zeta-points/test.helpers.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
import { ethers } from "hardhat";

export const getInvitationSig = async (signer: SignerWithAddress, invitee: string) => {
let payload = ethers.utils.defaultAbiCoder.encode(["address", "address"], [signer.address, invitee]);
export const getInvitationSig = async (signer: SignerWithAddress) => {
let payload = ethers.utils.defaultAbiCoder.encode(["address"], [signer.address]);

let payloadHash = ethers.utils.keccak256(payload);

Expand Down

0 comments on commit a47e4eb

Please sign in to comment.