update documentation
This commit is contained in:
		
							parent
							
								
									f02dad07c8
								
							
						
					
					
						commit
						1ffa9c6b5c
					
				@ -21,8 +21,6 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
    using DT for DT.Lock;
 | 
			
		||||
    using DT for DT.LockStatus;
 | 
			
		||||
 | 
			
		||||
    /// ███ Storage ████████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
    uint256 public lockCounter;
 | 
			
		||||
 | 
			
		||||
    /// @dev List of Locks.
 | 
			
		||||
@ -30,8 +28,6 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
    /// @dev Stores an relayer's last computed credit.
 | 
			
		||||
    mapping(uint256 => uint256) public userRecord;
 | 
			
		||||
 | 
			
		||||
    /// ███ Constructor ████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
    constructor(
 | 
			
		||||
        uint256 defaultBlocks,
 | 
			
		||||
        address[] memory validSigners,
 | 
			
		||||
@ -48,15 +44,13 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
        ) 
 | 
			
		||||
        payable {/*  */}
 | 
			
		||||
 | 
			
		||||
    /// ███ Public FX ██████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
    /// @notice Creates a deposit order based on a seller's
 | 
			
		||||
    /// offer of an amount of ERC20 tokens.
 | 
			
		||||
    /// @notice Seller needs to send his tokens to the P2PIX smart contract.
 | 
			
		||||
    /// @param pixTarget Pix key destination provided by the offer's seller.
 | 
			
		||||
    /// @param allowlistRoot Optional allow list merkleRoot update `bytes32` value.
 | 
			
		||||
    /// as the deposit identifier.
 | 
			
		||||
    /// @dev Function sighash: 0xbfe07da6.
 | 
			
		||||
    /// @dev Function sighash: 0x5e918943
 | 
			
		||||
    function deposit(
 | 
			
		||||
        string calldata pixTarget,
 | 
			
		||||
        bytes32 allowlistRoot,
 | 
			
		||||
@ -104,8 +98,8 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
 | 
			
		||||
    /// @notice Enables seller to invalidate future
 | 
			
		||||
    /// locks made to his/her token offering order.
 | 
			
		||||
    /// @dev This function does not affect any ongoing active locks.
 | 
			
		||||
    /// @dev Function sighash: 0x72fada5c.
 | 
			
		||||
    /// @notice This function does not affect any ongoing active locks.
 | 
			
		||||
    /// @dev Function sighash: 0x6d82d9e0
 | 
			
		||||
    function setValidState(ERC20 token, bool state) public {
 | 
			
		||||
        uint256 _sellerBalance = __sellerBalance(msg.sender, token);
 | 
			
		||||
 | 
			
		||||
@ -124,22 +118,22 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
 | 
			
		||||
    /// @notice Public method designed to lock an remaining amount of
 | 
			
		||||
    /// the deposit order of a seller.
 | 
			
		||||
    /// @dev Transaction forwarding must leave `merkleProof` empty;
 | 
			
		||||
    /// @notice Transaction forwarding must leave `merkleProof` empty;
 | 
			
		||||
    /// otherwise, the trustedForwarder must be previously added 
 | 
			
		||||
    /// to a seller whitelist.
 | 
			
		||||
    /// @dev This method can be performed either by:
 | 
			
		||||
    /// @notice This method can be performed either by:
 | 
			
		||||
    /// - An user allowed via the seller's allowlist;
 | 
			
		||||
    /// - An user with enough userRecord to lock the wished amount;
 | 
			
		||||
    /// @dev There can only exist a lock per each `_amount` partitioned
 | 
			
		||||
    /// @notice There can only exist a lock per each `amount` partitioned
 | 
			
		||||
    /// from the total `remaining` value.
 | 
			
		||||
    /// @dev Locks can only be performed in valid orders.
 | 
			
		||||
    /// @notice Locks can only be performed in valid orders.
 | 
			
		||||
    /// @param amount The deposit's remaining amount wished to be locked.
 | 
			
		||||
    /// @param merkleProof Provided as a pass if the `msg.sender` is in the
 | 
			
		||||
    /// seller's allowlist; Left empty otherwise;
 | 
			
		||||
    /// @param expiredLocks An array of `bytes32` identifiers to be
 | 
			
		||||
    /// @param expiredLocks An array of identifiers to be
 | 
			
		||||
    /// provided so to unexpire locks using this transaction gas push.
 | 
			
		||||
    /// @return lockID The `bytes32` value returned as the lock identifier.
 | 
			
		||||
    /// @dev Function sighash: 0x03aaf306.
 | 
			
		||||
    /// @return lockID The lock identifier.
 | 
			
		||||
    /// @dev Function sighash: 0xdc43221c
 | 
			
		||||
    function lock(
 | 
			
		||||
        address seller,
 | 
			
		||||
        ERC20 token,
 | 
			
		||||
@ -196,16 +190,16 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
 | 
			
		||||
    /// @notice Lock release method that liquidate lock
 | 
			
		||||
    /// orders and distributes relayer fees.
 | 
			
		||||
    /// @dev This method can be called by any public actor
 | 
			
		||||
    /// @notice This method can be called by any public actor
 | 
			
		||||
    /// as long the signature provided is valid.
 | 
			
		||||
    /// @dev `relayerPremium` gets splitted equaly
 | 
			
		||||
    /// @notice `relayerPremium` gets splitted equaly
 | 
			
		||||
    /// if relayer addresses differ.
 | 
			
		||||
    /// @dev If the `msg.sender` of this method and `l.relayerAddress` are the same,
 | 
			
		||||
    /// @notice If the `msg.sender` of this method and `l.relayerAddress` are the same,
 | 
			
		||||
    /// `msg.sender` accrues both l.amount and l.relayerPremium as userRecord credit.
 | 
			
		||||
    ///  In case of they differing:
 | 
			
		||||
    /// - `lock` caller gets accrued with `l.amount` as userRecord credit;
 | 
			
		||||
    /// - `release` caller gets accrued with `l.relayerPremium` as userRecord credit;
 | 
			
		||||
    /// @dev Function sighash: 0x4e1389ed.
 | 
			
		||||
    /// @dev Function sighash: 0x11fc7f9a
 | 
			
		||||
    function release(
 | 
			
		||||
        uint256 lockID,
 | 
			
		||||
        bytes32 pixTimestamp,
 | 
			
		||||
@ -254,11 +248,11 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// @notice Unlocks expired locks.
 | 
			
		||||
    /// @dev Triggered in the callgraph by both `lock` and `withdraw` functions.
 | 
			
		||||
    /// @dev This method can also have any public actor as its `tx.origin`.
 | 
			
		||||
    /// @dev For each successfull unexpired lock recovered,
 | 
			
		||||
    /// @notice Triggered in the callgraph by both `lock` and `withdraw` functions.
 | 
			
		||||
    /// @notice This method can also have any public actor as its `tx.origin`.
 | 
			
		||||
    /// @notice For each successfull unexpired lock recovered,
 | 
			
		||||
    /// `userRecord[_castAddrToKey(l.relayerAddress)]` is decreased by half of its value.
 | 
			
		||||
    /// @dev Function sighash: 0x8e2749d6.
 | 
			
		||||
    /// @dev Function sighash: 0xb0983d39
 | 
			
		||||
    function unlockExpired(uint256[] calldata lockIDs)
 | 
			
		||||
        public
 | 
			
		||||
    {
 | 
			
		||||
@ -308,9 +302,9 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// @notice Seller's expired deposit fund sweeper.
 | 
			
		||||
    /// @dev A seller may use this method to recover
 | 
			
		||||
    /// @notice A seller may use this method to recover
 | 
			
		||||
    /// tokens from expired deposits.
 | 
			
		||||
    /// @dev Function sighash: 0x36317972.
 | 
			
		||||
    /// @dev Function sighash: 0xfb8c5ef0
 | 
			
		||||
    function withdraw(
 | 
			
		||||
        ERC20 token,
 | 
			
		||||
        uint256 amount,
 | 
			
		||||
@ -368,15 +362,12 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// ███ Helper FX ██████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
    // solhint-disable-next-line no-empty-blocks
 | 
			
		||||
    receive() external payable {}
 | 
			
		||||
 | 
			
		||||
    /// @notice Private view auxiliar logic that reverts
 | 
			
		||||
    /// on a not expired lock passed as argument of the function.
 | 
			
		||||
    /// @dev Called exclusively by the `unlockExpired` method.
 | 
			
		||||
    /// @dev Function sighash: 0x74e2a0bb.
 | 
			
		||||
    function _notExpired(DT.Lock storage _l) private view {
 | 
			
		||||
        if (_l.expirationBlock > block.number)
 | 
			
		||||
            revert NotExpired();
 | 
			
		||||
@ -517,7 +508,7 @@ contract P2PIX is BaseUtils {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// @notice External getter that returns the status of a lockIDs array.
 | 
			
		||||
    /// @dev Call will not revert if provided with an empty array as parameter.
 | 
			
		||||
    /// @notice Call will not revert if provided with an empty array as parameter.
 | 
			
		||||
    /// @dev Function sighash: 0x49ef8448
 | 
			
		||||
    function getLocksStatus(uint256[] memory ids)
 | 
			
		||||
        external
 | 
			
		||||
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
# DataTypes
 | 
			
		||||
@ -1,264 +0,0 @@
 | 
			
		||||
# EventAndErrors
 | 
			
		||||
 | 
			
		||||
## Events
 | 
			
		||||
 | 
			
		||||
### AllowedERC20Updated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event AllowedERC20Updated(address indexed token, bool indexed state)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description |
 | 
			
		||||
| --------------- | ------- | ----------- |
 | 
			
		||||
| token `indexed` | address | undefined   |
 | 
			
		||||
| state `indexed` | bool    | undefined   |
 | 
			
		||||
 | 
			
		||||
### DepositAdded
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositAdded(address indexed seller, uint256 depositID, address token, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ Events ████████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| seller `indexed` | address | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
| token            | address | undefined   |
 | 
			
		||||
| amount           | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### DepositClosed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositClosed(address indexed seller, uint256 depositID)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| seller `indexed` | address | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### DepositWithdrawn
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositWithdrawn(address indexed seller, uint256 depositID, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| seller `indexed` | address | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
| amount           | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### FundsWithdrawn
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event FundsWithdrawn(address owner, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description |
 | 
			
		||||
| ------ | ------- | ----------- |
 | 
			
		||||
| owner  | address | undefined   |
 | 
			
		||||
| amount | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockAdded
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockAdded(address indexed buyer, bytes32 indexed lockID, uint256 depositID, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| buyer `indexed`  | address | undefined   |
 | 
			
		||||
| lockID `indexed` | bytes32 | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
| amount           | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockBlocksUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockBlocksUpdated(uint256 blocks)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description |
 | 
			
		||||
| ------ | ------- | ----------- |
 | 
			
		||||
| blocks | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockReleased
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockReleased(address indexed buyer, bytes32 lockId)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description |
 | 
			
		||||
| --------------- | ------- | ----------- |
 | 
			
		||||
| buyer `indexed` | address | undefined   |
 | 
			
		||||
| lockId          | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockReturned
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockReturned(address indexed buyer, bytes32 lockId)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description |
 | 
			
		||||
| --------------- | ------- | ----------- |
 | 
			
		||||
| buyer `indexed` | address | undefined   |
 | 
			
		||||
| lockId          | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### ReputationUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event ReputationUpdated(address reputation)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name       | Type    | Description |
 | 
			
		||||
| ---------- | ------- | ----------- |
 | 
			
		||||
| reputation | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### ValidSignersUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event ValidSignersUpdated(address[] signers)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name    | Type      | Description |
 | 
			
		||||
| ------- | --------- | ----------- |
 | 
			
		||||
| signers | address[] | undefined   |
 | 
			
		||||
 | 
			
		||||
## Errors
 | 
			
		||||
 | 
			
		||||
### AddressDenied
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AddressDenied()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Address doesn't exist in a MerkleTree.Address not allowed as relayer.0x3b8474be_
 | 
			
		||||
 | 
			
		||||
### AlreadyReleased
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AlreadyReleased()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Lock already released or returned.0x63b4904e_
 | 
			
		||||
 | 
			
		||||
### AmountNotAllowed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AmountNotAllowed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Wished amount to be locked exceeds the limit allowed.0x1c18f846_
 | 
			
		||||
 | 
			
		||||
### DepositAlreadyExists
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error DepositAlreadyExists()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Deposit already exist and it is still valid.0xc44bd765_
 | 
			
		||||
 | 
			
		||||
### InvalidDeposit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error InvalidDeposit()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Deposit not valid anymore.0xb2e532de_
 | 
			
		||||
 | 
			
		||||
### InvalidSigner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error InvalidSigner()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Signer is not a valid signer.0x815e1d64_
 | 
			
		||||
 | 
			
		||||
### LengthMismatch
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error LengthMismatch()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Arrays' length don't match.0xff633a38_
 | 
			
		||||
 | 
			
		||||
### LoopOverflow
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error LoopOverflow()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Loop bounds have overflowed.0xdfb035c9_
 | 
			
		||||
 | 
			
		||||
### NoTokens
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NoTokens()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_No tokens array provided as argument.0xdf957883_
 | 
			
		||||
 | 
			
		||||
### NotEnoughTokens
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NotEnoughTokens()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Not enough token remaining on deposit.0x22bbb43c_
 | 
			
		||||
 | 
			
		||||
### NotExpired
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NotExpired()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Lock not expired or already released.Another lock with same ID is not expired yet.0xd0404f85_
 | 
			
		||||
 | 
			
		||||
### OnlySeller
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error OnlySeller()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Only seller could call this function.`msg.sender` and the seller differ.0x85d1f726_
 | 
			
		||||
 | 
			
		||||
### TokenDenied
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TokenDenied()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Token address not allowed to be deposited.0x1578328e_
 | 
			
		||||
 | 
			
		||||
### TxAlreadyUsed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TxAlreadyUsed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Transaction already used to unlock payment.0xf490a6ea_
 | 
			
		||||
							
								
								
									
										694
									
								
								docs/P2PIX.md
									
									
									
									
									
								
							
							
						
						
									
										694
									
								
								docs/P2PIX.md
									
									
									
									
									
								
							@ -1,694 +0,0 @@
 | 
			
		||||
# P2PIX
 | 
			
		||||
 | 
			
		||||
## Methods
 | 
			
		||||
 | 
			
		||||
### \_castAddrToKey
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _castAddrToKey(address _addr) external pure returns (uint256 _key)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Public method that handles `address` to `uint256` safe type casting.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0x4b2ae980._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description |
 | 
			
		||||
| ------ | ------- | ----------- |
 | 
			
		||||
| \_addr | address | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name  | Type    | Description |
 | 
			
		||||
| ----- | ------- | ----------- |
 | 
			
		||||
| \_key | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### allowedERC20s
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function allowedERC20s(contract ERC20) external view returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Tokens allowed to serve as the underlying amount of a deposit._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type           | Description |
 | 
			
		||||
| ---- | -------------- | ----------- |
 | 
			
		||||
| \_0  | contract ERC20 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| \_0  | bool | undefined   |
 | 
			
		||||
 | 
			
		||||
### cancelDeposit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function cancelDeposit(uint256 depositID) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Enables seller to invalidate future locks made to his/her token offering order.
 | 
			
		||||
 | 
			
		||||
_This function does not affect any ongoing active locks.Function sighash: 0x72fada5c._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name      | Type    | Description |
 | 
			
		||||
| --------- | ------- | ----------- |
 | 
			
		||||
| depositID | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### defaultLockBlocks
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function defaultLockBlocks() external view returns (uint256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Default blocks that lock will hold tokens._
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### deposit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function deposit(address _token, uint256 _amount, string _pixTarget, bytes32 allowlistRoot) external nonpayable returns (uint256 depositID)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Creates a deposit order based on a seller's offer of an amount of ERC20 tokens.
 | 
			
		||||
 | 
			
		||||
_Seller needs to send his tokens to the P2PIX smart contract.Function sighash: 0xbfe07da6._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name          | Type    | Description                                             |
 | 
			
		||||
| ------------- | ------- | ------------------------------------------------------- |
 | 
			
		||||
| \_token       | address | undefined                                               |
 | 
			
		||||
| \_amount      | uint256 | undefined                                               |
 | 
			
		||||
| \_pixTarget   | string  | Pix key destination provided by the offer's seller. |
 | 
			
		||||
| allowlistRoot | bytes32 | Optional allow list merkleRoot update `bytes32` value.  |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name      | Type    | Description                                                    |
 | 
			
		||||
| --------- | ------- | -------------------------------------------------------------- |
 | 
			
		||||
| depositID | uint256 | The `uint256` return value provided as the deposit identifier. |
 | 
			
		||||
 | 
			
		||||
### depositCount
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function depositCount() external view returns (uint256 _val)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name  | Type    | Description |
 | 
			
		||||
| ----- | ------- | ----------- |
 | 
			
		||||
| \_val | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### lock
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function lock(uint256 _depositID, address _buyerAddress, address _relayerTarget, uint256 _relayerPremium, uint256 _amount, bytes32[] merkleProof, bytes32[] expiredLocks) external nonpayable returns (bytes32 lockID)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Public method designed to lock an remaining amount of the deposit order of a seller.
 | 
			
		||||
 | 
			
		||||
_This method can be performed either by: - An user allowed via the seller's allowlist; - An user with enough userRecord to lock the wished amount; There can only exist a lock per each `_amount` partitioned from the total `remaining` value.Locks can only be performed in valid orders.Function sighash: 0x03aaf306._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type      | Description                                                                                                              |
 | 
			
		||||
| ---------------- | --------- | ------------------------------------------------------------------------------------------------------------------------ |
 | 
			
		||||
| \_depositID      | uint256   | undefined                                                                                                                |
 | 
			
		||||
| \_buyerAddress   | address   | The address of the buyer of a `_depositID`.                                                                              |
 | 
			
		||||
| \_relayerTarget  | address   | Target address entitled to the `relayerPremim`.                                                                          |
 | 
			
		||||
| \_relayerPremium | uint256   | The refund/premium owed to a relayer.                                                                                    |
 | 
			
		||||
| \_amount         | uint256   | The deposit's remaining amount wished to be locked.                                                                  |
 | 
			
		||||
| merkleProof      | bytes32[] | This value should be: - Provided as a pass if the `msg.sender` is in the seller's allowlist; - Left empty otherwise; |
 | 
			
		||||
| expiredLocks     | bytes32[] | An array of `bytes32` identifiers to be provided so to unexpire locks using this transaction gas push.                   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description                                          |
 | 
			
		||||
| ------ | ------- | ---------------------------------------------------- |
 | 
			
		||||
| lockID | bytes32 | The `bytes32` value returned as the lock identifier. |
 | 
			
		||||
 | 
			
		||||
### mapDeposits
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function mapDeposits(uint256) external view returns (uint256 remaining, string pixTarget, address seller, address token, bool valid)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Seller list of deposits_
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name      | Type    | Description |
 | 
			
		||||
| --------- | ------- | ----------- |
 | 
			
		||||
| remaining | uint256 | undefined   |
 | 
			
		||||
| pixTarget | string  | undefined   |
 | 
			
		||||
| seller    | address | undefined   |
 | 
			
		||||
| token     | address | undefined   |
 | 
			
		||||
| valid     | bool    | undefined   |
 | 
			
		||||
 | 
			
		||||
### mapLocks
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function mapLocks(bytes32) external view returns (uint256 depositID, uint256 relayerPremium, uint256 amount, uint256 expirationBlock, address buyerAddress, address relayerTarget, address relayerAddress)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_List of Locks._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description |
 | 
			
		||||
| --------------- | ------- | ----------- |
 | 
			
		||||
| depositID       | uint256 | undefined   |
 | 
			
		||||
| relayerPremium  | uint256 | undefined   |
 | 
			
		||||
| amount          | uint256 | undefined   |
 | 
			
		||||
| expirationBlock | uint256 | undefined   |
 | 
			
		||||
| buyerAddress    | address | undefined   |
 | 
			
		||||
| relayerTarget   | address | undefined   |
 | 
			
		||||
| relayerAddress  | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### owner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function owner() external view returns (address)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### release
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function release(bytes32 lockID, address _relayerTarget, uint256 pixTimestamp, bytes32 r, bytes32 s, uint8 v) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Lock release method that liquidate lock orders and distributes relayer fees.
 | 
			
		||||
 | 
			
		||||
_This method can be called by any public actor as long the signature provided is valid.`relayerPremium` gets splitted equaly if `relayerTarget` addresses differ.If the `msg.sender` of this method and `l.relayerAddress` are the same, `msg.sender` accrues both l.amount and l.relayerPremium as userRecord credit. In case of they differing: - `lock` caller gets accrued with `l.amount` as userRecord credit; - `release` caller gets accrued with `l.relayerPremium` as userRecord credit; Function sighash: 0x4e1389ed._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description                                     |
 | 
			
		||||
| --------------- | ------- | ----------------------------------------------- |
 | 
			
		||||
| lockID          | bytes32 | undefined                                       |
 | 
			
		||||
| \_relayerTarget | address | Target address entitled to the `relayerPremim`. |
 | 
			
		||||
| pixTimestamp    | uint256 | undefined                                       |
 | 
			
		||||
| r               | bytes32 | undefined                                       |
 | 
			
		||||
| s               | bytes32 | undefined                                       |
 | 
			
		||||
| v               | uint8   | undefined                                       |
 | 
			
		||||
 | 
			
		||||
### reputation
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function reputation() external view returns (contract IReputation)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ Storage ████████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type                 | Description |
 | 
			
		||||
| ---- | -------------------- | ----------- |
 | 
			
		||||
| \_0  | contract IReputation | undefined   |
 | 
			
		||||
 | 
			
		||||
### sellerAllowList
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function sellerAllowList(uint256) external view returns (bytes32)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Seller casted to key => Seller's allowlist merkleroot._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### setDefaultLockBlocks
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setDefaultLockBlocks(uint256 _blocks) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name     | Type    | Description |
 | 
			
		||||
| -------- | ------- | ----------- |
 | 
			
		||||
| \_blocks | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### setOwner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setOwner(address newOwner) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name     | Type    | Description |
 | 
			
		||||
| -------- | ------- | ----------- |
 | 
			
		||||
| newOwner | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### setReputation
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setReputation(contract IReputation _reputation) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name         | Type                 | Description |
 | 
			
		||||
| ------------ | -------------------- | ----------- |
 | 
			
		||||
| \_reputation | contract IReputation | undefined   |
 | 
			
		||||
 | 
			
		||||
### setRoot
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setRoot(address addr, bytes32 merkleroot) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name       | Type    | Description |
 | 
			
		||||
| ---------- | ------- | ----------- |
 | 
			
		||||
| addr       | address | undefined   |
 | 
			
		||||
| merkleroot | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### setValidSigners
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setValidSigners(address[] _validSigners) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name           | Type      | Description |
 | 
			
		||||
| -------------- | --------- | ----------- |
 | 
			
		||||
| \_validSigners | address[] | undefined   |
 | 
			
		||||
 | 
			
		||||
### tokenSettings
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function tokenSettings(address[] _tokens, bool[] _states) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name     | Type      | Description |
 | 
			
		||||
| -------- | --------- | ----------- |
 | 
			
		||||
| \_tokens | address[] | undefined   |
 | 
			
		||||
| \_states | bool[]    | undefined   |
 | 
			
		||||
 | 
			
		||||
### unlockExpired
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function unlockExpired(bytes32[] lockIDs) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Unlocks expired locks.
 | 
			
		||||
 | 
			
		||||
_Triggered in the callgraph by both `lock` and `withdraw` functions.This method can also have any public actor as its `tx.origin`.For each successfull unexpired lock recovered, `userRecord[_castAddrToKey(l.relayerAddress)]` is decreased by half of its value.Function sighash: 0x8e2749d6._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name    | Type      | Description |
 | 
			
		||||
| ------- | --------- | ----------- |
 | 
			
		||||
| lockIDs | bytes32[] | undefined   |
 | 
			
		||||
 | 
			
		||||
### userRecord
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function userRecord(uint256) external view returns (uint256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Stores an relayer's last computed credit._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### validBacenSigners
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function validBacenSigners(uint256) external view returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_List of valid Bacen signature addresses_
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| \_0  | bool | undefined   |
 | 
			
		||||
 | 
			
		||||
### withdraw
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function withdraw(uint256 depositID, bytes32[] expiredLocks) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Seller's expired deposit fund sweeper.
 | 
			
		||||
 | 
			
		||||
_A seller may use this method to recover tokens from expired deposits.Function sighash: 0x36317972._
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name         | Type      | Description |
 | 
			
		||||
| ------------ | --------- | ----------- |
 | 
			
		||||
| depositID    | uint256   | undefined   |
 | 
			
		||||
| expiredLocks | bytes32[] | undefined   |
 | 
			
		||||
 | 
			
		||||
### withdrawBalance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function withdrawBalance() external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Contract's underlying balance withdraw method.Function sighash: 0x5fd8c710._
 | 
			
		||||
 | 
			
		||||
## Events
 | 
			
		||||
 | 
			
		||||
### AllowedERC20Updated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event AllowedERC20Updated(address indexed token, bool indexed state)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description |
 | 
			
		||||
| --------------- | ------- | ----------- |
 | 
			
		||||
| token `indexed` | address | undefined   |
 | 
			
		||||
| state `indexed` | bool    | undefined   |
 | 
			
		||||
 | 
			
		||||
### DepositAdded
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositAdded(address indexed seller, uint256 depositID, address token, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ Events ████████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| seller `indexed` | address | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
| token            | address | undefined   |
 | 
			
		||||
| amount           | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### DepositClosed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositClosed(address indexed seller, uint256 depositID)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| seller `indexed` | address | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### DepositWithdrawn
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositWithdrawn(address indexed seller, uint256 depositID, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| seller `indexed` | address | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
| amount           | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### FundsWithdrawn
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event FundsWithdrawn(address owner, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description |
 | 
			
		||||
| ------ | ------- | ----------- |
 | 
			
		||||
| owner  | address | undefined   |
 | 
			
		||||
| amount | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockAdded
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockAdded(address indexed buyer, bytes32 indexed lockID, uint256 depositID, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name             | Type    | Description |
 | 
			
		||||
| ---------------- | ------- | ----------- |
 | 
			
		||||
| buyer `indexed`  | address | undefined   |
 | 
			
		||||
| lockID `indexed` | bytes32 | undefined   |
 | 
			
		||||
| depositID        | uint256 | undefined   |
 | 
			
		||||
| amount           | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockBlocksUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockBlocksUpdated(uint256 blocks)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description |
 | 
			
		||||
| ------ | ------- | ----------- |
 | 
			
		||||
| blocks | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockReleased
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockReleased(address indexed buyer, bytes32 lockId)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description |
 | 
			
		||||
| --------------- | ------- | ----------- |
 | 
			
		||||
| buyer `indexed` | address | undefined   |
 | 
			
		||||
| lockId          | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### LockReturned
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockReturned(address indexed buyer, bytes32 lockId)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name            | Type    | Description |
 | 
			
		||||
| --------------- | ------- | ----------- |
 | 
			
		||||
| buyer `indexed` | address | undefined   |
 | 
			
		||||
| lockId          | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### OwnerUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event OwnerUpdated(address indexed user, address indexed newOwner)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name               | Type    | Description |
 | 
			
		||||
| ------------------ | ------- | ----------- |
 | 
			
		||||
| user `indexed`     | address | undefined   |
 | 
			
		||||
| newOwner `indexed` | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### ReputationUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event ReputationUpdated(address reputation)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name       | Type    | Description |
 | 
			
		||||
| ---------- | ------- | ----------- |
 | 
			
		||||
| reputation | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### ValidSignersUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event ValidSignersUpdated(address[] signers)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name    | Type      | Description |
 | 
			
		||||
| ------- | --------- | ----------- |
 | 
			
		||||
| signers | address[] | undefined   |
 | 
			
		||||
 | 
			
		||||
## Errors
 | 
			
		||||
 | 
			
		||||
### AddressDenied
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AddressDenied()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Address doesn't exist in a MerkleTree.Address not allowed as relayer.0x3b8474be_
 | 
			
		||||
 | 
			
		||||
### AlreadyReleased
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AlreadyReleased()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Lock already released or returned.0x63b4904e_
 | 
			
		||||
 | 
			
		||||
### AmountNotAllowed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AmountNotAllowed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Wished amount to be locked exceeds the limit allowed.0x1c18f846_
 | 
			
		||||
 | 
			
		||||
### DepositAlreadyExists
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error DepositAlreadyExists()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Deposit already exist and it is still valid.0xc44bd765_
 | 
			
		||||
 | 
			
		||||
### InvalidDeposit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error InvalidDeposit()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Deposit not valid anymore.0xb2e532de_
 | 
			
		||||
 | 
			
		||||
### InvalidSigner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error InvalidSigner()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Signer is not a valid signer.0x815e1d64_
 | 
			
		||||
 | 
			
		||||
### LengthMismatch
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error LengthMismatch()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Arrays' length don't match.0xff633a38_
 | 
			
		||||
 | 
			
		||||
### LoopOverflow
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error LoopOverflow()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Loop bounds have overflowed.0xdfb035c9_
 | 
			
		||||
 | 
			
		||||
### NoTokens
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NoTokens()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_No tokens array provided as argument.0xdf957883_
 | 
			
		||||
 | 
			
		||||
### NotEnoughTokens
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NotEnoughTokens()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Not enough token remaining on deposit.0x22bbb43c_
 | 
			
		||||
 | 
			
		||||
### NotExpired
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NotExpired()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Lock not expired or already released.Another lock with same ID is not expired yet.0xd0404f85_
 | 
			
		||||
 | 
			
		||||
### OnlySeller
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error OnlySeller()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Only seller could call this function.`msg.sender` and the seller differ.0x85d1f726_
 | 
			
		||||
 | 
			
		||||
### Reentrancy
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error Reentrancy()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### TokenDenied
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TokenDenied()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Token address not allowed to be deposited.0x1578328e_
 | 
			
		||||
 | 
			
		||||
### TxAlreadyUsed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TxAlreadyUsed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Transaction already used to unlock payment.0xf490a6ea_
 | 
			
		||||
@ -1,6 +1,28 @@
 | 
			
		||||
# Reputation
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## Methods
 | 
			
		||||
## Reputation
 | 
			
		||||
 | 
			
		||||
### maxLimit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 maxLimit
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Asymptote numerator constant value for the `limiter` fx._
 | 
			
		||||
 | 
			
		||||
### magicValue
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 magicValue
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Denominator's constant operand for the `limiter` fx._
 | 
			
		||||
 | 
			
		||||
### constructor
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
constructor() public payable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### limiter
 | 
			
		||||
 | 
			
		||||
@ -8,81 +30,12 @@
 | 
			
		||||
function limiter(uint256 _userCredit) external pure returns (uint256 _spendLimit)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name         | Type    | Description |
 | 
			
		||||
| ------------ | ------- | ----------- |
 | 
			
		||||
| \_userCredit | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name         | Type    | Description |
 | 
			
		||||
| ------------ | ------- | ----------- |
 | 
			
		||||
| \_spendLimit | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### magicValue
 | 
			
		||||
### sqrt
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function magicValue() external view returns (uint256)
 | 
			
		||||
function sqrt(uint256 x) internal pure returns (uint256 z)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Denominator's constant operand for the `limiter` fx. _
 | 
			
		||||
Taken from Solmate's FixedPointMathLib.
 | 
			
		||||
(https://github.com/transmissions11/solmate/blob/main/src/utils/FixedPointMathLib.sol)
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### maxLimit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function maxLimit() external view returns (uint256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Asymptote numerator constant value for the `limiter` fx._
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### owner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function owner() external view returns (address)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### setOwner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setOwner(address newOwner) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name     | Type    | Description |
 | 
			
		||||
| -------- | ------- | ----------- |
 | 
			
		||||
| newOwner | address | undefined   |
 | 
			
		||||
 | 
			
		||||
## Events
 | 
			
		||||
 | 
			
		||||
### OwnerUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event OwnerUpdated(address indexed user, address indexed newOwner)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name               | Type    | Description |
 | 
			
		||||
| ------------------ | ------- | ----------- |
 | 
			
		||||
| user `indexed`     | address | undefined   |
 | 
			
		||||
| newOwner `indexed` | address | undefined   |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										89
									
								
								docs/core/BaseUtils.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								docs/core/BaseUtils.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,89 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## BaseUtils
 | 
			
		||||
 | 
			
		||||
### _setUsedTransactions
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _setUsedTransactions(bytes32 message) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ Helper FX ██████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
### usedTransactions
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function usedTransactions(bytes32 message) public view returns (bool used)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _signerCheck
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _signerCheck(bytes32 _message, bytes _signature) internal view
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _merkleVerify
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _merkleVerify(bytes32[] _merkleProof, bytes32 _root, address _addr) internal pure
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _castBool
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _castBool(bool _valid) internal pure returns (uint256 _validCasted)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### getStr
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function getStr(string str) public pure returns (bytes32 strEnc)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _setSellerBalance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _setSellerBalance(address _sellerKey, contract ERC20 _erc20, uint256 _packed, bytes32 _pixTarget) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _setValidState
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _setValidState(address _sellerKey, contract ERC20 _erc20, uint256 _packed) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _addSellerBalance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _addSellerBalance(address _sellerKey, contract ERC20 _erc20, uint256 _amount) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _decSellerBalance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _decSellerBalance(address _sellerKey, contract ERC20 _erc20, uint256 _amount) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### __sellerBalance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function __sellerBalance(address _sellerKey, contract ERC20 _erc20) internal view returns (uint256 _packed)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _castAddrToKey
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _castAddrToKey(address _addr) public pure returns (uint256 _key)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Public method that handles `address`
 | 
			
		||||
to `uint256` safe type casting.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0x4b2ae980._
 | 
			
		||||
 | 
			
		||||
### _castKeyToAddr
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _castKeyToAddr(uint256 _key) public pure returns (address _addr)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										96
									
								
								docs/core/Constants.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								docs/core/Constants.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,96 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## Constants
 | 
			
		||||
 | 
			
		||||
### _ROOT_UPDATED_EVENT_SIGNATURE
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 _ROOT_UPDATED_EVENT_SIGNATURE
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ Constants ██████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
### _ALLOWED_ERC20_UPDATED_EVENT_SIGNATURE
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 _ALLOWED_ERC20_UPDATED_EVENT_SIGNATURE
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _TRUSTED_FORWARDER_UPDATED_EVENT_SIGNATURE
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 _TRUSTED_FORWARDER_UPDATED_EVENT_SIGNATURE
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _SELLER_ALLOWLIST_SLOT_SEED
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 _SELLER_ALLOWLIST_SLOT_SEED
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Seller casted to key => Seller's allowlist merkleroot.
 | 
			
		||||
mapping(uint256 => bytes32) public sellerAllowList;_
 | 
			
		||||
 | 
			
		||||
### _ALLOWED_ERC20_SLOT_SEED
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 _ALLOWED_ERC20_SLOT_SEED
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Tokens allowed to serve as the underlying amount of a deposit.
 | 
			
		||||
mapping(ERC20 => bool) public allowedERC20s;_
 | 
			
		||||
 | 
			
		||||
### _SELLER_BALANCE_SLOT_SEED
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 _SELLER_BALANCE_SLOT_SEED
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Value in custom storage slot given by:
 | 
			
		||||
    mstore(0x20, token)
 | 
			
		||||
    mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
 | 
			
		||||
    mstore(0x00, seller)
 | 
			
		||||
    let value := sload(keccak256(0x0c, 0x34))._
 | 
			
		||||
 | 
			
		||||
### BITMASK_SB_ENTRY
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 BITMASK_SB_ENTRY
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_The bitmask of `sellerBalance` entry._
 | 
			
		||||
 | 
			
		||||
### BITPOS_VALID
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 BITPOS_VALID
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_The bit position of `valid` in `sellerBalance`._
 | 
			
		||||
 | 
			
		||||
### WAD
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 WAD
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_The scalar of BRZ token._
 | 
			
		||||
 | 
			
		||||
### MAXBALANCE_UPPERBOUND
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 MAXBALANCE_UPPERBOUND
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### REPUTATION_LOWERBOUND
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 REPUTATION_LOWERBOUND
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### LOCKAMOUNT_UPPERBOUND
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 LOCKAMOUNT_UPPERBOUND
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								docs/core/DataTypes.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								docs/core/DataTypes.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## DataTypes
 | 
			
		||||
 | 
			
		||||
### Lock
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
struct Lock {
 | 
			
		||||
  uint256 counter;
 | 
			
		||||
  uint256 expirationBlock;
 | 
			
		||||
  bytes32 pixTarget;
 | 
			
		||||
  uint80 amount;
 | 
			
		||||
  contract ERC20 token;
 | 
			
		||||
  address buyerAddress;
 | 
			
		||||
  address seller;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### LockStatus
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
enum LockStatus {
 | 
			
		||||
  Inexistent,
 | 
			
		||||
  Active,
 | 
			
		||||
  Expired,
 | 
			
		||||
  Released
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										278
									
								
								docs/core/EventAndErrors.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										278
									
								
								docs/core/EventAndErrors.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,278 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## EventAndErrors
 | 
			
		||||
 | 
			
		||||
### DepositAdded
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositAdded(address seller, contract ERC20 token, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x63d8d7d5e63e9840ec91a12a160d27b7cfab294f6ba070b7359692acfe6b03bf_
 | 
			
		||||
 | 
			
		||||
### ValidSet
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event ValidSet(address seller, contract ERC20 token, bool state)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0xca585721b6b442dc9183932f7c84dc2880efb67c4da52cc06873e78971105d49_
 | 
			
		||||
 | 
			
		||||
### DepositWithdrawn
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event DepositWithdrawn(address seller, contract ERC20 token, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x2cd6435b1b961c13f55202979edd0765a809f69a539d8a477436c94c1211e43e_
 | 
			
		||||
 | 
			
		||||
### LockAdded
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockAdded(address buyer, uint256 lockID, address seller, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x8fb3989f70bd172a37d15b41b015e48ea09d59329638377304a4198cd0c4ea65_
 | 
			
		||||
 | 
			
		||||
### LockReleased
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockReleased(address buyer, uint256 lockId, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x364537f14276f2a0ce9905588413f96454cbb8fb2e4f5308389307c1098bede8_
 | 
			
		||||
 | 
			
		||||
### LockReturned
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockReturned(address buyer, uint256 lockId)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x830501e61b8b075e170b22a430e39454bdb12ed3e9620e586430b6ac00079da5_
 | 
			
		||||
 | 
			
		||||
### FundsWithdrawn
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event FundsWithdrawn(address owner, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0xeaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d_
 | 
			
		||||
 | 
			
		||||
### RootUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event RootUpdated(address seller, bytes32 merkleRoot)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632_
 | 
			
		||||
 | 
			
		||||
### AllowedERC20Updated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event AllowedERC20Updated(address token, bool state)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a_
 | 
			
		||||
 | 
			
		||||
### TrustedForwarderUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event TrustedForwarderUpdated(address forwarder, bool state)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0xbee55516e29d3969d3cb8eb01351eb3c52d06f9e2435bd5a8bfe3647e185df92_
 | 
			
		||||
 | 
			
		||||
### ReputationUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event ReputationUpdated(address reputation)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0xe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f_
 | 
			
		||||
 | 
			
		||||
### LockBlocksUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event LockBlocksUpdated(uint256 blocks)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511_
 | 
			
		||||
 | 
			
		||||
### ValidSignersUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event ValidSignersUpdated(address[] signers)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d7_
 | 
			
		||||
 | 
			
		||||
### OnlySeller
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error OnlySeller()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Only seller could call this function.
 | 
			
		||||
`msg.sender` and the seller differ.
 | 
			
		||||
0x85d1f726_
 | 
			
		||||
 | 
			
		||||
### NotExpired
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NotExpired()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Lock not expired or already released.
 | 
			
		||||
Another lock with same ID is not expired yet.
 | 
			
		||||
0xd0404f85_
 | 
			
		||||
 | 
			
		||||
### LoopOverflow
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error LoopOverflow()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Loop bounds have overflowed.
 | 
			
		||||
0xdfb035c9_
 | 
			
		||||
 | 
			
		||||
### InvalidDeposit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error InvalidDeposit()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Deposit not valid anymore.
 | 
			
		||||
0xb2e532de_
 | 
			
		||||
 | 
			
		||||
### NotEnoughTokens
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NotEnoughTokens()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Not enough token remaining on deposit.
 | 
			
		||||
0x22bbb43c_
 | 
			
		||||
 | 
			
		||||
### AlreadyReleased
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AlreadyReleased()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Lock already released or returned.
 | 
			
		||||
0x63b4904e_
 | 
			
		||||
 | 
			
		||||
### TxAlreadyUsed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TxAlreadyUsed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Transaction already used to unlock payment.
 | 
			
		||||
0xf490a6ea_
 | 
			
		||||
 | 
			
		||||
### InvalidSigner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error InvalidSigner()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Signer is not a valid signer.
 | 
			
		||||
0x815e1d64_
 | 
			
		||||
 | 
			
		||||
### AddressDenied
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AddressDenied()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Address doesn't exist in a MerkleTree.
 | 
			
		||||
Address not allowed as relayer.
 | 
			
		||||
0x3b8474be_
 | 
			
		||||
 | 
			
		||||
### LengthMismatch
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error LengthMismatch()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Arrays' length don't match.
 | 
			
		||||
0xff633a38_
 | 
			
		||||
 | 
			
		||||
### NoTokens
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NoTokens()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_No tokens array provided as argument.
 | 
			
		||||
0xdf957883_
 | 
			
		||||
 | 
			
		||||
### TokenDenied
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TokenDenied()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Token address not allowed to be deposited.
 | 
			
		||||
0x1578328e_
 | 
			
		||||
 | 
			
		||||
### AmountNotAllowed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error AmountNotAllowed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Wished amount to be locked exceeds the limit allowed.
 | 
			
		||||
0x1c18f846_
 | 
			
		||||
 | 
			
		||||
### StaticCallFailed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error StaticCallFailed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Reverts when success return value returns false.
 | 
			
		||||
0xe10bf1cc_
 | 
			
		||||
 | 
			
		||||
### LockExpired
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error LockExpired()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Reverts on an expired lock.
 | 
			
		||||
0xf6fafba0_
 | 
			
		||||
 | 
			
		||||
### DecOverflow
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error DecOverflow()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0xce3a3d37_
 | 
			
		||||
 | 
			
		||||
### MaxBalExceeded
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error MaxBalExceeded()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0xf3fb0eb9_
 | 
			
		||||
 | 
			
		||||
### EmptyPixTarget
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error EmptyPixTarget()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x6a3bc53e_
 | 
			
		||||
 | 
			
		||||
### NotInitialized
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error NotInitialized()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x87138d5c_
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										98
									
								
								docs/core/OwnerSettings.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								docs/core/OwnerSettings.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,98 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## OwnerSettings
 | 
			
		||||
 | 
			
		||||
### reputation
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
contract IReputation reputation
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_List of valid Bacen signature addresses
 | 
			
		||||
    mapping(uint256 => bool) public validBacenSigners;
 | 
			
		||||
Value in custom storage slot given by:
 | 
			
		||||
    let value := sload(shl(12, address))._
 | 
			
		||||
 | 
			
		||||
### defaultLockBlocks
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 defaultLockBlocks
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Default blocks that lock will hold tokens._
 | 
			
		||||
 | 
			
		||||
### constructor
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
constructor(uint256 defaultBlocks, address[] validSigners, address _reputation, contract ERC20[] tokens, bool[] tokenStates) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ Constructor ████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
### setTrustedFowarders
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setTrustedFowarders(address[] forwarders, bool[] states) external
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ Owner Only █████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
### withdrawBalance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function withdrawBalance() external
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Contract's underlying balance withdraw method.
 | 
			
		||||
Function sighash: 0x5fd8c710._
 | 
			
		||||
 | 
			
		||||
### setReputation
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setReputation(contract IReputation _reputation) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### setDefaultLockBlocks
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setDefaultLockBlocks(uint256 _blocks) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### setValidSigners
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setValidSigners(address[] _validSigners) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### tokenSettings
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function tokenSettings(contract ERC20[] _tokens, bool[] _states) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### validBacenSigners
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function validBacenSigners(uint256 signer) public view returns (bool valid)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
███ View FX ████████████████████████████████████████████████████████████
 | 
			
		||||
 | 
			
		||||
### sellerAllowList
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function sellerAllowList(address sellerKey) public view returns (bytes32 root)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### allowedERC20s
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function allowedERC20s(contract ERC20 erc20) public view returns (bool state)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _limiter
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _limiter(uint256 _userCredit) internal view returns (uint256 _spendLimit)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -1,46 +1,42 @@
 | 
			
		||||
# Owned
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
_Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)_
 | 
			
		||||
## Owned
 | 
			
		||||
 | 
			
		||||
Simple single owner authorization mixin.
 | 
			
		||||
 | 
			
		||||
## Methods
 | 
			
		||||
 | 
			
		||||
### owner
 | 
			
		||||
### Unauthorized
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function owner() external view returns (address)
 | 
			
		||||
error Unauthorized()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | address | undefined   |
 | 
			
		||||
 | 
			
		||||
### setOwner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setOwner(address newOwner) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name     | Type    | Description |
 | 
			
		||||
| -------- | ------- | ----------- |
 | 
			
		||||
| newOwner | address | undefined   |
 | 
			
		||||
 | 
			
		||||
## Events
 | 
			
		||||
 | 
			
		||||
### OwnerUpdated
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event OwnerUpdated(address indexed user, address indexed newOwner)
 | 
			
		||||
event OwnerUpdated(address user, address newOwner)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
### owner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
address owner
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### onlyOwner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
modifier onlyOwner()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### constructor
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
constructor(address _owner) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### setOwner
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setOwner(address newOwner) public virtual
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Name               | Type    | Description |
 | 
			
		||||
| ------------------ | ------- | ----------- |
 | 
			
		||||
| user `indexed`     | address | undefined   |
 | 
			
		||||
| newOwner `indexed` | address | undefined   |
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
# IReputation
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## Methods
 | 
			
		||||
## IReputation
 | 
			
		||||
 | 
			
		||||
### limiter
 | 
			
		||||
 | 
			
		||||
@ -8,14 +8,3 @@
 | 
			
		||||
function limiter(uint256 _userCredit) external pure returns (uint256 _spendLimit)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name         | Type    | Description |
 | 
			
		||||
| ------------ | ------- | ----------- |
 | 
			
		||||
| \_userCredit | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name         | Type    | Description |
 | 
			
		||||
| ------------ | ------- | ----------- |
 | 
			
		||||
| \_spendLimit | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										53
									
								
								docs/lib/metatx/ERC2771Context.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/lib/metatx/ERC2771Context.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,53 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## Context
 | 
			
		||||
 | 
			
		||||
_Provides information about the current execution context, including the
 | 
			
		||||
sender of the transaction and its data. While these are generally available
 | 
			
		||||
via msg.sender and msg.data, they should not be accessed in such a direct
 | 
			
		||||
manner, since when dealing with meta-transactions the account sending and
 | 
			
		||||
paying for execution may not be the actual sender (as far as an application
 | 
			
		||||
is concerned).
 | 
			
		||||
 | 
			
		||||
This contract is only required for intermediate, library-like contracts._
 | 
			
		||||
 | 
			
		||||
### _msgSender
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _msgSender() internal view virtual returns (address)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _msgData
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _msgData() internal view virtual returns (bytes)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## ERC2771Context
 | 
			
		||||
 | 
			
		||||
_Context variant with ERC2771 support._
 | 
			
		||||
 | 
			
		||||
### trustedForwarders
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
mapping(address => bool) trustedForwarders
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _msgSender
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _msgSender() internal view virtual returns (address sender)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### isTrustedForwarder
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function isTrustedForwarder(address forwarder) public view virtual returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _msgData
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _msgData() internal view virtual returns (bytes)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								docs/lib/mock/mockToken.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								docs/lib/mock/mockToken.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## MockToken
 | 
			
		||||
 | 
			
		||||
### constructor
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
constructor(uint256 supply) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### mint
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function mint(address[] to, uint256 value) public virtual
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -1,230 +1,128 @@
 | 
			
		||||
# ERC20
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
_Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)_
 | 
			
		||||
## ERC20
 | 
			
		||||
 | 
			
		||||
Modern and gas efficient ERC20 + EIP-2612 implementation.
 | 
			
		||||
 | 
			
		||||
_Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it._
 | 
			
		||||
 | 
			
		||||
## Methods
 | 
			
		||||
 | 
			
		||||
### DOMAIN_SEPARATOR
 | 
			
		||||
### Transfer
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function DOMAIN_SEPARATOR() external view returns (bytes32)
 | 
			
		||||
event Transfer(address from, address to, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### allowance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function allowance(address, address) external view returns (uint256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | address | undefined   |
 | 
			
		||||
| \_1  | address | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### approve
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function approve(address spender, uint256 amount) external nonpayable returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name    | Type    | Description |
 | 
			
		||||
| ------- | ------- | ----------- |
 | 
			
		||||
| spender | address | undefined   |
 | 
			
		||||
| amount  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| \_0  | bool | undefined   |
 | 
			
		||||
 | 
			
		||||
### balanceOf
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function balanceOf(address) external view returns (uint256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | address | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### decimals
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function decimals() external view returns (uint8)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type  | Description |
 | 
			
		||||
| ---- | ----- | ----------- |
 | 
			
		||||
| \_0  | uint8 | undefined   |
 | 
			
		||||
 | 
			
		||||
### name
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function name() external view returns (string)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type   | Description |
 | 
			
		||||
| ---- | ------ | ----------- |
 | 
			
		||||
| \_0  | string | undefined   |
 | 
			
		||||
 | 
			
		||||
### nonces
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function nonces(address) external view returns (uint256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | address | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### permit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name     | Type    | Description |
 | 
			
		||||
| -------- | ------- | ----------- |
 | 
			
		||||
| owner    | address | undefined   |
 | 
			
		||||
| spender  | address | undefined   |
 | 
			
		||||
| value    | uint256 | undefined   |
 | 
			
		||||
| deadline | uint256 | undefined   |
 | 
			
		||||
| v        | uint8   | undefined   |
 | 
			
		||||
| r        | bytes32 | undefined   |
 | 
			
		||||
| s        | bytes32 | undefined   |
 | 
			
		||||
 | 
			
		||||
### symbol
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function symbol() external view returns (string)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type   | Description |
 | 
			
		||||
| ---- | ------ | ----------- |
 | 
			
		||||
| \_0  | string | undefined   |
 | 
			
		||||
 | 
			
		||||
### totalSupply
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function totalSupply() external view returns (uint256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type    | Description |
 | 
			
		||||
| ---- | ------- | ----------- |
 | 
			
		||||
| \_0  | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### transfer
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function transfer(address to, uint256 amount) external nonpayable returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description |
 | 
			
		||||
| ------ | ------- | ----------- |
 | 
			
		||||
| to     | address | undefined   |
 | 
			
		||||
| amount | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| \_0  | bool | undefined   |
 | 
			
		||||
 | 
			
		||||
### transferFrom
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function transferFrom(address from, address to, uint256 amount) external nonpayable returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name   | Type    | Description |
 | 
			
		||||
| ------ | ------- | ----------- |
 | 
			
		||||
| from   | address | undefined   |
 | 
			
		||||
| to     | address | undefined   |
 | 
			
		||||
| amount | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
#### Returns
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| \_0  | bool | undefined   |
 | 
			
		||||
 | 
			
		||||
## Events
 | 
			
		||||
 | 
			
		||||
### Approval
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event Approval(address indexed owner, address indexed spender, uint256 amount)
 | 
			
		||||
event Approval(address owner, address spender, uint256 amount)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name              | Type    | Description |
 | 
			
		||||
| ----------------- | ------- | ----------- |
 | 
			
		||||
| owner `indexed`   | address | undefined   |
 | 
			
		||||
| spender `indexed` | address | undefined   |
 | 
			
		||||
| amount            | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
### Transfer
 | 
			
		||||
### name
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
event Transfer(address indexed from, address indexed to, uint256 amount)
 | 
			
		||||
string name
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
### symbol
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
string symbol
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### decimals
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint8 decimals
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### totalSupply
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 totalSupply
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### balanceOf
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
mapping(address => uint256) balanceOf
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### allowance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
mapping(address => mapping(address => uint256)) allowance
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### INITIAL_CHAIN_ID
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 INITIAL_CHAIN_ID
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### INITIAL_DOMAIN_SEPARATOR
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
bytes32 INITIAL_DOMAIN_SEPARATOR
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### nonces
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
mapping(address => uint256) nonces
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### constructor
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
constructor(string _name, string _symbol, uint8 _decimals) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### approve
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function approve(address spender, uint256 amount) public virtual returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### transfer
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function transfer(address to, uint256 amount) public virtual returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### transferFrom
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function transferFrom(address from, address to, uint256 amount) public virtual returns (bool)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### permit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public virtual
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### DOMAIN_SEPARATOR
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function DOMAIN_SEPARATOR() public view virtual returns (bytes32)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### computeDomainSeparator
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function computeDomainSeparator() internal view virtual returns (bytes32)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _mint
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _mint(address to, uint256 amount) internal virtual
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _burn
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _burn(address from, uint256 amount) internal virtual
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Name           | Type    | Description |
 | 
			
		||||
| -------------- | ------- | ----------- |
 | 
			
		||||
| from `indexed` | address | undefined   |
 | 
			
		||||
| to `indexed`   | address | undefined   |
 | 
			
		||||
| amount         | uint256 | undefined   |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										38
									
								
								docs/lib/utils/ECDSA.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								docs/lib/utils/ECDSA.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## ECDSA
 | 
			
		||||
 | 
			
		||||
Gas optimized ECDSA wrapper.
 | 
			
		||||
 | 
			
		||||
### InvalidSignature
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error InvalidSignature()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_The signature is invalid._
 | 
			
		||||
 | 
			
		||||
### recoverCalldata
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function recoverCalldata(bytes32 hash, bytes signature) internal view returns (address result)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Recovers the signer's address from a message digest `hash`,
 | 
			
		||||
and the `signature`.
 | 
			
		||||
 | 
			
		||||
This function does NOT accept EIP-2098 short form signatures.
 | 
			
		||||
Use `recover(bytes32 hash, bytes32 r, bytes32 vs)` for EIP-2098
 | 
			
		||||
short form signatures instead._
 | 
			
		||||
 | 
			
		||||
### toEthSignedMessageHash
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 result)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Returns an Ethereum Signed Message, created from a `hash`.
 | 
			
		||||
This produces a hash corresponding to the one signed with the
 | 
			
		||||
[`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)
 | 
			
		||||
JSON-RPC method as part of EIP-191._
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,14 @@
 | 
			
		||||
# MerkleProofLib
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
_Solady (https://github.com/vectorized/solady/blob/main/src/utils/MerkleProofLib.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/MerkleProofLib.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/MerkleProof.sol)_
 | 
			
		||||
## MerkleProofLib
 | 
			
		||||
 | 
			
		||||
Gas optimized verification of proof of inclusion for a leaf in a Merkle tree.
 | 
			
		||||
 | 
			
		||||
### verify
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function verify(bytes32[] proof, bytes32 root, bytes32 leaf) internal pure returns (bool isValid)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Returns whether `leaf` exists in the Merkle tree with `root`, given `proof`._
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										50
									
								
								docs/lib/utils/Multicall.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								docs/lib/utils/Multicall.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## Multicall
 | 
			
		||||
 | 
			
		||||
Contract that batches view function calls and aggregates their results.
 | 
			
		||||
 | 
			
		||||
### CallFailed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error CallFailed(string reason)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_0x_
 | 
			
		||||
 | 
			
		||||
### Call
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
struct Call {
 | 
			
		||||
  address target;
 | 
			
		||||
  bytes callData;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Result
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
struct Result {
 | 
			
		||||
  bool success;
 | 
			
		||||
  bytes returnData;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### constructor
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
constructor() public payable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### mtc1
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function mtc1(struct Multicall.Call[] calls) external returns (uint256, bytes[])
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### mtc2
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function mtc2(struct Multicall.Call[] calls) external returns (uint256, bytes32, struct Multicall.Result[])
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,34 @@
 | 
			
		||||
# ReentrancyGuard
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
_z0r0z.ethModified from Seaport (https://github.com/ProjectOpenSea/seaport/blob/main/contracts/lib/ReentrancyGuard.sol)Modified from Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/ReentrancyGuard.sol)_
 | 
			
		||||
## ReentrancyGuard
 | 
			
		||||
 | 
			
		||||
Reentrancy protection for smart contracts.
 | 
			
		||||
 | 
			
		||||
## Errors
 | 
			
		||||
 | 
			
		||||
### Reentrancy
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error Reentrancy()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### nonReentrant
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
modifier nonReentrant()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### setReentrancyGuard
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setReentrancyGuard() internal virtual
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Check guard sentinel value and set it._
 | 
			
		||||
 | 
			
		||||
### clearReentrancyGuard
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function clearReentrancyGuard() internal virtual
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Unset sentinel value._
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,62 @@
 | 
			
		||||
# SafeTransferLib
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
_Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)_
 | 
			
		||||
## SafeTransferLib
 | 
			
		||||
 | 
			
		||||
Safe ETH and ERC20 transfer library that gracefully handles missing return values.
 | 
			
		||||
 | 
			
		||||
_Caution! This library won't check that a token has code, responsibility is delegated to the caller._
 | 
			
		||||
_Caution! This library won't check that a token has code, responsibility is delegated to the caller._
 | 
			
		||||
 | 
			
		||||
### ETHTransferFailed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error ETHTransferFailed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_The ETH transfer has failed._
 | 
			
		||||
 | 
			
		||||
### TransferFromFailed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TransferFromFailed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_The ERC20 `transferFrom` has failed._
 | 
			
		||||
 | 
			
		||||
### TransferFailed
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
error TransferFailed()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_The ERC20 `transfer` has failed._
 | 
			
		||||
 | 
			
		||||
### safeTransferETH
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function safeTransferETH(address to, uint256 amount) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Sends `amount` (in wei) ETH to `to`.
 | 
			
		||||
Reverts upon failure._
 | 
			
		||||
 | 
			
		||||
### safeTransferFrom
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function safeTransferFrom(contract ERC20 token, address from, address to, uint256 amount) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Sends `amount` of ERC20 `token` from `from` to `to`.
 | 
			
		||||
Reverts upon failure.
 | 
			
		||||
 | 
			
		||||
The `from` account must have at least `amount` approved for
 | 
			
		||||
the current contract to manage._
 | 
			
		||||
 | 
			
		||||
### safeTransfer
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function safeTransfer(contract ERC20 token, address to, uint256 amount) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Sends `amount` of ERC20 `token` from the current contract to `to`.
 | 
			
		||||
Reverts upon failure._
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										207
									
								
								docs/p2pix.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								docs/p2pix.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,207 @@
 | 
			
		||||
# Solidity API
 | 
			
		||||
 | 
			
		||||
## P2PIX
 | 
			
		||||
 | 
			
		||||
### lockCounter
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
uint256 lockCounter
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### mapLocks
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
mapping(uint256 => struct DataTypes.Lock) mapLocks
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_List of Locks._
 | 
			
		||||
 | 
			
		||||
### userRecord
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
mapping(uint256 => uint256) userRecord
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Stores an relayer's last computed credit._
 | 
			
		||||
 | 
			
		||||
### constructor
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
constructor(uint256 defaultBlocks, address[] validSigners, address _reputation, contract ERC20[] tokens, bool[] tokenStates) public payable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### deposit
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function deposit(string pixTarget, bytes32 allowlistRoot, contract ERC20 token, uint96 amount, bool valid) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Creates a deposit order based on a seller's
 | 
			
		||||
offer of an amount of ERC20 tokens.
 | 
			
		||||
Seller needs to send his tokens to the P2PIX smart contract.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0x5e918943_
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| pixTarget | string | Pix key destination provided by the offer's seller. |
 | 
			
		||||
| allowlistRoot | bytes32 | Optional allow list merkleRoot update `bytes32` value. as the deposit identifier. |
 | 
			
		||||
| token | contract ERC20 |  |
 | 
			
		||||
| amount | uint96 |  |
 | 
			
		||||
| valid | bool |  |
 | 
			
		||||
 | 
			
		||||
### setValidState
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setValidState(contract ERC20 token, bool state) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Enables seller to invalidate future
 | 
			
		||||
locks made to his/her token offering order.
 | 
			
		||||
This function does not affect any ongoing active locks.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0x6d82d9e0_
 | 
			
		||||
 | 
			
		||||
### lock
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function lock(address seller, contract ERC20 token, uint80 amount, bytes32[] merkleProof, uint256[] expiredLocks) public returns (uint256 lockID)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Public method designed to lock an remaining amount of
 | 
			
		||||
the deposit order of a seller.
 | 
			
		||||
Transaction forwarding must leave `merkleProof` empty;
 | 
			
		||||
otherwise, the trustedForwarder must be previously added 
 | 
			
		||||
to a seller whitelist.
 | 
			
		||||
This method can be performed either by:
 | 
			
		||||
- An user allowed via the seller's allowlist;
 | 
			
		||||
- An user with enough userRecord to lock the wished amount;
 | 
			
		||||
There can only exist a lock per each `_amount` partitioned
 | 
			
		||||
from the total `remaining` value.
 | 
			
		||||
Locks can only be performed in valid orders.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0xdc43221c_
 | 
			
		||||
 | 
			
		||||
#### Parameters
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| seller | address |  |
 | 
			
		||||
| token | contract ERC20 |  |
 | 
			
		||||
| amount | uint80 | The deposit's remaining amount wished to be locked. |
 | 
			
		||||
| merkleProof | bytes32[] | Provided as a pass if the `msg.sender` is in the seller's allowlist; Left empty otherwise; |
 | 
			
		||||
| expiredLocks | uint256[] | An array of identifiers to be provided so to unexpire locks using this transaction gas push. |
 | 
			
		||||
 | 
			
		||||
#### Return Values
 | 
			
		||||
 | 
			
		||||
| Name | Type | Description |
 | 
			
		||||
| ---- | ---- | ----------- |
 | 
			
		||||
| lockID | uint256 | The lock identifier. |
 | 
			
		||||
 | 
			
		||||
### release
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function release(uint256 lockID, bytes32 pixTimestamp, bytes signature) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Lock release method that liquidate lock
 | 
			
		||||
orders and distributes relayer fees.
 | 
			
		||||
This method can be called by any public actor
 | 
			
		||||
as long the signature provided is valid.
 | 
			
		||||
`relayerPremium` gets splitted equaly
 | 
			
		||||
if relayer addresses differ.
 | 
			
		||||
If the `msg.sender` of this method and `l.relayerAddress` are the same,
 | 
			
		||||
`msg.sender` accrues both l.amount and l.relayerPremium as userRecord credit.
 | 
			
		||||
 In case of they differing:
 | 
			
		||||
- `lock` caller gets accrued with `l.amount` as userRecord credit;
 | 
			
		||||
- `release` caller gets accrued with `l.relayerPremium` as userRecord credit;
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0x11fc7f9a_
 | 
			
		||||
 | 
			
		||||
### unlockExpired
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function unlockExpired(uint256[] lockIDs) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Unlocks expired locks.
 | 
			
		||||
Triggered in the callgraph by both `lock` and `withdraw` functions.
 | 
			
		||||
This method can also have any public actor as its `tx.origin`.
 | 
			
		||||
For each successfull unexpired lock recovered,
 | 
			
		||||
`userRecord[_castAddrToKey(l.relayerAddress)]` is decreased by half of its value.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0xb0983d39_
 | 
			
		||||
 | 
			
		||||
### withdraw
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function withdraw(contract ERC20 token, uint256 amount, uint256[] expiredLocks) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Seller's expired deposit fund sweeper.
 | 
			
		||||
A seller may use this method to recover
 | 
			
		||||
tokens from expired deposits.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0xfb8c5ef0_
 | 
			
		||||
 | 
			
		||||
### setRoot
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function setRoot(address addr, bytes32 merkleroot) public
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### receive
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
receive() external payable
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### _addLock
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function _addLock(uint256 _bal, struct DataTypes.Lock _l) internal
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### getBalance
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function getBalance(address seller, contract ERC20 token) public view returns (uint256 bal)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### getValid
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function getValid(address seller, contract ERC20 token) public view returns (bool valid)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### getPixTarget
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function getPixTarget(address seller, contract ERC20 token) public view returns (bytes32 pixTarget)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### getPixTargetString
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function getPixTargetString(address seller, contract ERC20 token) public view returns (string pixTarget)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### getBalances
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function getBalances(address[] sellers, contract ERC20 token) external view returns (uint256[])
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### getLocksStatus
 | 
			
		||||
 | 
			
		||||
```solidity
 | 
			
		||||
function getLocksStatus(uint256[] ids) external view returns (uint256[], enum DataTypes.LockStatus[])
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
External getter that returns the status of a lockIDs array.
 | 
			
		||||
Call will not revert if provided with an empty array as parameter.
 | 
			
		||||
 | 
			
		||||
_Function sighash: 0x49ef8448_
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ import { HardhatUserConfig } from "hardhat/config";
 | 
			
		||||
import { NetworkUserConfig } from "hardhat/types";
 | 
			
		||||
import "hardhat-contract-sizer";
 | 
			
		||||
import { resolve } from "path";
 | 
			
		||||
import "solidity-docgen";
 | 
			
		||||
 | 
			
		||||
dotenvConfig({ path: resolve(__dirname, "./.env") });
 | 
			
		||||
 | 
			
		||||
@ -146,6 +147,9 @@ const config: HardhatUserConfig = {
 | 
			
		||||
    outDir: "src/types",
 | 
			
		||||
    target: "ethers-v5",
 | 
			
		||||
  },
 | 
			
		||||
  docgen: {
 | 
			
		||||
    pages: "files",
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default config;
 | 
			
		||||
 | 
			
		||||
@ -79,6 +79,7 @@
 | 
			
		||||
    "solhint": "^3.3.7",
 | 
			
		||||
    "solhint-plugin-prettier": "^0.0.5",
 | 
			
		||||
    "solidity-coverage": "^0.8.2",
 | 
			
		||||
    "solidity-docgen": "^0.6.0-beta.36",
 | 
			
		||||
    "ts-generator": "^0.1.1",
 | 
			
		||||
    "ts-node": "^10.9.1",
 | 
			
		||||
    "typechain": "^8.1.1",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user