Skip to content
This repository has been archived by the owner on Apr 30, 2024. It is now read-only.

Introducing Meta-Transaction Support to IPAccount with EIP712 Standard Signatures #32

Merged
merged 5 commits into from
Jan 26, 2024

Conversation

kingster-will
Copy link
Contributor

@kingster-will kingster-will commented Jan 26, 2024

This PR introduces meta-transaction support to the IPAccount contract by adding a new function called executeWithSig. This function allows transactions to be executed as if they were performed by the signer of a provided signature.

The signature follows the EIP712 standard, which is a standard for typed data signing. This standard provides a better user experience for signing data and allows for off-chain transactions to be made.

A comprehensive testing approach that achieves 100% code coverage and examination of comprehensive positive and negative use cases.

Copy link
Contributor

@jdubpark jdubpark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also explore calling modules directly with signatures.

As I'm writing integration tests and frontend contracts (SPG), I constantly face the friction of calling IPAccounts to call modules, namely the abi encode/decode and validating function parameters. In these contracts, I prefer calling modules directly and think it's better DevEx.

The current approach works fine but callpaths are messy with encoding and decoding. We should discuss this (calling via IPAccount vs. calling Modules directly) after the beta release. For now, let's not fully circle back to the topic so we can focus on a functional protocol (but let's keep it in mind). @kingster-will @leeren @LeoHChen

@kingster-will kingster-will merged commit 6de2d8b into storyprotocol:main Jan 26, 2024
1 check passed
@kingster-will kingster-will deleted the signature branch January 26, 2024 05:08
jdubpark added a commit that referenced this pull request Jan 27, 2024
* feat: foundry deploy script w/ hardhat wip

* feat: fix foundry deploy script

* feat: makefile abi & typechain

* feat: hardhat scripts

* fix: delete ignore folder

* feat: script deployments and mocks

* fix: package deps

* fix: ignore folders

* feat: deploy & revert scripts

* feat: tagging module events (#26)

* feat: main deploy configs & minor makefile change

* additional deploy & post-deploy scripts

* hardhat config

* fix: deploy scripts for new interfaces & structs

* merge main

* fix: modify script for new merged main

* fix: remove unused files & modify script/configs

* Introducing Meta-Transaction Support to IPAccount with EIP712 Standard Signatures (#32)

* Parameters (#31)

* added transfer terms, refactored term checking

* add param test

* unused var test

* fix policy needs transfer arguments

* fix tests, addPolicy public only allow new policies

* licenseData not provided when minting, it is a result

* added activation

* wip: license activation

* rolled back license status

* removed activation related code

* stray activation method

* stray event

* stray errors

* fix comment

* fix comment

* WIP

* comment

* fixes

* WIP

* WIP: fix identification of policy set by linking

* refactor to compile

* fix except integration

* feat: integration test fix, remove local vars, add reverts on verification

* fix: verifier interfaces, integration test fix, mock verifier fix, remove local var

* fix: rename contract, add constructor param for mock verifier, formats, more base contract, test fixes

* fix: rename vars and clean stack

* feat: flexible MockParamVerifier, modify integration/unit test runs

* Update contracts/interfaces/licensing/IMintParamVerifier.sol

---------

Co-authored-by: Raul <[email protected]>
Co-authored-by: Jongwon Park <[email protected]>

* fix: remove lcov.info

---------

Co-authored-by: kingster-will <[email protected]>
Co-authored-by: Ramarti <[email protected]>
Co-authored-by: Raul <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants