Skip to content

Conversation

@pmerkleplant
Copy link
Contributor

Test PR.

@pmerkleplant
Copy link
Contributor Author

Where is the CI workflow? 🦺

@pmerkleplant pmerkleplant merged commit 01f9825 into main Sep 8, 2022
@pmerkleplant pmerkleplant deleted the test_pr branch October 13, 2022 13:14
0xNuggan pushed a commit that referenced this pull request May 15, 2024
* Comment todos

* Removed comment in FeeManager

Keeping the upgradeable state still an option is a nice to have and using just the constructor form would be a downgrade.

* Removal of comment

As its not a hard requirement this can be removed.

* Add description

* Add comment

* Remove Comment

* Remove comment create issue out of it

* Remove comment and create issue out of it

* Apply PR comments

* remove MilestoneManager References

* Remove based on comment
Zitzak added a commit that referenced this pull request Apr 9, 2025
* add cross-chain module, contracts compile

* refactor tempalte module

* fix compile issues

* add todo's for implementation contract

* added notes handoff

add more notes

* fix compile issues before everclear impl

* add everclear poc impl

* add everclear logic impl

* remove old templates

* code compile issue solved

code compile issue solved

* fix minor dependency

* remove file

* added contract for bridge testing

comment our bridge test

* add tests for base contracts

* fix file structure

* uncomment bridge return value and run fmt

* change contract to abstract

* add logic to PP_Connext_Crosschain

* fix inheritance chain

* remove function impl

* seperate interfaces

* remove unecessary state variables

* remove unecessary state variables

* add unit tests for Connext

* unit test processPayments & xcall

fix merge conflicts

fix file structure

fix merge conflicts

finish rebasing

* fix directory structure

* unit test chainid test

* unit test processpayments test

* unit test paymentId check and test

* unit test chainId and ProcessPayment

* unit test paymentId check and test

* resolve conflicts

rebasing

rebasing

* add unit test verify bridgeData

* add unit test process payments insufficient balance

* add feedback comment

fix paths after rebase

rebased and add init

* fixed unit tests after rebase

remove init functions

* add comments and fuzz tests

add notes

* refrator test file and add unit tests

* verify executionData & add unit tests

* add ttl validation

* refractor unit tests

* add unit tests CrosschainBase_v1

* singlePayment fuzz tests added

* move balance setup internal function

* multiplePayment fuzz tests added

* camelcase changes for CrossChainBase contract

* add gherking comments

* remove unecessary variables and add comments

* add more gherkin to each test

* add validation of ttl

* add getbridgedata and natspec

* chore: cleaned code changed event name

* add templates folder

* emit PaymentProcessed via Interface

* chore: use exposed payment processor

* update gherkin for tests

* add assertions to payment processor test

* update gherkin and remove vs code settings

* feat: add cancel payments

* feat:add cancel payment & test

* feat:add retry payments & test

* fix:retry payments test

* fix:format

* fix:fmt and standard updates

* chore:delete bridging folder

* fix:rebase onto feature

* chore:remove redundant files

* fix:add standard to test file

* chore:remove redundant files

* fix:update crosschain base format

* fix:delete console import

* fix:move files to proper directories

* fix:remove impl for functions

* fix: fix retry failed payments

* chore:add comments for clarity

* fix:remove files

* add tests for unhappy paths

* chore:change mapping name

* remove redundant file

* chore:rename file

* add base test file

* fix: remove chainid impl

* chore: add unit tests

* chore: add unit tests

* fix: make unit tests generic input

* fix: process payment if else

* chore: add unit tests for PP_Crosschain_v1

* fix: add auth checks and retrypayment issue and format unit tests

* fix: change test to fuzz tests, fix minor bugs

* fix: code format invertor standard

* fix: change the _validateTransferRequest msg.sender to client

* fix: refractor the unit tests

* chore: add unit tests for client.amountPaid functionality

* fix: track processedIntentId fix

* feat: add unclaimed amount impl

* fix: format code

* fix: follow invertor standard

* refactor: Rename ERC20PaymentClientBase_v1 to v2

* refactor: adapt implementation and tests to new Payment order struct

What has been done:
- Comment implementation where it didn't compile instead of updating it
- Copied and commented test that were failing because of the change. Changed the tests to work with empty data

* feat(IERC20PaymentClientBase_v2): add maxFee and TTL to payment order comment

* refactor: CrossChainBase_v1 & ICrossChainBase_v1

What has been done:
- Removed `processPayments()` as the base is no PP
- Remove `executionData` from `executeBridgeTransfer` because of move to new payment order
- Add __gap for upgrade
- Removed unnused events/errors/struct
- Inverter Standard
 - Cleaned up import
 - Update headers in files
 - Moved functions to the correct place in file
 - Append underscore in function parameters
 - Add explicit name to return variables

* refactor: PP_Crosschain_v1 & IPP_Crosschain_v1

What has been done?
- Remove `processPayments()` as it's not an implementation but abstract
- Moved `validPaymentOrder()` from this abstract to the connext implementation,
because what makes a payment order valid differs for each implementation given the
data/flags field send
- Moved the following functionalities from the connext implementation to this abstract,
as each crosschain PP will need them, so they can be in the base:
  - `unclaimable()`
  - `claimPreviouslyUnclaimable()`
  - the internal mapping to track the unclaimable amounts
- Removed internal functions `validTimes()` as the crosschain PP doesn't vest orders
- Removed unused events/errors/structs
- Inverter Standard
  - Made state variable internal and add getters
  - Cleaned up import
  - Update headers in files
  - Moved functions to the correct place in file
  - Append underscore in function parameters
  - Add explicit name to return variables

* refactor: PP_Connext_Crosschain_v1 & IPP_Connext_Crosschain_v1

What has been done:
- Update contract with the new payment order struct, which introduces the
following changed:
  - Add Flags constants that are used to validate and read the data field of the payment order
  - Add internal functions `_validateFlagsAndData()` & `_getEverclearMaxFeeAndTTL()` to validate
  and retrieve the `maxFee` and `ttl` from the data field of the payment order
  - Remove all parameters for `executionData` as the values needed are now retrieved from
  the data fields of the payment order struct
- Moved `unclaimableAmountsForRecipient` state variable from this implementation to the base
abstract contract
- Add internal functions `_validPaymentOrder()` which checks all the values of the new
payment order. Also add call to this function in `processPayments()`
- Add internal function `_transferTokenAndApproveToBridge()` which is called when we pull assets
from the payment client, but not when retrying bridging, removing the need to pass as boolean param
to internal function `_createCrossChainIntent()`
- Renamed `retryFailedTransfer()` to `retryFailedBridgeTransfer()` to be more explicit
- Removed unused events/errors/struct
- Inverter Standard
  - Cleaned up import
  - Update headers in files
  - Moved functions to the correct place in file
  - Make state variable internal and add getters
  - Append underscore in function parameters
  - Add explicit name to return variables

* test: WIP

* fix: code refactor & fix unit tests

* fix: code refactor & fix unit tests

* chore: add interface

* chore: inverter standard changes #1

* chore: inverter standard changes #2

* chore: standardize CrossChain naming convention across files and contracts, and remove unused imports in tests

* fix:retunr data from mapping

* fix:compliation error

* refactor: refactor natspec and state variable visibility

What has been done?
- Add `.` after comments
- Set constants back to public after mistake to make them private
- update author

* refactor: Update natspec

* refactor: clean up test file, remove duplicate file after renaming

* refactor: update version in mocks

* Fix camelcase naming issue

* Remove case-conflicting file from remote tracking

* Delete test/modules/paymentProcessor/abstracts/CrosschainBase_v1.t.sol

Delete duplicate file

* fix: resolve renaming issue

* fix: inverter standard and event emission

* fix:missing modifier

* fix:fix failing tests

* fix:fix gherkin in base test

* fix:fix tag spacing and inverter  standard comments

* fix:fix imports in tests

* fix:remove helper function

* fix:tag spacing

* fix:camel case contract names

* fix: fix tests add fuzzing

* fix: function params

* fix:init natsec

* fix: folder for mocks

* fix: camelcase file issue

* fix:camel casing and compliation

* fix: file thingy issue

* Remove camelCase

* fix:compliation erro

* fix:test names

* refactor: Delete CrossChainBase_v1 contract and interface

Why?
- The contract is supposed to function as base crossChain contract for
all modules. However it is leaning to much towards payment processing due
to the use of payment orders. Because of that, the decision is make to merge it with
the PP_CrossChain contract

* refactor: PP_CrossChain_v1

What has been done?
- Add deleted functionalities from CrossChainBase
- Update contract Natspec
- Update event that emits bridge intend
  - Add more members to make it easier for the indexer
  - rename event
- Add missing Inverter Standard changes

* refactor: PP_Connext_CrossChain_v1

What has been done?
- Update contract natspec
- Update event when bridging has been succesful
- Add missing changes for Inverter Standard

* refactor: Rename implementation contract to PP_Everclear_CrossChain_v1

Why?
The contract was named after the bridging infra we used initially,
i.e. Connext. This has been changed to Everclear

* refactor: rename PP_CrossChain into PP_CrossChainBase

Why?
As this is the base crosschain contract for all the payment processors

* test: add PP_CrossChainBase test file

* refactor: PP_Everclear_CrossChain test

* fix:fix compliation errors

* fix:tests and revert statements

* chore:format

* fix:add test cases for exposed function

* refactor: PP_CrossChainBase & PP_EverClear_CrossCahin

What has been done?
- Add TokenReleased event
- Removed unused parameters
- Removed unused WETH
- Inverter standard

* wip

* fix:add tests for execute bridge transfer

* fix:add test for transfer token function

* fix:add valid payment order test

* chore:fmt

* bugfix: resolve test failing in PP_Everclear_CrossChain

---------

Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>
Co-authored-by: JeffreyJoel <jowoloko@gmail.com>
Co-authored-by: Marvin <43185740+Zitzak@users.noreply.github.com>
fabianschu pushed a commit that referenced this pull request Jun 3, 2025
0xNuggan added a commit that referenced this pull request Jun 13, 2025
* Crosschain PP Contract addition - DRAFT (#686)

* add cross-chain module, contracts compile

* refactor tempalte module

* fix compile issues

* add todo's for implementation contract

* added notes handoff

* add more notes

* fix compile issues before everclear impl

* add everclear poc impl

* add everclear logic impl

* remove old templates

* code compile issue solved

* code compile issue solved

* fix minor dependency

* remove file

* added contract for bridge testing

* comment our bridge test

* add tests for base contracts

* fix file structure

* uncomment bridge return value and run fmt

* change contract to abstract

* add logic to PP_Connext_Crosschain

* fix inheritance chain

* remove function impl

* restructure directories

* seperate interfaces

* remove unecessary state variables

* add templates

* contracts compile

* adjust issues from inheritance chain

* readd execute Bridge

* fix compile error

---------

Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: Marvin <43185740+Zitzak@users.noreply.github.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>

* Fix array orderring mismatch bug

* address _setFlags() comment

* address PaymentRouter comment

* fix review comments

* Fix: Revert to integer-based order ID (#707)

* Fix: Resolve typos

* gas optimization in "_setFlags"

* improve flag setting UX

* bugfix

* Add Valid Payment Order check to ProcessPayments

* FIx: Move to stable version of Foundry

* contract renaming to V2

* fix: merge conflict

* Feat: Everclear crosschain payment processor and base (#694)

* add cross-chain module, contracts compile

* refactor tempalte module

* fix compile issues

* add todo's for implementation contract

* added notes handoff

add more notes

* fix compile issues before everclear impl

* add everclear poc impl

* add everclear logic impl

* remove old templates

* code compile issue solved

code compile issue solved

* fix minor dependency

* remove file

* added contract for bridge testing

comment our bridge test

* add tests for base contracts

* fix file structure

* uncomment bridge return value and run fmt

* change contract to abstract

* add logic to PP_Connext_Crosschain

* fix inheritance chain

* remove function impl

* seperate interfaces

* remove unecessary state variables

* remove unecessary state variables

* add unit tests for Connext

* unit test processPayments & xcall

fix merge conflicts

fix file structure

fix merge conflicts

finish rebasing

* fix directory structure

* unit test chainid test

* unit test processpayments test

* unit test paymentId check and test

* unit test chainId and ProcessPayment

* unit test paymentId check and test

* resolve conflicts

rebasing

rebasing

* add unit test verify bridgeData

* add unit test process payments insufficient balance

* add feedback comment

fix paths after rebase

rebased and add init

* fixed unit tests after rebase

remove init functions

* add comments and fuzz tests

add notes

* refrator test file and add unit tests

* verify executionData & add unit tests

* add ttl validation

* refractor unit tests

* add unit tests CrosschainBase_v1

* singlePayment fuzz tests added

* move balance setup internal function

* multiplePayment fuzz tests added

* camelcase changes for CrossChainBase contract

* add gherking comments

* remove unecessary variables and add comments

* add more gherkin to each test

* add validation of ttl

* add getbridgedata and natspec

* chore: cleaned code changed event name

* add templates folder

* emit PaymentProcessed via Interface

* chore: use exposed payment processor

* update gherkin for tests

* add assertions to payment processor test

* update gherkin and remove vs code settings

* feat: add cancel payments

* feat:add cancel payment & test

* feat:add retry payments & test

* fix:retry payments test

* fix:format

* fix:fmt and standard updates

* chore:delete bridging folder

* fix:rebase onto feature

* chore:remove redundant files

* fix:add standard to test file

* chore:remove redundant files

* fix:update crosschain base format

* fix:delete console import

* fix:move files to proper directories

* fix:remove impl for functions

* fix: fix retry failed payments

* chore:add comments for clarity

* fix:remove files

* add tests for unhappy paths

* chore:change mapping name

* remove redundant file

* chore:rename file

* add base test file

* fix: remove chainid impl

* chore: add unit tests

* chore: add unit tests

* fix: make unit tests generic input

* fix: process payment if else

* chore: add unit tests for PP_Crosschain_v1

* fix: add auth checks and retrypayment issue and format unit tests

* fix: change test to fuzz tests, fix minor bugs

* fix: code format invertor standard

* fix: change the _validateTransferRequest msg.sender to client

* fix: refractor the unit tests

* chore: add unit tests for client.amountPaid functionality

* fix: track processedIntentId fix

* feat: add unclaimed amount impl

* fix: format code

* fix: follow invertor standard

* refactor: Rename ERC20PaymentClientBase_v1 to v2

* refactor: adapt implementation and tests to new Payment order struct

What has been done:
- Comment implementation where it didn't compile instead of updating it
- Copied and commented test that were failing because of the change. Changed the tests to work with empty data

* feat(IERC20PaymentClientBase_v2): add maxFee and TTL to payment order comment

* refactor: CrossChainBase_v1 & ICrossChainBase_v1

What has been done:
- Removed `processPayments()` as the base is no PP
- Remove `executionData` from `executeBridgeTransfer` because of move to new payment order
- Add __gap for upgrade
- Removed unnused events/errors/struct
- Inverter Standard
 - Cleaned up import
 - Update headers in files
 - Moved functions to the correct place in file
 - Append underscore in function parameters
 - Add explicit name to return variables

* refactor: PP_Crosschain_v1 & IPP_Crosschain_v1

What has been done?
- Remove `processPayments()` as it's not an implementation but abstract
- Moved `validPaymentOrder()` from this abstract to the connext implementation,
because what makes a payment order valid differs for each implementation given the
data/flags field send
- Moved the following functionalities from the connext implementation to this abstract,
as each crosschain PP will need them, so they can be in the base:
  - `unclaimable()`
  - `claimPreviouslyUnclaimable()`
  - the internal mapping to track the unclaimable amounts
- Removed internal functions `validTimes()` as the crosschain PP doesn't vest orders
- Removed unused events/errors/structs
- Inverter Standard
  - Made state variable internal and add getters
  - Cleaned up import
  - Update headers in files
  - Moved functions to the correct place in file
  - Append underscore in function parameters
  - Add explicit name to return variables

* refactor: PP_Connext_Crosschain_v1 & IPP_Connext_Crosschain_v1

What has been done:
- Update contract with the new payment order struct, which introduces the
following changed:
  - Add Flags constants that are used to validate and read the data field of the payment order
  - Add internal functions `_validateFlagsAndData()` & `_getEverclearMaxFeeAndTTL()` to validate
  and retrieve the `maxFee` and `ttl` from the data field of the payment order
  - Remove all parameters for `executionData` as the values needed are now retrieved from
  the data fields of the payment order struct
- Moved `unclaimableAmountsForRecipient` state variable from this implementation to the base
abstract contract
- Add internal functions `_validPaymentOrder()` which checks all the values of the new
payment order. Also add call to this function in `processPayments()`
- Add internal function `_transferTokenAndApproveToBridge()` which is called when we pull assets
from the payment client, but not when retrying bridging, removing the need to pass as boolean param
to internal function `_createCrossChainIntent()`
- Renamed `retryFailedTransfer()` to `retryFailedBridgeTransfer()` to be more explicit
- Removed unused events/errors/struct
- Inverter Standard
  - Cleaned up import
  - Update headers in files
  - Moved functions to the correct place in file
  - Make state variable internal and add getters
  - Append underscore in function parameters
  - Add explicit name to return variables

* test: WIP

* fix: code refactor & fix unit tests

* fix: code refactor & fix unit tests

* chore: add interface

* chore: inverter standard changes #1

* chore: inverter standard changes #2

* chore: standardize CrossChain naming convention across files and contracts, and remove unused imports in tests

* fix:retunr data from mapping

* fix:compliation error

* refactor: refactor natspec and state variable visibility

What has been done?
- Add `.` after comments
- Set constants back to public after mistake to make them private
- update author

* refactor: Update natspec

* refactor: clean up test file, remove duplicate file after renaming

* refactor: update version in mocks

* Fix camelcase naming issue

* Remove case-conflicting file from remote tracking

* Delete test/modules/paymentProcessor/abstracts/CrosschainBase_v1.t.sol

Delete duplicate file

* fix: resolve renaming issue

* fix: inverter standard and event emission

* fix:missing modifier

* fix:fix failing tests

* fix:fix gherkin in base test

* fix:fix tag spacing and inverter  standard comments

* fix:fix imports in tests

* fix:remove helper function

* fix:tag spacing

* fix:camel case contract names

* fix: fix tests add fuzzing

* fix: function params

* fix:init natsec

* fix: folder for mocks

* fix: camelcase file issue

* fix:camel casing and compliation

* fix: file thingy issue

* Remove camelCase

* fix:compliation erro

* fix:test names

* refactor: Delete CrossChainBase_v1 contract and interface

Why?
- The contract is supposed to function as base crossChain contract for
all modules. However it is leaning to much towards payment processing due
to the use of payment orders. Because of that, the decision is make to merge it with
the PP_CrossChain contract

* refactor: PP_CrossChain_v1

What has been done?
- Add deleted functionalities from CrossChainBase
- Update contract Natspec
- Update event that emits bridge intend
  - Add more members to make it easier for the indexer
  - rename event
- Add missing Inverter Standard changes

* refactor: PP_Connext_CrossChain_v1

What has been done?
- Update contract natspec
- Update event when bridging has been succesful
- Add missing changes for Inverter Standard

* refactor: Rename implementation contract to PP_Everclear_CrossChain_v1

Why?
The contract was named after the bridging infra we used initially,
i.e. Connext. This has been changed to Everclear

* refactor: rename PP_CrossChain into PP_CrossChainBase

Why?
As this is the base crosschain contract for all the payment processors

* test: add PP_CrossChainBase test file

* refactor: PP_Everclear_CrossChain test

* fix:fix compliation errors

* fix:tests and revert statements

* chore:format

* fix:add test cases for exposed function

* refactor: PP_CrossChainBase & PP_EverClear_CrossCahin

What has been done?
- Add TokenReleased event
- Removed unused parameters
- Removed unused WETH
- Inverter standard

* wip

* fix:add tests for execute bridge transfer

* fix:add test for transfer token function

* fix:add valid payment order test

* chore:fmt

* bugfix: resolve test failing in PP_Everclear_CrossChain

---------

Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>
Co-authored-by: JeffreyJoel <jowoloko@gmail.com>
Co-authored-by: Marvin <43185740+Zitzak@users.noreply.github.com>

* Refactor: update version

* fix: address review comment for PP_Everclear_CrossChain

What has been done?
- add safe transfer
- deleted retryFailedBridgeTransfer function
- moved storage slot gap

* fix: address review comment PP_CrossChainBase

What has been done?
- add safe transfer
- move gap

* fix: resolve merge conflict

* refactor: resolve repo wide compiler warnings

* Create Everclear Payment Router Mock

* Add E2E test setup

* fix _getEverclearMaxFeeAndTTL()

* passing E2E, no event checking

* Intermediate state

* add ai memory bank to gitignore

* move test EverclearE2E test file

* add event checks

* start ai context cleanup

* delete ai context

* end ai-context cleanup

* refactor: resolve merge errors of imports

* refactor: update flags for payment order in Everclear PP

---------

Co-authored-by: leeftk <40748420+leeftk@users.noreply.github.com>
Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: 0xNuggan <82726722+0xNuggan@users.noreply.github.com>
Co-authored-by: Marvin Kruse <marvinkruse@users.noreply.github.com>
Co-authored-by: JeffreyJoel <jowoloko@gmail.com>
marvinkruse added a commit that referenced this pull request Jun 20, 2025
* Crosschain PP Contract addition - DRAFT (#686)

* add cross-chain module, contracts compile

* refactor tempalte module

* fix compile issues

* add todo's for implementation contract

* added notes handoff

* add more notes

* fix compile issues before everclear impl

* add everclear poc impl

* add everclear logic impl

* remove old templates

* code compile issue solved

* code compile issue solved

* fix minor dependency

* remove file

* added contract for bridge testing

* comment our bridge test

* add tests for base contracts

* fix file structure

* uncomment bridge return value and run fmt

* change contract to abstract

* add logic to PP_Connext_Crosschain

* fix inheritance chain

* remove function impl

* restructure directories

* seperate interfaces

* remove unecessary state variables

* add templates

* contracts compile

* adjust issues from inheritance chain

* readd execute Bridge

* fix compile error

---------

Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: Marvin <43185740+Zitzak@users.noreply.github.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>

* Fix array orderring mismatch bug

* address _setFlags() comment

* address PaymentRouter comment

* fix review comments

* Fix: Revert to integer-based order ID (#707)

* Fix: Resolve typos

* gas optimization in "_setFlags"

* improve flag setting UX

* bugfix

* Add Valid Payment Order check to ProcessPayments

* FIx: Move to stable version of Foundry

* contract renaming to V2

* fix: merge conflict

* Feat: Everclear crosschain payment processor and base (#694)

* add cross-chain module, contracts compile

* refactor tempalte module

* fix compile issues

* add todo's for implementation contract

* added notes handoff

add more notes

* fix compile issues before everclear impl

* add everclear poc impl

* add everclear logic impl

* remove old templates

* code compile issue solved

code compile issue solved

* fix minor dependency

* remove file

* added contract for bridge testing

comment our bridge test

* add tests for base contracts

* fix file structure

* uncomment bridge return value and run fmt

* change contract to abstract

* add logic to PP_Connext_Crosschain

* fix inheritance chain

* remove function impl

* seperate interfaces

* remove unecessary state variables

* remove unecessary state variables

* add unit tests for Connext

* unit test processPayments & xcall

fix merge conflicts

fix file structure

fix merge conflicts

finish rebasing

* fix directory structure

* unit test chainid test

* unit test processpayments test

* unit test paymentId check and test

* unit test chainId and ProcessPayment

* unit test paymentId check and test

* resolve conflicts

rebasing

rebasing

* add unit test verify bridgeData

* add unit test process payments insufficient balance

* add feedback comment

fix paths after rebase

rebased and add init

* fixed unit tests after rebase

remove init functions

* add comments and fuzz tests

add notes

* refrator test file and add unit tests

* verify executionData & add unit tests

* add ttl validation

* refractor unit tests

* add unit tests CrosschainBase_v1

* singlePayment fuzz tests added

* move balance setup internal function

* multiplePayment fuzz tests added

* camelcase changes for CrossChainBase contract

* add gherking comments

* remove unecessary variables and add comments

* add more gherkin to each test

* add validation of ttl

* add getbridgedata and natspec

* chore: cleaned code changed event name

* add templates folder

* emit PaymentProcessed via Interface

* chore: use exposed payment processor

* update gherkin for tests

* add assertions to payment processor test

* update gherkin and remove vs code settings

* feat: add cancel payments

* feat:add cancel payment & test

* feat:add retry payments & test

* fix:retry payments test

* fix:format

* fix:fmt and standard updates

* chore:delete bridging folder

* fix:rebase onto feature

* chore:remove redundant files

* fix:add standard to test file

* chore:remove redundant files

* fix:update crosschain base format

* fix:delete console import

* fix:move files to proper directories

* fix:remove impl for functions

* fix: fix retry failed payments

* chore:add comments for clarity

* fix:remove files

* add tests for unhappy paths

* chore:change mapping name

* remove redundant file

* chore:rename file

* add base test file

* fix: remove chainid impl

* chore: add unit tests

* chore: add unit tests

* fix: make unit tests generic input

* fix: process payment if else

* chore: add unit tests for PP_Crosschain_v1

* fix: add auth checks and retrypayment issue and format unit tests

* fix: change test to fuzz tests, fix minor bugs

* fix: code format invertor standard

* fix: change the _validateTransferRequest msg.sender to client

* fix: refractor the unit tests

* chore: add unit tests for client.amountPaid functionality

* fix: track processedIntentId fix

* feat: add unclaimed amount impl

* fix: format code

* fix: follow invertor standard

* refactor: Rename ERC20PaymentClientBase_v1 to v2

* refactor: adapt implementation and tests to new Payment order struct

What has been done:
- Comment implementation where it didn't compile instead of updating it
- Copied and commented test that were failing because of the change. Changed the tests to work with empty data

* feat(IERC20PaymentClientBase_v2): add maxFee and TTL to payment order comment

* refactor: CrossChainBase_v1 & ICrossChainBase_v1

What has been done:
- Removed `processPayments()` as the base is no PP
- Remove `executionData` from `executeBridgeTransfer` because of move to new payment order
- Add __gap for upgrade
- Removed unnused events/errors/struct
- Inverter Standard
 - Cleaned up import
 - Update headers in files
 - Moved functions to the correct place in file
 - Append underscore in function parameters
 - Add explicit name to return variables

* refactor: PP_Crosschain_v1 & IPP_Crosschain_v1

What has been done?
- Remove `processPayments()` as it's not an implementation but abstract
- Moved `validPaymentOrder()` from this abstract to the connext implementation,
because what makes a payment order valid differs for each implementation given the
data/flags field send
- Moved the following functionalities from the connext implementation to this abstract,
as each crosschain PP will need them, so they can be in the base:
  - `unclaimable()`
  - `claimPreviouslyUnclaimable()`
  - the internal mapping to track the unclaimable amounts
- Removed internal functions `validTimes()` as the crosschain PP doesn't vest orders
- Removed unused events/errors/structs
- Inverter Standard
  - Made state variable internal and add getters
  - Cleaned up import
  - Update headers in files
  - Moved functions to the correct place in file
  - Append underscore in function parameters
  - Add explicit name to return variables

* refactor: PP_Connext_Crosschain_v1 & IPP_Connext_Crosschain_v1

What has been done:
- Update contract with the new payment order struct, which introduces the
following changed:
  - Add Flags constants that are used to validate and read the data field of the payment order
  - Add internal functions `_validateFlagsAndData()` & `_getEverclearMaxFeeAndTTL()` to validate
  and retrieve the `maxFee` and `ttl` from the data field of the payment order
  - Remove all parameters for `executionData` as the values needed are now retrieved from
  the data fields of the payment order struct
- Moved `unclaimableAmountsForRecipient` state variable from this implementation to the base
abstract contract
- Add internal functions `_validPaymentOrder()` which checks all the values of the new
payment order. Also add call to this function in `processPayments()`
- Add internal function `_transferTokenAndApproveToBridge()` which is called when we pull assets
from the payment client, but not when retrying bridging, removing the need to pass as boolean param
to internal function `_createCrossChainIntent()`
- Renamed `retryFailedTransfer()` to `retryFailedBridgeTransfer()` to be more explicit
- Removed unused events/errors/struct
- Inverter Standard
  - Cleaned up import
  - Update headers in files
  - Moved functions to the correct place in file
  - Make state variable internal and add getters
  - Append underscore in function parameters
  - Add explicit name to return variables

* test: WIP

* fix: code refactor & fix unit tests

* fix: code refactor & fix unit tests

* chore: add interface

* chore: inverter standard changes #1

* chore: inverter standard changes #2

* chore: standardize CrossChain naming convention across files and contracts, and remove unused imports in tests

* fix:retunr data from mapping

* fix:compliation error

* refactor: refactor natspec and state variable visibility

What has been done?
- Add `.` after comments
- Set constants back to public after mistake to make them private
- update author

* refactor: Update natspec

* refactor: clean up test file, remove duplicate file after renaming

* refactor: update version in mocks

* Fix camelcase naming issue

* Remove case-conflicting file from remote tracking

* Delete test/modules/paymentProcessor/abstracts/CrosschainBase_v1.t.sol

Delete duplicate file

* fix: resolve renaming issue

* fix: inverter standard and event emission

* fix:missing modifier

* fix:fix failing tests

* fix:fix gherkin in base test

* fix:fix tag spacing and inverter  standard comments

* fix:fix imports in tests

* fix:remove helper function

* fix:tag spacing

* fix:camel case contract names

* fix: fix tests add fuzzing

* fix: function params

* fix:init natsec

* fix: folder for mocks

* fix: camelcase file issue

* fix:camel casing and compliation

* fix: file thingy issue

* Remove camelCase

* fix:compliation erro

* fix:test names

* refactor: Delete CrossChainBase_v1 contract and interface

Why?
- The contract is supposed to function as base crossChain contract for
all modules. However it is leaning to much towards payment processing due
to the use of payment orders. Because of that, the decision is make to merge it with
the PP_CrossChain contract

* refactor: PP_CrossChain_v1

What has been done?
- Add deleted functionalities from CrossChainBase
- Update contract Natspec
- Update event that emits bridge intend
  - Add more members to make it easier for the indexer
  - rename event
- Add missing Inverter Standard changes

* refactor: PP_Connext_CrossChain_v1

What has been done?
- Update contract natspec
- Update event when bridging has been succesful
- Add missing changes for Inverter Standard

* refactor: Rename implementation contract to PP_Everclear_CrossChain_v1

Why?
The contract was named after the bridging infra we used initially,
i.e. Connext. This has been changed to Everclear

* refactor: rename PP_CrossChain into PP_CrossChainBase

Why?
As this is the base crosschain contract for all the payment processors

* test: add PP_CrossChainBase test file

* refactor: PP_Everclear_CrossChain test

* fix:fix compliation errors

* fix:tests and revert statements

* chore:format

* fix:add test cases for exposed function

* refactor: PP_CrossChainBase & PP_EverClear_CrossCahin

What has been done?
- Add TokenReleased event
- Removed unused parameters
- Removed unused WETH
- Inverter standard

* wip

* fix:add tests for execute bridge transfer

* fix:add test for transfer token function

* fix:add valid payment order test

* chore:fmt

* bugfix: resolve test failing in PP_Everclear_CrossChain

---------

Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>
Co-authored-by: JeffreyJoel <jowoloko@gmail.com>
Co-authored-by: Marvin <43185740+Zitzak@users.noreply.github.com>

* Refactor: update version

* fix: address review comment for PP_Everclear_CrossChain

What has been done?
- add safe transfer
- deleted retryFailedBridgeTransfer function
- moved storage slot gap

* fix: address review comment PP_CrossChainBase

What has been done?
- add safe transfer
- move gap

* fix: resolve merge conflict

* refactor: resolve repo wide compiler warnings

* Create Everclear Payment Router Mock

* Add E2E test setup

* fix _getEverclearMaxFeeAndTTL()

* passing E2E, no event checking

* Intermediate state

* add ai memory bank to gitignore

* move test EverclearE2E test file

* add event checks

* start ai context cleanup

* delete ai context

* end ai-context cleanup

* refactor: resolve merge errors of imports

* refactor: update flags for payment order in Everclear PP

---------

Co-authored-by: leeftk <40748420+leeftk@users.noreply.github.com>
Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: 0xNuggan <82726722+0xNuggan@users.noreply.github.com>
Co-authored-by: Marvin Kruse <marvinkruse@users.noreply.github.com>
Co-authored-by: JeffreyJoel <jowoloko@gmail.com>
0xNuggan added a commit that referenced this pull request Sep 17, 2025
* init: create the funding pot v1 template

* feat: funding pot admin authorization

* test: add tests for funding pot contract

* feat: add checks for granting and revoking roles

* feat: add funding pot admin role check

* test: add gherkin guide and unit tests

* fix: add missing internal function to exposed_

* chore: remove redundant template code

* test: remove unused test code

* test: code format and unit tests

* chore: apply PR review changes

* Test: Add test for internal function

* chore: remove redundant code

* chore: inverter standard change

* Feat: Add round creation and edit functions

* feat: create and edit rounds implementation

* test: add tests for the edit rounds functionality

* fix: follow inverter standard and remove redundant code

* fix: follow inverter standard and remove redundant code

* fix: follow inverter standard and remove redundant code

* feat: add access criteria implementation

* test: code format & access control criteria unit tests

* fix: inverter standard changes

* fix: add bool to getRoundAccessCriteria()

* fix: inverter standard changes

* fix: inverter standard changes

* fix: PR Review Fix#1

* fix: PR Review Fix#2

* fix: PR Review Fix#3

* fix: PR Review Fix#4

* fix:remove helper functions, fix stack too deep

* fix:support interface issue and redundant param variables

* chore: fmt

* feat: setAccessCriteriaPrivilages() implementation

* feat: update round contribution functionality

* test: add unhappy paths for open access criteria

* test: add unhappy paths for NFT, merkle root and allowed list access criteria

* test: add all unhappy paths

* test: add happy paths based on the technical specifications

* fix:update code based on internal review

* fix:initialise contributing token properly

* feat: implement personal cap based on access criteria

* add exposed functions

* test: add fuzz tests for internal contribution functions

* rebase changes

* add closure logic

* fix: fix broken tests

* fix:fix all failing test

* fix:rename accessId to accessCriteriaId

* fix: fix warning

* fix:remove unecessary helper function

* fix:add tests for exposed functions

* test: add gherkin comments to contribution tests

* fix:add todos for jeffrey

* feat: change allowed addresses array to mapping in AccessCriteria struct

* fix: PR Review Fix#1

* fix: PR Review Fix#2

* fix: fix the personal cap rollover issue

* fix: remove redundant code

* fix: PR Review Fix#3

* fix: PR Review Fix#4

* PR Review Fix#5

* fix: git rebase

* test: add unit tests closeRound

* fix: code format and unit tests

* fix: mock the bonding curve token

* fix: PR Review fixes#1

* fix: PR Review fixes#2

* fix: accessId unit test bug

* fix: PR Review fixes#3

* fix: PR Review fixes#4

* fix: unit test closeround via mock

* fix: PR Review Fix

* fix: PR Review Fix: add batches for creating payment orders

* fix: fix stack too deep error

* PR Review Fix: format and code cleanup

* fix:gas/contract optimziations

* fix: PR feedback

* fix: PR Review

* chore: `contributeToRound` => `contributeToRoundFor`

* fix: consistent uint64 for roundId

* chore: formatting

* fix: remove mock contract

* fix: remove file

* chore: remove unused variables

* fix: e2e test debug

* test: Funding Pot E2E test

* fix: minor bug fixes

* chore: rebase

* test: add e2e test

* fix: add lifecycle test and fix set up

* fix: add notes to e2e

* fix: compile issues

* chore: e2e test closeround

* test: improve test coverage

* chore: merge branch contribute and close functionality

* fix: fix merge changes

* chore: rebase contribute-close onto dev

* fix: fix rebase issues

* fix: fix failing test

* tests: improve test coverage

* chore: code format

* chore: code format & fix minor bugs

* chore: Remove stale/irrelevant values in set/edit roundAccessCriteria

* chore: add support for multiple access control criteria

* fix: fix double underscore styling issue

* chore: change 'accessId' to 'accessCriteriaId' in the test file

* chore: convert necessary getter functions from internal to external

* fix: add missing assertion for e2e test

* fix: add optimization to reduce contract size

* feat: accumulation mode

* chore: adds tests for accumulation mode behavior

* feat: globally configurable start for accumulation logic

* fix: mode-specific logic & tests

* chore: contract size excess 879 -> 239

* chore: custom compiler settings for FP

* fix: adds missing additional_compiler_profiles

* fix: max personal cap defined by highest access criteria

* chore: test structure cleanup

* chore: fmt

* chore: removes redundant code

* fix: compiler warnings

* chore: remove redundant check on zero contribution

* chore: fmt

* fix: `>=` instead of `==`

* fix: merge conflicts

* fix: audit fixes #1

* fix: audit fixes 2

* Feat/contract resizing (#769)

* fix: new audit fixes 1

* fix: new audit fixes 2

* fix: new audit fixes 3

* fix: audit fixes 4

* fix: new audit fixes 4 -remove unneccessary code

* fix: new audit fixes 5

* fix: new audit fixes 5: add getter function

* fix: contract size fix 1

* fix: contract size fix 2: remove getter functions and make public

* fix: contract size fix 3

* fix: contract size fix 3: if condition

* contract resizing

* chore:remove uncommented tests

* chore:remove hook validation

---------

Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: Jeffrey Owoloko <72028836+JeffreyJoel@users.noreply.github.com>
Co-authored-by: JeffreyJoel <jowoloko@gmail.com>

* chore: format

---------

Co-authored-by: Zuhaib Mohammed <zzzuhaibmohd@gmail.com>
Co-authored-by: JeffreyJoel <jowoloko@gmail.com>
Co-authored-by: Leandro Faria <lee.lara1219@gmail.com>
Co-authored-by: leeftk <40748420+leeftk@users.noreply.github.com>
Co-authored-by: Jeffrey Owoloko <72028836+JeffreyJoel@users.noreply.github.com>
Co-authored-by: 0xNuggan <82726722+0xNuggan@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants