Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
stevennevins committed Aug 24, 2023
1 parent b6708f1 commit 5f00f1d
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Account Bound Proxies

Account-Bound-Proxies provides a protocol agnostic transaction batching mechanism to improve UX for EOA users. The goal of the smart contracts are:
Account-Bound-Proxies provides a protocol-agnostic transaction batching mechanism to improve UX for EOA users. The goals of the smart contracts are:
1. Improve the UX for EOA users
2. Help protocol developers write simpler, safer, and more atomic interactions.

Expand All @@ -9,14 +9,14 @@ Inspired by earlier work done by @albertocuestacanada from yield protocol, speci
Proxies are intended to be compatible with https://github.com/gnosis/ethers-multisend
UX like -> https://github.com/morpho-labs/gnosis-tx-builder

## Proxy.sol
## AccountBoundProxy.sol

The Proxy.sol is a smart contract that acts as a Proxy and proxy for executing multiple transactions. It is designed to be owned by a single address whose ownership is verifiable from a central onchain registry.
The AccountBoundProxy.sol is a smart contract that acts as a proxy for executing multiple transactions. It is designed to be owned by a single address whose ownership is verifiable from a central onchain registry.

### Main functionalities of the Proxy contract:

- Ownership: The contract has an owner, set during the contract's creation as tx.origin. Only the owner can execute multisend functions or update the option plugin logic address.
- Plugin Logic: The contract has a plugin logic address, which is optional and can be utilized to enhance the functionality of the Proxy, ie Add onReceived hooks for NFTs
- Plugin Logic: The contract has a plugin logic address, which is optional and can be utilized to enhance the functionality of the Proxy, i.e., Add onReceived hooks for NFTs
- Multi-Transaction Execution: The contract provides a function multiSend that allows the owner to execute multiple transactions in a single call. This function uses the multiSend function from the MultiSendCallOnly library which was adapted from Gnosis Safe and is intended to be fully compatible with the transaction encoding and decoding patterns they developed.

## ProxyRegistry.sol
Expand All @@ -25,7 +25,7 @@ The ProxyRegistry.sol is a smart contract that manages the creation, retrieval,

### Main functionalities of the ProxyRegistry contract:

- Proxy Creation: The contract provides a function createProxy that creates a new Proxy contract for a specified user. It uses the Create2 library to predict the address of the new Proxy contract and checks if a contract already exists at that address. If not, it creates a new Proxy contract and emits a ProxyCreated event.
- Proxy Existence Check: The contract provides a function ProxyExistsFor that checks if a Proxy contract exists for a specified user. It uses the Create2 library to predict the address of the Proxy contract and checks if a contract exists at that address.
- Proxy Retrieval: The contract provides a function ProxyFor that gets the address of the Proxy contract for a specified user. It uses the Create2 library to predict the address of the Proxy contract.
- Proxy Ownership Check: The contract provides a function ownerOf that gets the owner of a Proxy contract. It uses the IOwner interface to get the owner of the Proxy contract and checks if the owner matches the predicted owner.
- Proxy Creation: The contract provides a function createProxy that creates a new AccountBoundProxy contract for a specified user. It uses the Create2 library to predict the address of the new AccountBoundProxy contract and checks if a contract already exists at that address. If not, it creates a new AccountBoundProxy contract and emits a ProxyCreated event.
- Proxy Existence Check: The contract provides a function proxyExistsFor that checks if an AccountBoundProxy contract exists for a specified user. It uses the Create2 library to predict the address of the AccountBoundProxy contract and checks if a contract exists at that address.
- Proxy Retrieval: The contract provides a function proxyFor that gets the address of the AccountBoundProxy contract for a specified user. It uses the Create2 library to predict the address of the Proxy contract.
- Proxy Ownership Check: The contract provides a function ownerOf that gets the owner of an AccountBoundProxy contract. It uses the IOwner interface to get the owner of the Proxy contract and checks if the owner matches the predicted owner.

0 comments on commit 5f00f1d

Please sign in to comment.